ELK企业应用场景之Nginx日志采集-logstash+es+kibana

目录

1.采集Nginx日志

1.1.Nginx日志json格式化

1.2.logstash-nginx.yml文件配置

1.3.nginx日志查询验证

1.3.1.启动服务

1.3.3.创建索引模式

1.3.4.查询结果展示


1.采集Nginx日志


1.1.Nginx日志json格式化


采集nginx日志的json格式,需要修改nginx日志格式,如下:
为便于后期解析日志,建议日志格式按照如下配置,如图:在nginx.conf    里面配置json格式

log_format nginx_json escape=json '{"@timestamp":"$time_iso8601",'
                '"server_addr":"$server_addr",'
                '"client_ip":"$remote_addr",'
                '"status":"$status",'
                '"request_method": "$request_method",'
                '"http_host":"$host",'
                '"request_url":"$request_uri",'
                '"proxy_add_x_forward":"$proxy_add_x_forwarded_for",'
                '"proxy_port":"$proxy_port",'
                '"proxy_host":"$proxy_host",'
                '"upstream_host":"$upstream_addr",'
                '"upstream_status":"$upstream_status",'
                '"upstream_response_time":"$upstream_response_time",'
                '"http_user_agent":"$http_user_agent",'
                '"http_origin":"$http_origin",'
                '"http_upgrade":"$http_upgrade",'
                '"http_referer":"$http_referer",'
                '"http_x_forward":"$http_x_forwarded_for",'
                '"https":"$https",'
                '"http_scheme":"$scheme",'
                '"ssl_protocol":"$ssl_protocol",'
                '"ssl_cipher":"$ssl_cipher"}';

在应用nginx日志里面引用json格式,加上nginx_json,配置如下:

server {
    ...
    access_log /path/to/access.log nginx_json;
}

1.2.logstash-nginx.yml文件配置


配置文件路径:在/home/elk/logstash-7.8.0/config/目录下
创建logstash-nginx.yml配置文件,配置示例如下:
赋权:chmod 755 logstash-nginx.yml

input {
        file {
            path => "/usr/local/nginx/logs/xpebackend.log"
			type => "mall-nginx-xpebackend"
			start_position => "beginning"
			stat_interval => "3"
			codec => json
        }
        file {
            path => "/usr/local/nginx/logs/xpesisap.log"
			type => "mall-nginx-xpesisap"
			start_position => "beginning"
			stat_interval => "3"			
			codec => json
        }		
}

output {
		if [type] == "mall-nginx-xpebackend"{
            elasticsearch {
				hosts => "10.62.196.19:9200"
                index => "mall-nginx-xpebackend-%{+YYYY.MM.dd}"
			}
        }
		if [type] == "mall-nginx-xpesisap"{
            elasticsearch {
				hosts => "10.62.196.19:9200"
                index => "mall-nginx-xpesisap-%{+YYYY.MM.dd}"
			}
        }		
}

配置说明:
input:
path:配置需要采集的日志路径:xpesisap.log路径
type:日志类型是mall-nginx-xpesisap
说明:mall是业务系统得名称
start_position => "beginning" - 指定从文件的哪个位置开始读    取。    这里指定的是从文件的开头(beginning)开始读取。
stat_interval => "3" - 指定每隔多少秒检查一次文件的状态。这    里    指定的是每隔3秒检查一次。
codec => json - 指定要使用的编解码方式。这里指定的是json,    意味着会将每一行数据解析为JSON格式。
output:
Index:创建索引的格式,是按业务日志作用和每天创建。


1.3.nginx日志查询验证


1.3.1.启动服务


路径:/usr/local/logstash-7.8.0/bin
命令: ./logstash -f ../config/logstash-nginx.yml &


1.3.2.创建索引模板


a.登录kibana管理界面
b.选择:Management-stack-Management-Elasticsearch
进入“索引管理”,选择“索引模板”,创建nginx模板,具体参    数如下:
名称:nginx
索引模式:mall-nginx-*
索引设置:

{
   "index": {
            "highlight": {
              "max_analyzed_offset": "2000000000"
        },a
        "refresh_interval": "1s",
        "blocks": {
          "read_only_allow_delete": "false"
     },
        "query": {
         "default_field": [
          "*"
          ]
      },
        "priority": "1",
        "number_of_replicas": "0",
        "write": {
              "wait_for_active_shards": "1"
        }
       }
}

然后直接下一步,创建索引模板成功,展示如下:

1.3.3.创建索引模式


a.登录kibana管理界面
b.选择:Management-stack-Management-kibana
c.选择“索引模式”,点击“创建索引模式”,定义一个索引模式,能够匹配到生成的mall-nginx-*的索引,然后保存。如下图所示:

1.3.4.查询结果展示

        进入“discover”界面,选择mall-nginx-*模式,在搜索栏目填写搜索条件:type:"mall-nginx-xpesisap",然后点击:刷新,日志展示结果如下:

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

股市过客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值