ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Logstash深入收集Nginx日志

2022-09-07 19:00:39  阅读:244  来源: 互联网

标签:log nginx access Nginx conf 日志 elkstack03 root Logstash


Logstash深入收集Nginx日志

安装nginx

[root@elkstack03 ~]# yum install -y nginx


## 主配置文件
[root@elkstack03 ~]# cat /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

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

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

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;
}

## 子配置文件
[root@elkstack03 ~]# vim /etc/nginx/conf.d/www.conf
  
server{
        listen 80;
        server_name _;
        root /code;
        index index.html;
}

[root@elkstack03 ~]# mkdir /code
[root@elkstack03 ~]# echo 'test nginx' > /code/index.html
[root@elkstack03 ~]# systemctl start nginx

将nginx日志改成Json格式

之前我们讲了tomcat日志,在企业中,修改格式需要与开发商量,但是nginx我们不需要,如果需要原来的格式日志,我们可以将日志输出两份,一份 main格式,一份Json格式

http{
		...
	log_format json '{"@timestamp":"$time_iso8601",'
       	'"host":"$server_addr",'
       	'"ipaddr":"$remote_addr",'
       	'"login_user":"$remote_user",'
       	'"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"}';
		...
}


[root@elkstack03 conf.d]# vim www.conf 
server{
        listen 80;
        server_name www.zls.com;
        root /code;
        index index.html;
        access_log  /var/log/nginx/www.zls.com_access_json.log  json;
}

[root@elkstack03 conf.d]# cat /etc/nginx/conf.d/blog.conf 
server{
	listen 80;
	server_name blog.zls.com;
	root /blog;
	index index.html;
	access_log  /var/log/nginx/blog.zls.com_access_json.log  json;
}

使用Logstash收集nginx日志

[root@elkstack03 conf.d]# cat /etc/logstash/conf.d/nginx_file_es.conf
input{
	file{
		type => "www.zls.com_access"
		path => "/var/log/nginx/www.zls.com_access_json.log"
		start_position => "beginning"
	}
        file{
                type => "blog.zls.com_access"
                path => "/var/log/nginx/blog.zls.com_access_json.log"
                start_position => "beginning"
        }

}

filter{
	json{
		source => "message"
		remove_field => ["message"]
	}
}

output{
	elasticsearch{
		hosts => ["10.0.0.81:9200"]
		index => "%{type}-%{+yyyy.MM.dd}"
		codec => "json"
	}
}


[root@elkstack03 conf.d]# /usr/share/logstash/bin/logstash --path.data=/var/lib/logstash/nginx -f /etc/logstash/conf.d/nginx_file_es.conf &


标签:log,nginx,access,Nginx,conf,日志,elkstack03,root,Logstash
来源: https://www.cnblogs.com/wangchengww/p/16666886.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有