ELK平台可以进行实时日志分析,ELK由ElasticSearch、Logstash和Kibana三个开源工具组成,现
在还新增了一个Beats,它是一个轻量级的日志收集处理工具
Elasticsearch 是基于 Lucene 全文检索引擎架构,基于 JAVA 语言编写,对外开源、免费,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等,ELK 官网:
https://www.elastic.co/
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。工作方式为 C/S 架构,Client 端安装在需要收集日志的主机上,Server 端负责将收到的各节点日志进行过滤、修改等操作在一并发往Elasticsearch 服务器。
Kibana 也是一个开源和免费的工具,它 Kibana 可以为 Logstash 和ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志;
FileBeat 是一个轻量级日志采集器,Filebeat 属于 Beats 家族的 6 个成员之一,早期的 ELK 架构中使用 Logstash 收集、解析日志并且过滤日志,但是Logstash 对 CPU、内存、IO 等资源消耗比较高,相比 Logstash,Beats所占系统的 CPU 和内存几乎可以忽略不计;
Logstash 和 Elasticsearch 是用 Java 语言编写,而 Kibana 使用 node.js 框架,在配置 ELK 环境要保证系统有 JAVA JDK 开发库(JRE:JVM 虚拟机);
准备三台服务器
分别上传以下文件
133服务器
135服务器
136服务器
ELK工作原理:
Logstash收集日志,进行过滤处理,并且将数据发往elasticsearch,最终通过Kibana
ELK工作流程:
在linux、windows客户端安装Logstash日志收集工具(插件),通过logstash收集客户端(内核日志、安全日志、邮件日志、Nginx、Mysql、Redis、Docker)的日志数据,将所有的日志过滤出来,存入Elasticsearch搜索+引擎里,然后通过kibana GUI在WEB前端展示给用户,用户需要可以进行查看指定的日志内容。同时也可以加入redis通信队列
部署JDK,可以通过yum install -y java,也可以通过源码包安装
133存储搜索引擎服务器
解压jdk安装包,并移动到/usr/local路径下,jdk安装包解压后即可使用
设置JAVA_HOME环境变量
export JAVA_HOME=/usr/local/jdk-11.0.10/
添加到配置文件中vim /etc/profile,将export JAVA_HOME=/usr/local/jdk-11.0.10/添加到文件末尾生效
重新加载文件生效
通过以下命令查看jdk版本/usr/local/jdk-11.0.10/bin/java -version
想要用绝对路径方式执行java -version需要将JAVA_HOME添加到以下路径
重新加载文件生效
JDK配置完成后,配置elasticsearch
移动解压文件到/usr/local/文件夹下
修改名字
修改els配置文件,进入els的配置文件目录,备份配置文件
修改配置文件中的监听地址ip为全网监听,端口默认为9200
设置els机器节点名称为node-1
配置集群,因为我们只有一个节点,所以删除node-2节点
可将集群名称改为node-1
后台启动服务/usr/local/elasticsearch/bin/elasticsearch -d;-d表示demo后台启动
查看els启动日志
用命令more node-1.log,查看启动日志发现报错,不能用root用户启动els
创建用户ELK管理els服务,创建elk用户,并修改els目录的拥有者为elk
切换用户为elk
用普通用户重新启动即可成功
添加最大内存大小为655360
重新启动els
查看els进程
查看els端口是否启动,9200,9300,9200为数据端口,9300是es内部集群通信端口
到此els配置完成,接下来配置kibana,切换到135kibana服务器,解压kibana文件,并移动到/usr/local文件夹下
修改名字为kibana
做kibana配置文件
server.port:端口打开
监听地址改为全网监听
改为els的服务地址
启动kibana服务,因为默认不能以root用户启动,所以需要添加--alow-root允许root用户登录,并且,后台启动服务,会产生nohup.out日志文件
查看启动日志显示成功tail -fn200 nohup.out
此时访问前台访问135的5601端口可成功访问到页面,部署成功
修改配置文件的编码可显示为中文模式
kibana的进程名称为node而不是kibana
重启进程
重新访问前台网页即为中文模式
设置采集日志,136,解压jdk文件,名移动到/usr/local/文件夹下,将jdk添加到环境变量
重新加载配置文件,即可生效
解压logstash文件
移动logstash文件到usr/local文件夹下
查看linux内核日志
查看日志,能够看到我们做的操作情况,关闭防火墙
进入logstash文件的配置文件,创建采集linux内核的linux_message.conf配置文件
添加读取linux内核日志配置文件
加载配置文件命令../bin/logstash -f linux_message.conf
出现该标志即为加载成功,也可查看9600端口是否启动来判断logstash是否启动成功
在客户端安装httpd服务,写入linux内核日志
创建索引模式目录
即可看到日志监控成功(需要将服务器时间调整一致才可看到同步日志)