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
本次实验我们使用EFK的架构
53主机 Elasticsearch Kibana nginx filebeat
一.安装elasticsearch 在53主机操作
1.安装java环境
[root@db01 ~]# yum install -y java-1.8.0-openjdk2.创建软件目录并拉取软件
[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.rpm4.修改配置文件并创建数据目录
[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=infinity6.启动elasticsearch
[root@db01 soft]# sudo systemctl daemon-reload [root@db01 soft]# sudo systemctl enable elasticsearch.service [root@db01 soft]# sudo systemctl start elasticsearch.service7.时间同步 在所有主机上操作
yum install -y ntpdate #安装ntpdate ntpdate time1.aliyun.com ##同步阿里云在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 ##安装kibana2.编辑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 kibana4.检查端口
[root@db01 soft]# netstat -lntup | grep 5601 ##检查端口5601端口是否打开 tcp 0 0 172.16.210.53:5601 0.0.0.0:* LISTEN 2955/node5.打开web访问 需要等一下时间再访问53主机地址:5601
在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在53主机操作
1.安装nginx和web测试工具
[root@db01 soft]# yum install nginx httpd-tools -y2.启动nginx
[root@db01 soft]# systemctl start nginx [root@db01 soft]# systemctl enable nginx3.进行压力测试
[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的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的信息