1 ELK安装部署并监控nginx

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

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

image.png
选择第一个

image.png
再点击Create index pattern
在这里插入图片描述
创建完成后,再点击Discover
在这里插入图片描述
现在没有数据是因为,最近15分钟没有数据产生,我们可以更改时间
在这里插入图片描述
更改为最近4小时的数据就能看见数据了
在这里插入图片描述
点击小三角,可以查看详细信息
在这里插入图片描述
在这里插入图片描述
如果想看某种信息,可以点击添加
在这里插入图片描述
此时,就能只看nginx的访问信息了
在这里插入图片描述
可以点击进入某个时间段
在这里插入图片描述
然后输入200
在这里插入图片描述
点击Refeesh就可以查看状态码为200的访问信息,并且统计出为200个
在这里插入图片描述
也可查看404状态的次数
在这里插入图片描述
也可以手动设置想查看的内容

点击添加过滤项,设置为Chrome
在这里插入图片描述
也可以查看使用Chrome访问的次数
在这里插入图片描述
也可以双重过滤,过滤使用chrome浏览器并且404的信息
在这里插入图片描述
多创建几个过滤项,然后想过滤那个信息,就勾选那个信息就好了,不想过滤那个信息,就取消勾选
在这里插入图片描述
也可以排除过滤
在这里插入图片描述
过滤访问状态是200的信息,但是排除过滤使用curl的信息
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章