ELK日志分析工具

ELK日志分析工具

ELK是三个开源软件的缩写,Elasticsearch、Logstash、Kibana

环境介绍:

ELK服务:192.168.203.132 (Elasticsearch、Logstash、Kibana)
nginx服务:192.168.203.151 (nginx,Filebeat)

搭建ELK服务端:

1.安装搭建elasticsearch

2.安装搭建logstash

3.安装搭建kibana

准备工作:

1.安装jdk环境工具(需安装jdk1.8)
[root@localhost elk]# yum install -y java-1.8.0*

1.安装搭建elasticsearch

(1)下载安装
1.下载elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.tar.gz

2.解压
[root@localhost elk]# tar -xf elasticsearch-6.4.2.tar.gz

3.将解压文件移动到/usr/local/elk目录下(最后elk需要加“/”,否则会将ela目录下的内容移动到elk中)
[root@localhost elk]# mv elasticsearch-6.4.2 /usr/local/elk/
(2)配置elasticsearch程序
1.新建elasticsearch用户
[root@localhost elasticsearch-6.4.2]# useradd elasticsearch
2.设置elasticsearch目录归属用户及组
[root@localhost elk]# chown -R elasticsearch:elasticsearch elasticsearch-6.4.2/
(3)启动服务
1.切换到elasticsearch用户下启动
[root@localhost elk]# su - elasticsearch

2.启动服务
[elasticsearch@localhost ~]$ cd /usr/local/elk/elasticsearch-6.4.2/
[elasticsearch@localhost elasticsearch-6.4.2]$ ./bin/elasticsearch -d

3.查看进程是否启动成功(耐心等两三分钟)查看是否有9200端口
[elasticsearch@localhost logs]$ netstat -antp

