ELK之四-----logstash收集nginx日志及tcp日志
实验一:实现Logstash收集nginx访问日志(Json格式)
1、安装并配置nginx服务
1、安装nginx,生产中最好是源码编译nginx服务。
[root@logstash conf.d]# yum install nginx -y
2、将nginx的日志格式改为Json格式:/etc/nginx/.nginx.conf配置文件进行修改。
http { log_format access_json '{"@timestamp":"$time_iso8601",' # 在http段改为json格式 '"host":"$server_addr",' '"clientip":"$remote_addr",' '"size":$body_bytes_sent,' '"responsetime":$request_time,' '"upstreamtime":"$upstream_response_time",' '"upstreamhost":"$upstream_addr",' '"http_host":"$host",' '"url":"$uri",' '"domain":"$host",' '"xff":"$http_x_forwarded_for",' '"referer":"$http_referer",' '"status":"$status"}'; access_log /var/log/nginx/access.log access_json; #末尾和起始的名称一致
3、启动nginx服务:nginx
2、在logstash配置文件中创建收集nginx日志的文件
1、在logstash主机的/etc/logstash/conf.d/目录下创建一个nginx.conf配置文件
input { file { path => "/var/log/nginx/access.log" # 从nginx的日志目录下提取日志文件 start_position => "beginning" stat_interval => 3 type => "nginx-access-log" # log日志名称 codec => "json" # 标准输入是指定为json格式 } } output { if [type] == "nginx-access-log" { elasticsearch { # 标准输出至elasticsearch主机上 hosts => ["192.168.7.100:9200"] index => "nginx-access-log-7-100-%{+YYYY.MM.dd}" }} }
2、重新启动logstash服务
# systemctl restart logstash
3、在kibana网页上创建nginx日志索引
1、创建索引模式
2、在discover选项查看创建的nginx日志信息
实验二:基于Logstash服务收集TCP日志
官方文档:https://www.elastic.co/guide/en/logstash/5.6/input-plugins.html
1、在logstash的/etc/logstash/conf.d/目录下创建一个tcp.conf配置文件,用来监听指定的TCP端口。
input { tcp { port => "5044" codec => "json" } } output { elasticsearch { hosts => ["192.168.7.100:9200"] index => "tcp-log-7-100-%{+YYYY.MM.dd}" } }
2、在kibana网页上创建索引
3、在discover选项中可以看到此时添加的tcp日志文件信息。