ELK企业级日志分析系统
文档作者:传棋
创作日期:2022年3月12日
联系方式:Jaking@vip.163.com
注意事项:本文档仅供个人学习使用,未经作者同意,禁止用于任何商业用途!
ELK
ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。
Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。
Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建自己的数据的定制仪表板视图,还允许用户以特殊的方式查询和过滤数据。
原理介绍
本次部署的是FileBeat(客户端),ElasticSearch + FileBeat + Kibana + LogStash (服务端)组成的架构
业务请求到达Nginx客户端机器上的Nginx,Nginx响应请求,并在access.log文件中增加访问记录;FileBeat搜集新增的日志,通过LogStash的5044端口上传日志;LogStash将日志信息通过本机的9200端口传入到ElasticSearch;搜集日志的用户通过浏览器访问Kibana,服务器端口是5601;Kibana通过9200端口访问ElasticSearch;
整体架构
实战环境
1. RHEL7(3台)
2. 关闭iptables
3. 关闭SELinux
ELK功能
4. Kibana用来展现数据
5. Elasticsearch用来存储数据
6. Logstash用来收集数据
实战环境
7. 192.168.10.11部署Kibana、ES
8. 192.168.10.12部署Logstash
JDK1.8环境搭建
9. 安装JDK
10. 配置环境变量
yum安装jdk1.8,不建议
11. 链接:https://www.elastic.co/downloads/logstash
12. yum install java-1.8.0-openjdk -y
13. Elasticsearch、Logstash依赖于java环境
JDK的二进制安装
14. jdk1.8二进制包下载路径http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
15. 解压到对应安装目录/usr/local/或者/opt/
16. 验证安装/usr/local/jdk1.8.0_201/bin/java -version
安装命令
cd /usr/local/src
tar xvf jdk-8u201-linux-x64.tar.gz
mv jdk1.8.0_201 /usr/local/
配置Java环境变量/etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_201/
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
验证环境变量
source /etc/profile
java –version