4.测试是否正常访问
[elasticsearch@localhost logs]$ curl localhost:9200
#该信息表明elasticsearch安装成功
{
  "name" : "LLgwYXS",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "KWM0uHN2TH2kengIsdHrOQ",
  "version" : {
    "number" : "6.4.2",
    "build_hash" : "c59ff00",
    "build_date" : "2018-03-13T10:06:29.741383Z",
    "build_snapshot" : false,
    "lucene_version" : "7.2.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

2.安装搭建logstash

(1)下载安装
1.下载logstash
wget https://artifacts.elastic.co/cn/downloads/logstash/logstash-6.4.2.tar.gz

2.解压到指定目录/usr/local/elk
[root@localhost elk]# tar -xzvf logstash-6.4.2.tar.gz -C /usr/local/elk/
(2)配置logstash程序
1.logstash中的grok正则匹配
vim /usr/local/elk/logstash-6.4.2/vendor/bundle/jruby/2.3.0/gems/logstash-patterns-core-4.1.2/patterns/grok-patterns 
#Nginx log
WZ ([^ ]*)
NGINXACCESS %{IP:remote_ip} \- \- \[%{HTTPDATE:timestamp}\] "%{WORD:method} %{WZ:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:status} %{NUMBER:bytes} %{QS:referer} %{QS:agent} %{QS:xforward}

2.创建logstash配置文件
vim /usr/local/elk/logstash-6.4.2/default.conf
input {
        beats {
                port => "5044"
        }
}
#数据过滤
filter {
        grok {
                match => { "message" => "%{NGINXACCESS}" }
        }
        geoip {
                #nginx客户端ip
                source => "192.168.203.151"
        }
}
#输出配置为本机的9200端口,这是ElasticSearch服务的监听端口
output {
        elasticsearch {
                hosts => ["127.0.0.1:9200"]
        }
}
(3)启动服务
1.进入到/usr/local/elk/logstash-6.4.2目录下执行命令
#后台启动logstash
[root@localhost logstash-6.4.2]# nohup bin/logstash -f default.conf &

2.查看启动日志
[root@localhost logstash-6.4.2]# tailf nohup.out 

3.查看端口是否启动
[root@localhost logstash-6.4.2]# netstat -napt | grep 5044
tcp6       0      0 :::5044                 :::*                    LISTEN      54470/java

3.安装搭建kibana

(1)下载安装
1.下载kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-linux-x86_64.tar.gz

2.解压到指定目录/usr/local/elk
[root@localhost elk]# tar -xzvf kibana-6.4.2-linux-x86_64.tar.gz -C /usr/local/elk/
(2)配置kibana服务
1.配置kibana.yml
[root@localhost kibana-6.4.2-linux-x86_64]# vim /usr/local/elk/kibana-6.4.2-linux-x86_64/config/kibana.yml 
#server.host: "localhost"
改为:server.host: "192.168.203.132"(本机IP)这样其他电脑也能浏览访问kibana的服务了
(3)启动服务
1.进入kibana目录
[root@localhost kibana-6.4.2-linux-x86_64]# cd /usr/local/elk/kibana-6.4.2-linux-x86_64/
执行启动命令:nohup bin/kibana &
查看启动日志:tail -f nohup.out
查看端口是否启动:netstat -napt | grep 5601

采集客户端

介绍

1.本次测试使用的是采集nginx日志和filter工具进行收集

1.nginx安装

yum install -y wget gzip tar make gcc
yum install -y pcre pcre-devel zlib zlib-devel
wget -c http://nginx.org/download/nginx-1.16.0.tar.gz
tar -xzf nginx-1.16.0.tar.gz
cd nginx-1.16.0
useradd -s /sbin/nologin www -M
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module
make
make install
/usr/local/nginx/sbin/nginx
ps -ef|grep nginx
netstat -tnl|grep -w 80

2.安装filebeat工具

(1)下载
1.下载
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-linux-x86_64.tar.gz
2.解压到指定目录
[root@localhost filebeat-6.4.2-linux-x86_64]# tar -xzvf filebeat-6.4.2-linux-x86_64.tar_2.gz -C /usr/local/
(2)修改配置
[root@localhost filebeat-6.4.2-linux-x86_64]# cd /usr/local/filebeat-6.4.2-linux-x86_64/
[root@localhost filebeat-6.4.2-linux-x86_64]# vim filebeat.yml 
enabled: false                #修改为true
paths:- /var/log/*.log        #修改为nginx日志存放位置/usr/local/nginx/logs/*.log
#output.elasticsearch:        #注释掉
#hosts: ["localhost:9200"]    #注释掉
output.logstash:              #取消该行注释
hosts: ["192.168.203.132:5044"]   #取消该行注释并将IP地址修改为ELK服务器地址
(3)启动服务
[root@localhost filebeat-6.4.2-linux-x86_64]# cd /usr/local/filebeat-6.4.2-linux-x86_64/
[root@localhost filebeat-6.4.2-linux-x86_64]# nohup ./filebeat -e -c filebeat.yml &
(4)kibana测试
1.先通过浏览器多访问几次nginx服务,让其多生成一些访问文件
2.访问kibana:https://ip:5601,点击左上角的Discover,可以看到日志已经被ELK搜集,按照下述步骤设置集成
	输入logstash-*,点击Next step
	选择Time Filter,再点击Create index pattern
	然后可自行创建日志内容查询规则

搭建中的错误:

1.在下载elasticsearch软件包时,将其版本下载错误,elasticsearch和logstash及kibana版本不一致,导致无法进入kibana主页

2.elasticsearch服务经常挂掉,主要原因是系统运行oracle服务,内存占满系统自动杀掉elasticsearch服务

3.logstash中将nginxIP设置错误,导致kibana无法获取数据

解决问题的思路:首先应该仔细想想出错是哪一环节导致,比如无法获取数据,有可能是filebeat或者logstash无法收集日志导致,则从这两个服务检查,由于是从filebeat服务将数据传给logstash,则从第一步的filebeat开始检查,没问题再从logstash排查,这次搭建时这两个服务的错误都犯了,第一是没有将filebeat中的nginx日志路径写对,第二是没有将logstash中的nginxip填写正确。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值