ELK简介
elk:elasticsearch logstash kibana,统一日志收集系统。
elasticsearch:分布式的全文索引引擎的非关系数据库,json格式,在elk中存储所有的日志信息,架构有主和从,最少需要2台。
logstash:动态的从各种指定的数据源,获取数据,而且对数据进行过滤,分析。按照统一的格式发送到es。
kibana:把es的数据进行展示,进行客户端可以理解的操作,汇总、分析和搜索数据的平台。
ELK的架构

工作原理
- logstash收集日志数据
- 收集到的数据按照es的格式,发送到数据库
- 在图像界面展示--kibana
- 客户端访问kibana
数据库基本都是物理服务器
nginx可以微服务部署,redis也可以微服务部署;keep/lvs?docker可以部署,k8s不需要。
安装ELK
注意安装ELK内存不能少于4G,安装过程中要先检查下内存,不够的话清理下
echo 3 > /proc/sys/vm/drop_caches
实验架构如下
es1:zw4,192.168.254.14
es2:zw5,192.168.254.15
logstash、kibana:mysql1,192.168.254.31
安装elasticsearch
1、安装java依赖环境

2、提前准备好es包,并安装

3、两台es服务器修改es主配置文件 /etc/elasticsearch/elasticsearch.yml
配置es1,具体修改如下

配置es2,具体修改如下

两台es服务器共同操作



保存退出后,一键检查两台es配置有无问题

4、启动elasticsearch.service并检查是否启动成功
首先查看日志,显示已启动

再查看端口,显示端口已启

最后看浏览器能否正常访问

安装logstash和kibana
1、安装java依赖环境

2、安装logstash和kibana包
dpkg -i logstash-6.7.2.deb
dpkg -i kibana-6.7.2-amd64.deb
3、先开启logstash服务,再创建软连接

回到别的目录下,看logstash能否自动补齐
4、配置kibana配置文件/etc/kibana/kibana.yml,创建kibana日志文件
修改配置文件前先创建备份文件

具体修改如下



创建kibana日志文件并赋权

重启后发现kibana启动成功

收集日志
当我们进行索引管理时,发现没有记录,说明我们没有logstash还不能收集数据。

1、创建logstash的本地日志收集文件

- conf.d:是logstash存放日志的目录
- system.conf:创建日志收集文件,必须要以.conf
具体脚本内容和注释如下


2、开启日志收集

-f:file,从指定文件开始收集
--path.data /opt/test1:没启动一个logstash就会有一个数据文件,默认都在/var/log/logstash

最后显示logstash日志收集成功
3、登录kibana,显示日志收集成功

这时候,我们可以先启动nginx,再关闭nginx,可以发现日志收集更新也正常

filebeat
filebeat:是一款轻量级的日志收集工具,不依赖java环境。
用来替代在机器上没有java环境的情况下进行日志收集。
filebeat启动收集日志,只要10M左右的内存。、
elk+filebeat架构

elk+filebeat实操
在上面实现ELK的基础上,完成elk+filebeat实操。
实验架构如下
filebeat:mysql2,192.168.254.32
我们在192.168.254.32主机上,安装filebeat软件,然后模拟filebeat收集本机上nginx和mysql日
志。具体操作如下:
1、首先配置mysql主配置文件,打开mysql日志记录功能

2、安装filebeat包,filebeat包解压即用

3、配置filebeat主配置文件/usr/local/filebeat/filebeat.yml,添加内容和注释如下


- #指定本机收集nginx和mysql日志,包括类型、收集日志的位置及索引名称等

- #允许这个进程开启线程


- #logstash的端口,不是说logstash一定是5044,理论上来说可以是任意端口,5044是logstash起始端口,如果被别的程序占用,可以从5044依次往后改。
4、创建logstash的nginx和mysql日志收集文件/etc/logstash/conf.d/test1.conf

5、先启动filebeat,再启动logstash的日志收集文件test1.conf

- -e:输出的格式为标准输出
- -c:指定配置文件

最后我们在启动filebeat程序运行中,可以看出filebeat的主机和logstash的主机连接成功

6、登录kibana,显示日志收集成功
