目录
Syslog方式采集Linux系统上HTTP应用日志发送到SIP-Logger
使用 Syslog 方式采集 Linux 系统上 HTTP 应用程序(如 Nginx, Apache, Tomcat 等)的日志,是一种集中化、标准化管理日志的有效方法。以下是详细的配置步骤和说明:
核心思路:
- 配置 HTTP 应用程序日志输出 。
- 配置 Syslog 守护进程: 接收来自应用程序的日志消息,根据规则(如程序名、优先级、标签)进行过滤和写入特定的日志文件或转发到远程日志服务器。
详细步骤 (以 uWSGI应用服务器 和 rsyslog 为例)
步骤 1: 配置应用程序输出日志
在uWSGI配置文件(通常是.ini或.xml格式)中可以通过以下参数控制日志:
-
通过进程找到uWSGI配置文件路径:
ps aux | grep uwsgi
-
修改配置制定日志文件路径:
[uwsgi] #上面是原有其他配置 daemonize = /u01/vpp-back/uwsgi.log
假设已经做好了配置,日志文件已经输出到了 /u01/vpp-back/uwsgi.log
步骤 2: 配置 rsyslog 接收并处理Linux系统日志
-
修改 rsyslog 配置文件:
sudo nano /etc/rsyslog.conf
-
编写配置规则:
在文件的末尾添加以下内容,将Linux系统日志通过UDP方式路由到远程服务器SIP-Logger:*.* @10.197.210.159
步骤 3: 配置 rsyslog 接收并处理应用程序日志
-
创建 rsyslog 配置文件:
在/etc/rsyslog.d/
目录下创建一个新文件(例如uwsgi.conf
)。这个目录的文件会被自动包含在主配置中。sudo nano /etc/rsyslog.d/uwsgi.conf
-
编写配置规则:
添加以下内容,将日志路由到远程服务器SIP-Logger:# uWSGI 日志配置 $ModLoad imfile $InputFileName /u01/vpp-back/uwsgi.log $InputFileTag uwsgi: $InputFileStateFile stat-uwsgi $InputFileSeverity info $InputFileFacility local7 $InputRunFileMonitor # 设置文件权限 $FileCreateMode 0644 $DirCreateMode 0755 # 本地存储 local7.* /var/log/uwsgi.log # 如果还需要转发到远程服务器 local7.* @10.197.210.159
-
设置日志及目录权限:
sudo chmod 644 /u01/vpp-back/uwsgi.log sudo chown root:root /u01/vpp-back/uwsgi.log # 修复文件上下文 sudo restorecon -v /u01/vpp-back/uwsgi.log sudo semanage fcontext -a -t var_log_t "/u01/vpp-back/uwsgi.log" sudo restorecon -Rv /u01/vpp-back/uwsgi.log
-
重启 rsyslog 使配置生效:
sudo systemctl restart rsyslog sudo systemctl status rsyslog
通过以上步骤,就可以成功地将 Linux系统日志和HTTP 应用程序的日志通过 Syslog 协议采集到 SIP-Logger上了,并实现集中存储和管理。