利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台

1.安装elasticsearch,具体安装办法

2.下载 logstash-6.3.2.tar.gz ,并上传至服务器 (/elsearch/)

3.解压 logstash

cd /elsearch/

tar zxvf logstash-6.3.2.tar.gz

4.下载 kibana-6.3.2-linux-x86_64.tar.gz ,并上传到服务器 (/elsearch/)

5.解压 kibana

cd /elsearch/

tar zxvf kibana-6.3.2-linux-x86_64.tar.gz

6.配置 kibana

kibana的配置文件在 /elsearch/kibana-6.3.2-linux-x86_64/config/kibana.yml

#elasticsearch.url: "http://localhost:9200" //访问elsearch的地址

#server.port: 5601 //kibana的访问端口

#server.host: "localhost" //kibana的访问地址。这里改为本机的IP,并去掉之前的 #

server.host: "192.168.1.109",其它的就按默认文件配置。

7.启动 kibana

cd /elsearch/kibana-6.3.2-linux-x86_64/bin/

./kibana &

8.在浏览器中查看 kibana

http://192.168.1.109:5601

利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台

8.nginx的日志格式在配置文件中配置。打开/etc/nginx/nginx.conf,配置日志格式

log_format main '$remote_addr "$time_iso8601" "$request" $status $body_bytes_sent "$http_user_agent" "$http_referer" "$http_x_forwarded_for" "$request_time" "$upstream_response_time" "$http_cookie" "$http_Authorization" "$http_token"';

access_log /var/log/nginx/access.log main

重启nginx 。 service nginx restart

清空nginx的日志,点击一部分后,来产生新的格式的日志。接下来会用到。

9.接下来配置logstash

input {

file {

#日志存放路径

path => "/elsearch/logstash-6.3.2/etc/access.log"

start_position => "beginning"

}

}

filter {

grok {

match => {"message" => "%{IPORHOST:client_ip} "%{TIMESTAMP_ISO8601:timestamp}" "%{WORD:verb} %{NOTSPACE:request_path} HTTP/%{NUMBER:httpversion}" %{NUMBER:response_status:int} %{NUMBER:response_body_bytes:int} "%{DATA:user_agent}" "%{DATA:http_referer}" "%{NOTSPACE:http_x_forwarder_for}" "%{NUMBER:request_time:float}" "%{DATA:upstream_resopnse_time}" "%{DATA:http_cookie}" "%{DATA:http_authorization}" "%{DATA:http_token}""}

add_field => {"request_path_with_verb" => "%{verb} %{request_path}"}

add_field => {"request_path_2" => "%{request_path}"}

}

#忽略nginx日志中的js css image等信息

if ".js" in [request_path] or ".css" in [request_path] or ".png" in [request_path] or ".ico" in [request_path] or ".jpg" in [request_path] or ".woff" in [request_path] or ".gif" in [request_path] {

drop {}

}

#分割URL

kv {

prefix => "cgsoft_"

field_split => "?&"

value_split =>"="

source => "request_path"

allow_duplicate_values => false

}

date {

match => [ "timestamp", "yyyy-MM-dd'T'HH:mm:ssZZ" ]

target => "@timestamp"

}

#IP处理,这里用到了一个IP库。

geoip {

source => "client_ip"

database => "/elsearch/logstash-6.3.2/etc/GeoLite2-City.mmdb"

}

urldecode {

all_fields => true

}

}

output {

elasticsearch {

hosts => "127.0.0.1:9200"

}

stdout {

codec => json_lines

}

}

启动logstash.

10.刷新 http://192.168.1.109:5601

1.点击 Management.

2.点击 Index Patterns

利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台

3.搜索 log*,然后点击 netxt step

利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台

4.然后选择 @timestamp,然后点击右下角的create index

利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台

5.就可以看到日志导入elsearch中的一些信息。

利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台

6.点击左侧栏的 Discover,然后在右上角选择日志的时间段,因为我这里只有一部分测试数据,所以会比较少。

利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台

7.点击左侧栏的 Visualize,然后点击 create

利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台

7.选择一种图片的样子,这里选择 柱状图

利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台

8.选择刚才 的 log*

利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台

9.选择柱状图的属性,这里只是简单的设置了一下。可以看到各个时间段的访问情况

利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台

Kibana还有更多展示日志的方式 ,这里只是带大家入门,更多,更全面的使用来分析日志,就得深入学习。

这里再分享一个中文地图的链接 ,只要放到kibana的配置文件底部,重启kibana就可以了。

tilemap.url: "http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}"

更多相关的包,可以到这里的云盘下载。


分享到:


相關文章: