Linux下Nginx日志发送到深信服日志审计

本软件仅供学习研究使用,该软件的最终解释权归作者所有

需要收集日志/var/log/nginx/access.log和/var/log/nginx/error.log

参考
https://support.sangfor.com.cn/cases/list?product_id=81&type=1&category_id=21946


编辑文件
/etc/rsyslog.d/nginx_syslog.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$MaxMessageSize 64k
$WorkDirectory /var/lib/rsyslog
$ModLoad imfile
$InputFilePollInterval 10

## nginx access 日志文件路径
$InputFileName /var/log/nginx/access.log
$InputFileTag nginx:
$InputFileStateFile stat-nginx-access
$InputFileSeverity info ## 日志等级
$InputFilePersistStateInterval 60 ##发送间隔时间
$InputRunFileMonitor

## nginx error 日志文件路径(新增部分)
$InputFileName /var/log/nginx/error.log
$InputFileTag nginx:
$InputFileStateFile stat-nginx-error
$InputFileSeverity error ## 日志等级为error
$InputFilePersistStateInterval 60 ##发送间隔时间
$InputRunFileMonitor

## 指定日志格式模板:
$template DefaultnginxFormat,"%msg%\n"

### 注意 syslog 日志服务器接收地址,根据实际情况修改:
if $programname == 'nginx' then @@10.2.250.90:38514;DefaultnginxFormat
#if $programname == 'nginx' then ~
if $programname == 'nginx' then stop

配置后重启rsyslog

检查配置

1
rsyslogd -N1 -f /etc/rsyslog.d/nginx_syslog.conf

重启rsyslog

1
systemctl restart rsyslog

查看状态

1
systemctl status rsyslog