https://mp.weixin.qq.com/s/MUIpei29-_0eTYbOMC5Lkg

本次参考链接:https://grafana.com/grafana/dashboards/11190

转自:https://www.cnblogs.com/Lqdream/p/16918607.html

一、概述
使用ELK收集nginx access日志,利用Grafana做出一套可视化图表

二、环境准备
环境说明
操作系统:centos 7.6

docker版本:19.03.12

ip地址:192.168.31.196

elk搭建
关于elk的搭建,请参考以下3篇文章:

docker安装elasticsearch和head插件

docker安装logstash

docker安装kibana

nginx安装
线上nginx直接用yum安装的

yum install -y nginx

三、nginx日志格式
默认的nginx日志格式,需要改为指定的格式


http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    log_format aka_logs
                      '{"@timestamp":"$time_iso8601",'
                      '"host":"$hostname",'
                      '"server_ip":"$server_addr",'
                      '"client_ip":"$remote_addr",'
                      '"xff":"$http_x_forwarded_for",'
                      '"domain":"$host",'
                      '"url":"$uri",'
                      '"referer":"$http_referer",'
                      '"args":"$args",'
                      '"upstreamtime":"$upstream_response_time",'
                      '"responsetime":"$request_time",'
                      '"request_method":"$request_method",'
                      '"status":"$status",'
                      '"size":"$body_bytes_sent",'
                      '"request_body":"$request_body",'
                      '"request_length":"$request_length",'
                      '"protocol":"$server_protocol",'
                      '"upstreamhost":"$upstream_addr",'
                      '"file_dir":"$request_filename",'
                      '"http_user_agent":"$http_user_agent"'
    '}';

    #access_log  /var/log/nginx/access.log  main;
    access_log  /var/log/nginx/access.log  aka_logs;

注意:这里的nginx的所有访问日志,统一在/var/log/nginx/access.log。

如果你的环境,单独为每一个虚拟主机分配了access日志,那么就需要在对应的虚拟主机配置文件,应用格式aka_logs即可。

文档更新时间: 2023-08-19 20:04   作者:admin