首页 > 系统相关 >Logstash深入收集Nginx日志

Logstash深入收集Nginx日志

时间:2022-09-07 19:00:40浏览次数:102  
标签: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
From: https://www.cnblogs.com/wangchengww/p/16666886.html

相关文章

  • Logstash深入收集Java日志
    Logstash深入收集Java日志没有修改Json格式在企业中,我们看到tomcat日志遇到异常(exception)一条日志可能是几行或者十几行甚至几十行,组成的,那么,我们需要将多行日志变成......
  • springboot的日志配置
    转载:https://blog.csdn.net/tz845195485/article/details/123361895#========================logging日志相关的配置=====================#日志级别trace<debug<inf......
  • windows 桌面ffmpeg流媒体分享 录屏hls推流nginx(windows搭建rtmp服务器/hls服务器)
    一、前言1.本文目的为实现windows下开机自动启动的桌面直播流媒体服务。2具体方案为定时任务自动启动ffmpeg脚本开启hls流媒体直播,nginx自动启动hls流web服务。3.网页......
  • linux环境配置 (redis、jdk、nginx、mysql)
    linux环境配置环境准备服务器:腾讯云服务器操作系统:centos8.0终端控制器:finalshell3.9.34redis7.0.4jdk1.8.0nginx-1.21.3mysql8.0.30redis安装创建或选......
  • LINUX系统中查询Oracle数据库的归档日志目录
    注:查询Linux系统中Oracle数据库的归档日志方法,不同的安装目录使用不同的方法,一下有两种方式,其中一种是我目前使用的数据库未查到归档才换的第二种方式。-----方式一:查询数......
  • Python 运行日志 → 01.09.2022
    Python运行日志→01.09.20221-)Python简介在本文中,我想总结一下我们看到的第一堂课中的代码和基本信息。由于我对这种领域完全陌生,我突然将其视为课程重复。那么让......
  • 查看sql语句执行日志
    mysql>showvariableslike"%general_log%";+------------------+-------------------------+|Variable_name|Value|+------------------+......
  • zabbix自定义监控进程与日志
    zabbix自定义监控进程与日志目录zabbix自定义监控进程与日志zabbix自定义监控进程zabbix自定义监控日志zabbix自定义监控进程基于之前的邮箱告警,部署完成后,我们在zabbi......
  • zabbix自定义监控进程和日志
    zabbix自定义监控进程和日志目录zabbix自定义监控进程和日志自定义监控进程配置监控脚本添加监控项添加触发器手动关闭httpd服务,触发报警自定义监控日志服务端和客户端操......
  • Flask 学习-54.Flask-RESTX 结合 namespace 使用 logging日志
    前言Flask-RESTX通过提供每个和它自己的标准Python实例来扩展Flask的日志记录。这允许在每个命名空间的基础上分离日志记录,以允许更细粒度的细节和配置。基本示例默......