CentOS Syslog与监控系统对接主要有以下两种常见方式:
一、通过ELK Stack对接(推荐方案)
-
安装ELK组件
- 在监控端安装Elasticsearch、Logstash、Kibana(可通过Docker一键部署)。
- 客户端安装rsyslog(CentOS默认已安装)。
-
配置rsyslog发送日志
- 编辑
/etc/rsyslog.conf,启用UDP/TCP模块并指定远程服务器IP和端口(如*.* @192.168.1.100:514)。 - 重启rsyslog服务:
systemctl restart rsyslog。
- 编辑
-
配置Logstash解析日志
- 在Logstash中添加syslog输入插件,配置过滤规则(如提取主机名、日志级别)。
- 将处理后的日志输出到Elasticsearch,例如:
input { syslog { port => 514 } } output { elasticsearch { hosts => ["localhost:9200"] } }
-
在Kibana中可视化与告警
- 创建索引模式,查看实时日志。
- 使用Kibana的Watcher功能设置告警规则(如匹配“ERROR”关键字时发送邮件)。
二、通过Prometheus+Alertmanager对接
-
安装Prometheus与Alertmanager
- 在监控端部署Prometheus和Alertmanager。
-
配置Node Exporter采集Syslog
- 在客户端安装Node Exporter,通过
--collector.syslog参数启用Syslog采集。 - 在Prometheus配置中添加Syslog抓取任务:
scrape_configs: - job_name: 'syslog' static_configs: - targets: ['<客户端IP>:<端口>']
- 在客户端安装Node Exporter,通过
-
定义告警规则
- 在Prometheus中创建规则文件(如
syslog_rules.yml),监控特定日志模式(如错误日志频率超过阈值)。 - 配置Alertmanager发送通知(支持邮件、Slack等)。
- 在Prometheus中创建规则文件(如
关键注意事项
- 协议选择:优先使用TCP或TLS加密传输,避免UDP丢包。
- 防火墙:确保监控端开放对应端口(UDP 514/TCP 514)。
- 日志轮转:通过
logrotate工具避免日志文件过大。
以上方案可根据实际需求选择,ELK适合复杂日志分析,Prometheus适合实时监控与告警。