在 CentOS 里“syslog 导入”通常有以下几种常见场景,我先按最常见需求给你说明,你再对照自己的情况选:
CentOS 默认使用 rsyslog,日志本身就会写入文件:
/var/log/messages # 一般系统日志
/var/log/secure # 安全相关
/var/log/cron # 定时任务
查看 rsyslog 是否运行:
systemctl status rsyslog
如未启动:
systemctl start rsyslog
systemctl enable rsyslog
编辑:
vi /etc/rsyslog.conf
开启 UDP / TCP 接收(去掉注释):
# UDP
module(load="imudp")
input(type="imudp" port="514")
# TCP
module(load="imtcp")
input(type="imtcp" port="514")
systemctl restart rsyslog
firewall-cmd --add-port=514/udp --permanent
firewall-cmd --add-port=514/tcp --permanent
firewall-cmd --reload
远程设备配置发往该 CentOS 的 514 端口即可。
yum install rsyslog-mysql
mysql < /usr/share/doc/rsyslog-mysql-*/createDB.sql
module(load="ommysql")
*.* action(type="ommysql" server="localhost" db="Syslog" uid="rsyslog" pwd="password")
重启:
systemctl restart rsyslog
常见方式:
/var/log/messages示例(rsyslog 发往 logstash):
*.* @@logstash_ip:514
如果你是想把已有日志文件导入分析:
cat old_syslog.log >> /var/log/messages
或交给 logrotate / ELK 处理。
我可以给你精确配置文件。