ELK环境搭建完整说明

ELK:ElasticSerach、Logstash、Kibana三款产品名称的首字母集合,用于日志的搜集和搜索。简单地理解为我们可以把服务端的日志(nginx、tomcat等)直接web化展示查看,十分方便。

本机环境说明:
系统:centos7.5
ElasticSerach:6.4.2
Logstash:6.4.2
Kibana:6.4.2
Filebeat:6.4.2

部署情况简介

说明:图是直接搜索的网上的,其中nginx、elk这里都采用单机直接部署,所以ip相同,我这里为192.168.21.128。

流程说明

 1. 业务请求到达nginx-server机器上的Nginx;
2. Nginx响应请求,并在access.log文件中增加访问记录;
3. FileBeat搜集新增的日志,通过LogStash的5044端口上传日志;
4. LogStash将日志信息通过本机的9200端口传入到ElasticSerach;
5. 搜索日志的用户通过浏览器访问Kibana,服务器端口是5601;
6. Kibana通过9200端口访问ElasticSerach;

安装java环境

因为ElasticSerach运行需要java环境支持,所以首先要配置java环境,具体操作方法自行百度吧,网上比较多。

下载ELK安装包

ELK官网:https://www.elastic.co/downloads

手动下载ELK安装的tag.gz文件,这里我们放入/usr/local/work/下,并解压缩,最终效果如下:

创建用户

因为ElasticSerach运行时不允许以root用户身份的,所以这里需要手动创建用户并分配权限,具体如下:

  1. 创建用户组:groupadd elasticsearch
  2. 创建用户加入用户组:useradd elasticsearch -g elasticsearch
  3. 设置ElasticSerach文件夹为用户elasticsearch所有:chown -R elasticsearch.elasticsearch /usr/local/work/elasticsearch-6.4.2

系统设置部分

  1. 打开文件/etc/security/limits.conf,添加下面4处内容:

    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096
  2. 打开文件/etc/sysctl.conf,添加下面内容:

    vm.max_map_count=655360
  3. 加载sysctl配置,执行命令:sysctl -p

  4. 重启电脑,执行命令:reboot

启动ElasticSerach

  1. 切换到用户elasticsearch:su elasticsearch
  2. 进入目录/usr/local/work/elasticsearch-6.4.2
  3. 执行启动命令:bin/elasticsearch -d,此时会在后台启动elasticsearch(如果启动报错没有权限的话,重新执行上面的chown那部分命令设置权限)
  4. 查看启动日志可执行命令:tail -f /usr/local/work/elasticsearch-6.4.2/logs/elasticsearch.log
  5. 执行curl命令检查服务是否正常响应:curl 127.0.0.1:9200,收到响应如下:

具体效果:

配置启动Logstash

  1. 在目录/usr/local/work/logstash-6.4.2下创建文件default.conf,内容如下:
# 监听5044端口作为输入
input {
beats {
port => "5044"
}
}
# 数据过滤
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
geoip {
source => "clientip"
}
}
# 输出配置为本机的9200端口,这是ElasticSerach服务的监听端口
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
}
}
  1. 后台启动Logstash服务:nohup bin/logstash -f default.conf –config.reload.automatic &
  2. 查看启动日志:tail -f logs/logstash-plain.log,启动成功的信息如下:

Kibana

  1. 打开Kibana的配置文件/usr/local/work/kibana-6.4.2-linux-x86_64/config/kibana.yml,找到下面这行:
#server.host: "localhost"

改成如下内容:

server.host: "192.168.21.128"
  1. 进入Kibana的目录:/usr/local/work/kibana-6.4.2-linux-x86_64
  2. 执行启动命令:nohup bin/kibana &
  3. 查看启动日志:tail -f nohup.out
  4. 在浏览器访问http://192.168.21.128:5601,看到如下页面:

注意:
这里访问5601的时候可能访问不通,centos有自己的防火墙及端口限制,具体设置自行百度吧,很多的。

配置Filebeat,传送nginx日志至LogStash

  1. 打开文件/usr/local/work/filebeat-6.4.2-linux-x86_64/filebeat.yml,找到如下图的位置并设置:

  1. 继续修改filebeat.yml文件,找到下图中的内容并设置:

  1. 启动FileBeat:nohup ./filebeat -e -c filebeat.yml -d "publish" &

验证kibana是否能显示nginx的日志

至此,环境搭建完成~

