ELK安装文档

本实验是将ELK的3个组件安装在了一台主机上!当然也可以安装在3个主机上,一个组件一台主机

1.部署环境:

系统:Centos7.5

同步时间:

elk生产环境部署 elk安装部署_elasticsearch


yum -y install ntpdate

ntpdate 0.cn.pool.ntp.org2.上传ELK安装包至服务器:

elk生产环境部署 elk安装部署_vim_02


3.安装ELK组件

rpm -ivh jdk-8u131-linux-x64_.rpm

rpm -ivh elasticsearch-6.6.0.rpm

rpm -ivh logstash-6.6.0.rpm

rpm -ivh kibana-6.6.0-x86_64.rpm

4.elasticsearch配置和启动

ulimit -n 65536

vim /etc/sysctl.conf

elk生产环境部署 elk安装部署_vim_03


sysctl -p

修改配置文件,配置监听地址:

vim /etc/elasticsearch/elasticsearch.yml

elk生产环境部署 elk安装部署_elasticsearch_04


关闭防火墙并启动elasticsearch

systemctl stop firewalld

setenforce 0

systemctl start elasticsearch

稍等一会,启动需要时间,等启动成功后可以查看到9200端口已经处于监听状态

elk生产环境部署 elk安装部署_vim_05


5.logstash配置收集系统日志

logstash是用来收集日志,并对日志做过滤处理的,我们下面要分析的是系统日志,所以要编写一个收集日志的配置文件

vim /etc/logstash/conf.d/system.conf
 内容如下:
nput {
 file {
 path => “/var/log/messages”
 type => “system-log”
 start_position => “beginning”
 }
 }
 output {
 elasticsearch {
 hosts => “127.0.0.1:9200”
 index => “system_log-%{+YYYY.MM.dd}”
 }
 }

input日志输入模块:日志的获取方式和路径
数据往往以各种各样的形式,或分散或集中地存在于很多系统中。Logstash 支持各种输入选择 ,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。

fileter日志的过滤模块:数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。
output日志的输出模块:导出你的数据
尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。

Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例

我们这里是从本地某个目录下以文件的形式获取的日志,并且没有过滤讲日志直接输出给了elasticsearch

这里为了测试,将/var/log/messages日志的权限修改为了644,因为logstash是以logstash用户的身份运行的,不改权限是读取不了日志内容的

改权限
chmod 644 /var/log/messages
启动logstash
systemctl start logstash

稍等1分钟后可以查看9600端口是否监听

若未监听可以查看日志是否有错误

tail -f /var/log/logstash/logstash-plain.log

6.配置并启动kibana

这里只需要配置监听地址和elasticsearch的ip就可以了

vim /etc/kibana/kibana.yml

elk生产环境部署 elk安装部署_elk生产环境部署_06

Systemctl start kibana

稍等片刻后查看5601端口是否监听,监听后直接访问即可

elk生产环境部署 elk安装部署_elasticsearch_07


elk生产环境部署 elk安装部署_vim_08


elk生产环境部署 elk安装部署_elk生产环境部署_09


给系统日志添加可视化图形

elk生产环境部署 elk安装部署_elasticsearch_10

选择创建图形类型为线性图

elk生产环境部署 elk安装部署_elasticsearch_11


选择绘画哪个索引的图形

elk生产环境部署 elk安装部署_nginx_12

选择X轴为绘画日期的柱状图,然后点击开始获取数据

elk生产环境部署 elk安装部署_elasticsearch_13

elk生产环境部署 elk安装部署_elasticsearch_14


此图形是根据时间统计日志在一段时间内的增加数量趋势图,让然也可以添加其他的图形

7.分析nginx访问日志

我们可以先搭建一个LNMP环境发布一个电商项目,这样可以产生测试数据

我这里采用源码安装的nginx其他为yum安装,nginx访问日志路径为:

/usr/local/nginx/logs/access.log
创建文件nginx_access,定义配置规则NIGNXACCESS,用来配置nginx访问日志
 cd /usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-patterns-core-4.1.2/patterns/
 vim nginx_access
URIPARAM1 [A-Za-z0-9$.+!’|(){},~@#%&/=:;_?-[]]
 NGINXACCESS %{IPORHOST:client_ip} (%{USER:ident}|- ) (%{USER:auth}|-) [%{HTTPDATE:timestamp}] “(?:%{WORD:verb} (%{NOTSPACE:request}|-)(?: HTTP/%{NUMBER:http_version})?|-)” %{NUMBER:status} (?:%{NUMBER:bytes}|-) “(?:%{URI:referrer}|-)” “%{GREEDYDATA:agent}”或将编写好的nginx_access文件上传至此目录
添加logstash的nginx日志收集配置文件
 vim /etc/logstash/conf.d/nginx-log.conf
input {
 file {
 path => “/usr/local/nginx/logs/access.log”
 type => “nginx-log”
 start_position => “beginning”
 }
 }
 filter {
 grok {
 match => { “message” => “%{NGINXACCESS}” }
 }
 }
 output {
 elasticsearch {
 hosts => [“192.168.189.128:9200”]
 index => “nginx_log-%{+YYYY.MM.dd}”
 }
 }

重启logstash
systemctl restart logstash

等待2分钟logstash启动后去kibana上添加nginx的索引

elk生产环境部署 elk安装部署_vim_15


elk生产环境部署 elk安装部署_elasticsearch_16


elk生产环境部署 elk安装部署_elasticsearch_17

8.添加nginx日志的可视化图形
1.添加状态码统计饼状图

elk生产环境部署 elk安装部署_elasticsearch_18


elk生产环境部署 elk安装部署_elasticsearch_19


elk生产环境部署 elk安装部署_vim_20


elk生产环境部署 elk安装部署_elasticsearch_21

elk生产环境部署 elk安装部署_nginx_22


elk生产环境部署 elk安装部署_nginx_23


elk生产环境部署 elk安装部署_nginx_24


2.添加统计pv的图形

elk生产环境部署 elk安装部署_elasticsearch_25


elk生产环境部署 elk安装部署_elasticsearch_26


elk生产环境部署 elk安装部署_nginx_27


elk生产环境部署 elk安装部署_nginx_28


elk生产环境部署 elk安装部署_nginx_29


3.按照以上步骤再次添加ip访问量前10的ip

elk生产环境部署 elk安装部署_elk生产环境部署_30


elk生产环境部署 elk安装部署_elk生产环境部署_31


elk生产环境部署 elk安装部署_elasticsearch_32

4.访问量趋势图

elk生产环境部署 elk安装部署_elasticsearch_33


elk生产环境部署 elk安装部署_nginx_34

5.添加仪表板

elk生产环境部署 elk安装部署_nginx_35


elk生产环境部署 elk安装部署_vim_36


elk生产环境部署 elk安装部署_nginx_37

elk生产环境部署 elk安装部署_nginx_38

保存

elk生产环境部署 elk安装部署_vim_39