教你比别人更快更简单的搭建ELK日志系统群集

Posted Friends of the wind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教你比别人更快更简单的搭建ELK日志系统群集相关的知识,希望对你有一定的参考价值。

教程结构
在这里插入图片描述

理论讲解

ELK 是Elasticsearch、Logstash、Kibana三个开源软件的组合,为企业提供数据分析,实时日志处理解决方案的一套系统。

ELK Stack 的优点:

• 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;

• 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;

• 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;

• 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;

• 前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。

三款软件,各有各的用途,协同工作,最终通过前端浏览器在屏幕显示给用户一个美丽的图形化仪表板。工作流程,如下:

在这里插入图片描述
Logstash安装在应用软件服务器上,负责日志数据的采集;
Elasticsearch在集群节点服务器,负责过滤、存储从Logstash收集到的信息,因为这些数据都是以字符存储,不便于用户查看,所以由下一个软件;
Kibana通过一系列组件和引擎处理,把信息在前端提供可视化图形界面显示给用户。

案例环境

在这里插入图片描述

在这里插入图片描述

案例实施

一、EK服务器配置(内存至少3G含3G以上,均关闭防火墙、setenforce宽容模式)

1、服务器 node1 192.168.2.1

[root@localhost ~]# vim /etc/hosts //添加dns解析信息
在这里插入图片描述
以x-shell为例:用rz上传elasticsearch-5.5.0.rpm、node-v8.2.1.tar.gz、phantomjs-2.1.1-linux-x86_64.tar.bz2、elasticsearch-head.tar.gz、kibana-5.5.1-x86_64.rpm五款所需安装包。

1)安装Elasticsearch
[root@localhost ~]# rpm -ivh /mnt/elasticsearch-5.5.0.rpm

加载daemon内核服务
[root@localhost ~]# systemctl daemon-reload

开机自启
[root@localhost ~]# systemctl enable elasticsearch.service

编辑配置文件(注意:不搭建群集不修改第一和最后一项)
[root@localhost ~]# vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my-application //群集名称
node.name: node1 //节点名字
path.data: /data/elk_data //数据存放路径
path.logs: /var/log/elasticsearch //日志存放路径
bootstrap.memory_lock: false //在启动的时候不锁定内存(提高程序性能)
network.host: 0.0.0.0 //服务绑定的IP
http.port: 9200 //侦听端口
discovery.zen.ping.unicast.hosts: [“node1”, “node2”] //群集发现通过单播实现

创建数据存放目录
[root@localhost ~]# mkdir -p /data/elk_data
授予权限
[root@localhost ~]# chown elasticsearch:elasticsearch /data/elk_data/
启动服务
[root@localhost elasticsearch]# systemctl start elasticsearch.service
查看是否存在服务端口
温馨提示:如果看不到端口,重启系统也不行,就是您的内存太小,至少3G,只能恢复快照,调整内存,重做
[root@localhost ~]# netstat -anpt | grep 9200
在这里插入图片描述
查看节点信息: URL:http://es服务器IP:9200
在这里插入图片描述

查看集群健康情况:URL:http://es服务器IP:9200/_cluster/health?pretty即:http://192.168.2.1:9200/_cluster/health?pretty
在这里插入图片描述
2) 安装Elasticsearch-Head插件
注意:1.先要安装两个依赖程序node、phantomjs;2.elasticsearch-head只安装在一台节点服务器

