环境:

192.168.10.129

安装ES 9200,kibana:5601

192.168.10.131

安装了logstash:9600

登录到131上

log_format格式变量:

    $remote_addr  #记录访问网站的客户端地址

    $remote_user  #远程客户端用户名

    $time_local  #记录访问时间与时区

    $request  #用户的http请求起始行信息

    $status  #http状态码,记录请求返回的状态码,例如:200、301、404等

    $body_bytes_sent  #服务器发送给客户端的响应body字节数

    $http_referer  #记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置。

    $http_user_agent  #记录客户端访问信息,例如:浏览器、手机客户端等

    $http_x_forwarded_for  #当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置

 

[root@localhost patterns]# pwd
/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns
将创建好的nginx_access文件上传至这个目录下

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}"

 添加logstash的nginx 日志收集配置文件

logstash grok 内置正则:https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns

vim /etc/logstash/conf.d/nginx.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.10.129:9200"]
      index => "nginx_log-%{+YYYY.MM.dd}"
   }

}

注意:如果你的log放在/var/log下请给chmod 777 /var/log -R

 添加nginx日志的可视化图形

1 添加状态码统计饼状图

 

 

 

 

 

 

 

 

 

 

 

 2 添加一个统计pv的图形

 

 

 

 

 

 3 添加ip访问量前10的ip

 

 

 

 

 

 

 

 4 访问量趋势图

 

 

 

 

 

 5 添加一个仪表盘

 

 

 

 

 

 

 

 没有nginx 索引需注意以下几点:

1:chmod 777 /var/log/nginx -R

2: pipiline.yml 文件

3:nginx log 里要有内容 可以用ab压测用具生成一些日志