ELK环境搭建完整说明的更多相关文章

  1. 写给大忙人的CentOS 7下最新版(6.2.4)ELK+Filebeat+Log4j日志集成环境搭建完整指南

    现在的公司由于绝大部分项目都采用分布式架构,很早就采用ELK了,只不过最近因为额外的工作需要,仔细的研究了分布式系统中,怎么样的日志规范和架构才是合理和能够有效提高问题排查效率的.经过仔细的分析和研究 ...

  2. ELK 环境搭建4-Kafka + zookeeper

    一.安装前准备 1.节点 192.168.30.41 192.168.30.42 192.168.30.43 2.操作系统: Centos7.5 3.安装包 a.java8: jdk-8u181-li ...

  3. ELK 环境搭建3-Logstash

    一.Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的.多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件或者中间件. 二.搭建 1.因为要涉及到收 ...

  4. ELK 环境搭建2-Kibana

    一.安装前准备 1.节点 192.168.30.41 2.操作系统: Centos7.5 3.安装包 a.java8: jdk-8u181-linux-x64.tar.gz b.Kibana kiba ...

  5. ELK环境搭建

    ELK环境搭建 1. Virtualbox/Vagrant安装 41.1. Virtualbox安装 41.2. Vagrant安装 41.2.1. 简述 41.2.2. Vagrant box 41 ...

  6. 2017.7.18 linux下ELK环境搭建

    参考来自:Linux日志分析ELK环境搭建  另一篇博文:2017.7.18 windows下ELK环境搭建   0 版本说明 因为ELK从5.0开始只支持jdk 1.8,但是项目中使用的是JDK 1 ...

  7. 2017.7.18 windows下ELK环境搭建

    参考来自:Windows环境下ELK平台的搭建 另一篇博文:2017.7.18 linux下ELK环境搭建 0 版本说明 因为ELK从5.0开始只支持jdk 1.8,但是项目中使用的是JDK 1.7, ...

  8. ELK 环境搭建总结

    开始动手前的说明 我搭建这一套环境的时候是基于docker搭建的,用到了docker-compose,所以开始前要先安装好docker . docker-compose,并简单的了解docker . ...

  9. mysql同步之otter/canal环境搭建完整详细版

    接上一篇mysql 5.7多源复制(用于生产库多主库合并到一个查询从库). 这一篇详细介绍otter/canal环境搭建以及当同步出现异常时如何排查.本文主要参考https://blog.csdn.n ...

随机推荐

  1. HTTP协议(一)基本概念、HTTP方法、HTTP状态码

    1.HTTP是什么? 它的全名叫:HyperText Transfer Protocol ,中国名字:超文本传输协议 : 它是可靠的数据传输协议,是Internet 的多媒体信使,即使数据相隔天涯海角 ...

  2. 设置 Nuget 本地源、在线私有源、自动构建打包

    设置 Nuget 本地源.在线私有源.自动构建打包 本文演示如果在项目中生成 Nuget 包,并添加 Nuget 本地源,不用发布到 Nuget 服务器.再附带使用在线私有源的简单方法,以及提交代码自 ...

  3. ADO.NET系列之事务和调用存储过程

    ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 前几篇我们介绍了Conne ...

  4. 201621123018《Java程序设计》第5周学习报告

    1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 接口.interface.implements.Comparable.Comparator. 1.2 尝试使用思维导图将这些关键 ...

  5. [NOIP2018]赛道修建(二分+multiset)

    考场上打了一个 \(vector\) 解法,因为我当时不会 \(multiset\) 好吧,我来讲一讲今年的 \(tgD1T3\) 首先,这题 \(55\) 分是不难想的 1. \(b_i=a_i+1 ...

  6. 面向对象三大特性编写面向对象程序,self到底是谁

    一.函数式编程和面向对象的对比 面向过程:根据业务逻辑从上到下写垒代码: 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可: 面向对象:对函数进行分类和封装,让开发“更快更好更强. ...

  7. MySQL随手记

    一.MySQL数据迁移(由远端主机迁移到本地) 1.导出数据库mysqldump -u root -p db > dump_db_date.sqlroot: 账户db: 需要导出的数据库名 2. ...

  8. 在vue项目中stylus的安装及使用

    Stylus是一个CSS预处理器. Stylus安装包安装: dell@DESKTOP-KD0EJ4H MINGW64 /f/gsff-frone $ cnpm install stylus --sa ...

  9. Python学习之二

    基础语法 一.起始行 #!/usr/bin/python 或 #!/usr/bin/env python 目的是在运行python脚本的时候告诉系统我们要用Python解释器去运行py脚本 # -*- ...

  10. redis常用命令(一)

    一.redis常见的数据操作命令 http://redisdoc.com/ 二.键(key) keys *: 查询所有的key. exists key:判断某个key是否存在. move key db ...