解压node包(大概需要40分钟时间,基于Chrome V8的引擎,为隐性浏览器提高运行的环境)
[root@localhost ~]# tar zxf /mnt/node-v8.2.1.tar.gz -C /usr/src/
切换到node目录
[root@localhost ~]# cd /usr/src/node-v8.2.1/
编译安装
[root@localhost node-v8.2.1]# ./configure &&make &&make install
切换目录
[root@localhost src]# cd /usr/local/src/
解压phantomjs(相当于隐形浏览器)
[root@localhost src]# tar xvjf /mnt/phantomjs-2.1.1-linux-x86_64.tar.bz2
切换目录
[root@localhost src]# cd phantomjs-2.1.1-linux-x86_64/bin/
复制启动程序到本地
[root@localhost bin]# cp phantomjs /usr/local/bin/
切换目录
[root@localhost bin]# cd /usr/local/src
解压
[root@localhost src]# tar zvxf /mnt/elasticsearch-head.tar.gz
切换目录
[root@localhost src]# cd elasticsearch-head/
安装依赖包
[root@localhost elasticsearch-head]# npm install
在这里插入图片描述
编辑es配置文件
[root@localhost /]# vim /etc/elasticsearch/elasticsearch.yml
在这里插入图片描述
重启服务
[root@localhost /]# systemctl restart elasticsearch.service
切换到路径下
[root@localhost /]# cd /usr/local/src/elasticsearch-head/
后台启动
[root@localhost elasticsearch-head]# npm run start &
查看服务监听端口
[root@localhost ~]# netstat -lnupt | grep 9100
在这里插入图片描述
注意:如果看不到监听端口,服务状态如下:
在这里插入图片描述
可能原因:上步的配置文件,字母填错(改正,重新加载内核文件,再重启多等一会即可)
在这里插入图片描述

2、服务器 node2 192.168.2.2	方法相同,略过

使用elasticsearch插件访问群集:url http://192.168.2.1:9100
集群健康值:green(健康的)
在这里插入图片描述
3)安装Kibana

安装kibana
[root@localhost ~]# rpm -ivh /mnt/kibana-5.5.1-x86_64.rpm
设置开机自启动
[root@localhost src]# systemctl enable kibana.service
编辑配置文件
[root@localhost src]# vim /etc/kibana/kibana.yml
server.port: 5601 //打开的端口
server.host: “0.0.0.0” //监听地址
elasticsearch.url: “http://192.168.2.1:9200” //和elasticsearch建立连接的URL
kibana.index: “.kibana” //在elasticsearch中添加.kibana索引
启动服务
[root@localhost src]# systemctl start kibana.service
查看端口
[root@localhost src]# netstat -anpt | grep 5601
在这里插入图片描述
测试是否可用: URL:http://192.168.2.1:5601
在这里插入图片描述
二、L服务器配置(注意:必须以root用户登录去执行,否则,后面步骤无法创建索引)

安装Apache详见Linux系统用脚本轻松搭建Apache网站服务器

安装Logstash(上传包省略)
[root@localhost ~]# rpm -ivh /mnt/logstash-5.5.1.rpm
重载内核服务
[root@localhost ~]# systemctl daemon-reload
设置开机自启
[root@localhost ~]# systemctl enable logstash.service
切换目录
[root@localhost ~]# cd /etc/logstash/conf.d/
创建apache-log配置文件
[root@localhost conf.d]# vim apache_log.conf

input {
         file{
                path => "/etc/httpd/logs/access_log"
                type => "access"
                start_position => "beginning"
             }
          file{
                path => "/etc/httpd/logs/error_log"
                type => "error"
                start_position => "beginning"
               }
        }
output {
         if [type] == "access" {
         elasticsearch {
         hosts => ["192.168.2.1:9200"]
         index => "apache_access-%{+YYYY.MM.dd}"
                                }
                               }
  if [type] == "error" {
                elasticsearch {
                        hosts => ["192.168.1.1:9200"]
                        index => "apache_error-%{+YYYY.MM.dd}"
                        }
   }
  }


释义如图:
在这里插入图片描述
启动的同时加载配置文件
[root@localhost conf.d]# /usr/share/logstash/bin/logstash -f apache_log.conf

三、验证:
通过浏览器访问http://192.168.2.1:9100查看索引是否创建
在这里插入图片描述

客户机(192.168.2.10)访问 URL http://192.168.2.10:5601
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上是关于教你比别人更快更简单的搭建ELK日志系统群集的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch + Logstash + Filebeat + Kibana搭建ELK日志分析平台(官方推荐的BEATS架构)

ELK服务搭建(开源实时日志分析ELK平台部署)(低版本—简单部署)

ELK 学习总结—— 从零搭建一个基于 ELK 的日志指标收集与监控系统

ELK 学习总结—— 从零搭建一个基于 ELK 的日志指标收集与监控系统

Rsyslog+ELK日志分析系统搭建总结1.0(测试环境)

日志分析ELK平台搭建