教你比别人更快更简单的搭建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 的日志指标收集与监控系统