CentOS Syslog如何与监控系统对接

CentOS Syslog与监控系统对接主要有以下两种常见方式:

一、通过ELK Stack对接(推荐方案)

  1. 安装ELK组件

    • 在监控端安装Elasticsearch、Logstash、Kibana(可通过Docker一键部署)。
    • 客户端安装rsyslog(CentOS默认已安装)。
  2. 配置rsyslog发送日志

    • 编辑/etc/rsyslog.conf,启用UDP/TCP模块并指定远程服务器IP和端口(如*.* @192.168.1.100:514)。
    • 重启rsyslog服务:systemctl restart rsyslog
  3. 配置Logstash解析日志

    • 在Logstash中添加syslog输入插件,配置过滤规则(如提取主机名、日志级别)。
    • 将处理后的日志输出到Elasticsearch,例如:
      input { syslog { port => 514 } }
      output { elasticsearch { hosts => ["localhost:9200"] } }
      
  4. 在Kibana中可视化与告警

    • 创建索引模式,查看实时日志。
    • 使用Kibana的Watcher功能设置告警规则(如匹配“ERROR”关键字时发送邮件)。

二、通过Prometheus+Alertmanager对接

  1. 安装Prometheus与Alertmanager

    • 在监控端部署Prometheus和Alertmanager。
  2. 配置Node Exporter采集Syslog

    • 在客户端安装Node Exporter,通过--collector.syslog参数启用Syslog采集。
    • 在Prometheus配置中添加Syslog抓取任务:
      scrape_configs:
        - job_name: 'syslog'
          static_configs:
            - targets: ['<客户端IP>:<端口>']
      
  3. 定义告警规则

    • 在Prometheus中创建规则文件(如syslog_rules.yml),监控特定日志模式(如错误日志频率超过阈值)。
    • 配置Alertmanager发送通知(支持邮件、Slack等)。

关键注意事项

  • 协议选择:优先使用TCP或TLS加密传输,避免UDP丢包。
  • 防火墙:确保监控端开放对应端口(UDP 514/TCP 514)。
  • 日志轮转:通过logrotate工具避免日志文件过大。

以上方案可根据实际需求选择,ELK适合复杂日志分析,Prometheus适合实时监控与告警。