ELK日志收集部署
ELK介绍
ELK是3个开源产品的组合:
- Elasticsearch
- Logstash
- Kibana
全部由Elastic开发维护。
Elasticsearch是一个基于Lucene搜索引擎的NoSQL数据库。Logstash是一个日志管道工具,接受数据输入,执行数据转换,然后输出数据。Kibana是一个界面层,在Elasticsearch之上工作。另外,ELK栈中还包含称为Beats的日志收集器系列工具。
ELK最常见的使用场景是作为互联网产品的日志系统,当然ELK栈也可用于其他方面,例如:商业智能、大数据分析等。
Elasticsearch: 数据库,存数据 JAVA
Logstash: 收集日志,过滤数据 JAVA
Kibana, 分析, 过滤,展示 JAVA
Filebeat: 手机日志,传输到ES GO
日志收集分类
代理层: nginx haproxy
web层: nginx
db层: mysql redis mongo es
ELK主机规划
本次实验我们使用EFK的架构
53主机 Elasticsearch Kibana nginx filebeat
一.安装elasticsearch
在53主机操作
1.安装java环境
[root@db01 ~]# yum install -y java-1.8.0-openjdk
2.创建软件目录并拉取软件
[root@db01 ~]# mkdir /data/soft -p
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.rpm
[root@db01 ~]# cd /data/soft
[root@db01 soft]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.rpm ##如果拉取不到的话也可以用浏览器实现下载好再上传到服务器
3.使用rpm安装elasticsearch
[root@db01 soft]# rpm -ivh elasticsearch-6.6.0.rpm
4.修改配置文件并创建数据目录
[root@db01 ~]# vim /etc/elasticsearch/elasticsearch.yml
node.name: node-1
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 172.16.210.53
http.port: 9200
[root@db01 ~]# mkdir /data/elasticsearch/ -p
[root@db01 ~]# chown -R elasticsearch:elasticsearch /data/elasticsearch/ ##更改权限
5.修改内存锁定
[root@db01 soft]# systemctl edit elasticsearch.service
##添加这两行信息
[Service]
LimitMEMLOCK=infinity
6.启动elasticsearch
[root@db01 soft]# sudo systemctl daemon-reload
[root@db01 soft]# sudo systemctl enable elasticsearch.service
[root@db01 soft]# sudo systemctl start elasticsearch.service
7.时间同步
在所有主机上操作
yum install -y ntpdate #安装ntpdate
ntpdate time1.aliyun.com ##同步阿里云
二.安装kibana
在53主机操作
1.获取软件并安装
[root@db01 soft]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.6.0-x86_64.rpm ##拉取kibana安装包,如果拉取不了也可以使用浏览器提前下下载好,再上传至服务器
[root@db01 soft]# rpm -ivh kibana-6.6.0-x86_64.rpm ##安装kibana
2.编辑kibana配置文件
[root@db01 soft]# vim /etc/kibana/kibana.yml
##定义端口
server.port: 5601
##定义主机
server.host: "172.16.210.53"
##定义主机名
server.name: "db01"
##定义elasticsearch的主机
elasticsearch.hosts: ["http://localhost:9200"]
##开启kibana在elasticsearch的索引
kibana.index: ".kibana"
3.启动kibana
[root@db01 soft]# systemctl start kibana
[root@db01 soft]# systemctl enable kibana
4.检查端口
[root@db01 soft]# netstat -lntup | grep 5601 ##检查端口5601端口是否打开
tcp 0 0 172.16.210.53:5601 0.0.0.0:* LISTEN 2955/node
5.打开web访问
需要等一下时间再访问53主机地址:5601

三.安装filebeat
在53主机操作
1.获取filebeat软件包并安装
[root@db01 soft]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.0-x86_64.rpm ##获取软件包
[root@db01 soft]# rpm -ivh filebeat-6.6.0-x86_64.rpm ##开始安装
2.修改配置文件
[root@db01 soft]# cp /etc/filebeat/filebeat.yml{,bak} ##修改前先备份一份
[root@db01 soft]# vim /etc/filebeat/filebeat.yml ##修改配置文件
filebeat.inputs:
- type: log
##打开日志提取
enabled: true
##定义要提取的日志文件路径
paths:
- /var/log/nginx/access.log
##定义将日志输出到的elasticsearch主机
output.elasticsearch:
hosts: ["172.16.210.53:9200"]
3.启动服务
[root@db01 soft]# systemctl start filebeat
[root@db01 soft]# systemctl enable filebeat
四.安装nginx
在53主机操作
1.安装nginx和web测试工具
[root@db01 soft]# yum install nginx httpd-tools -y
2.启动nginx
[root@db01 soft]# systemctl start nginx
[root@db01 soft]# systemctl enable nginx
3.进行压力测试
[root@db01 soft]# ab -n 100 -c 100 http://172.16.210.53/
[root@db01 soft]# tailf /var/log/nginx/access.log ##查看是否生产日志
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
使用kibana展示数据
访问kibana的web界面点击Management

点击index Patterns

输入filebeat收集到的日志索引,再点击Next step

选择第一个

再点击Create index pattern

创建完成后,再点击Discover

现在没有数据是因为,最近15分钟没有数据产生,我们可以更改时间

更改为最近4小时的数据就能看见数据了

点击小三角,可以查看详细信息


如果想看某种信息,可以点击添加

此时,就能只看nginx的访问信息了

可以点击进入某个时间段

然后输入200

点击Refeesh
就可以查看状态码为200的访问信息,并且统计出为200个

也可查看404状态的次数

也可以手动设置想查看的内容
点击添加过滤项,设置为Chrome

也可以查看使用Chrome访问的次数

也可以双重过滤,过滤使用chrome浏览器并且404的信息

多创建几个过滤项,然后想过滤那个信息,就勾选那个信息就好了,不想过滤那个信息,就取消勾选

也可以排除过滤

过滤访问状态是200的信息,但是排除过滤使用curl的信息

网友评论