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

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

理论讲解

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

ELK Stack 的优点:

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

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

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

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

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

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

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

案例环境

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

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

案例实施

一、EK服务器配置(均关闭防火墙、setenforce宽容模式)

1、服务器 node1 192.168.2.1

[root@localhost ~]# vim /etc/hosts //添加dns解析信息
教你比别人更快更简单的搭建ELK日志系统群集
以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四款所需安装包。

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
查看是否存在服务端口
[root@localhost ~]# netstat -anpt | grep 9200
教你比别人更快更简单的搭建ELK日志系统群集
查看节点信息: URL:http://es服务器IP:9200
教你比别人更快更简单的搭建ELK日志系统群集

查看集群健康情况:URL:http://es服务器IP:9200/_cluster/health?pretty即:http://192.168.2.1:9200/_cluster/health?pretty
教你比别人更快更简单的搭建ELK日志系统群集
2) 安装Elasticsearch-Head插件
注意:1.先要安装两个依赖程序node、phantomjs;2.elasticsearch-head只安装在一台节点服务器

解压node包(大概需要40分钟时间)
[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/
解压
[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
教你比别人更快更简单的搭建ELK日志系统群集
重启服务
[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
教你比别人更快更简单的搭建ELK日志系统群集
2、服务器 node2 192.168.2.2 方法相同,略过

使用elasticsearch插件访问群集:url http://192.168.2.1:9100
教你比别人更快更简单的搭建ELK日志系统群集
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
教你比别人更快更简单的搭建ELK日志系统群集
测试是否可用: URL:http://192.168.2.1:5601
教你比别人更快更简单的搭建ELK日志系统群集
二、L服务器配置

安装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}"
                                }
                               }
 }

释义如图:
教你比别人更快更简单的搭建ELK日志系统群集
启动的同时加载配置文件
[root@localhost conf.d]# /usr/share/logstash/bin/logstash -f apache_log.conf

三、验证:
通过浏览器访问http://192.168.2.1:9100查看索引是否创建
教你比别人更快更简单的搭建ELK日志系统群集

客户机(192.168.2.10)访问 URL http://192.168.2.10:5601
教你比别人更快更简单的搭建ELK日志系统群集
教你比别人更快更简单的搭建ELK日志系统群集
教你比别人更快更简单的搭建ELK日志系统群集

上一篇:2021程序员进阶宝典!ELK性能优化实战分析下载量瞬秒百万


下一篇:es环境搭建