18. 日志分析与监控
本章节指导在 RHEL 9(主机名 LinuxDC)上使用 SecureCRT 进行日志分析和监控配置,配合 SecureFX 传输日志文件。内容涵盖日志分析与告警(rsyslog, logwatch)、监控工具(Zabbix, Prometheus/Grafana)和 SIEM 集成,以 sshd 日志(端口 2222,参考第 9 章)为例,全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 LinuxDC 环境中测试,确保实验一致性。
18.1 前提条件
- RHEL 9 已安装(参考第 1 章),主机名设置为
LinuxDC。 - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 9 章)。
- 使用 SecureFX 传输文件(SFTP 协议)。
- 具有 root 或 sudo 权限。
- 系统已订阅并启用 RHEL 和 EPEL 仓库(参考第 2 和第 5 章)。
sshd服务已配置(参考第 9 章)。- 防火墙和 SELinux 启用(参考第 12 章)。
💡 提示:日志监控是系统运维的核心,确保实时性和告警响应。在 RHEL 10 中,日志工具如 journald 支持更多集成 AI 辅助的异常检测,提升自动化分析效率。
18.2 日志分析与告警
18.2.1 配置 rsyslog
-
安装 rsyslog(默认包含):
dnf install -y rsyslog # 若缺失 -
配置远程日志发送:
vim /etc/rsyslog.conf # 添加: *.* @192.168.1.200:514 # 发送所有日志到远程服务器(UDP) # 或使用 TCP: *.* @@192.168.1.200:514 -
重启服务:
systemctl restart rsyslog
🧠 知识点:rsyslog 支持过滤(如
auth.* /var/log/auth.log)。测试:logger "Test log entry"。
18.2.2 配置 logwatch
-
安装 logwatch:
dnf install -y logwatch -
配置每日报告(示例:sshd 日志):
vim /etc/cron.daily/0logwatch # 修改: /usr/sbin/logwatch --detail Low --mailto admin@example.com --service sshd --range yesterday
💡 提示:logwatch 生成摘要报告。手动运行:
logwatch --detail High --service sshd --range yesterday。
18.3 监控工具
18.3.1 配置 Zabbix
-
安装 Zabbix 代理:
dnf install -y zabbix-agent2 vim /etc/zabbix/zabbix_agent2.conf # 修改: Server=192.168.1.200 # Zabbix 服务器 IP Hostname=LinuxDC systemctl enable --now zabbix-agent2 -
测试监控项:
zabbix_get -s 127.0.0.1 -k system.cpu.load[all,avg1] # 检查 CPU 负载
🧠 知识点:Zabbix 支持代理模式和自定义项。防火墙:
firewall-cmd --add-port=10050/tcp。
18.3.2 配置 Prometheus 和 Grafana
-
安装 node-exporter(Prometheus):
dnf install -y prometheus-node-exporter systemctl enable --now node-exporter -
安装 Grafana:
dnf install -y grafana systemctl enable --now grafana-server -
配置防火墙:
firewall-cmd --permanent --add-port=9100/tcp # node-exporter firewall-cmd --permanent --add-port=3000/tcp # Grafana firewall-cmd --reload
💡 提示:访问 Grafana(http://localhost:3000),添加 Prometheus 数据源(localhost:9090)。在 RHEL 10 中,Prometheus 支持更多内置指标,如容器化监控增强。
18.3.3 SIEM 集成(示例:ELK 栈)
- 安装 Filebeat(ELK 代理):
dnf install -y filebeat vim /etc/filebeat/filebeat.yml # 配置输出到 Logstash 或 Elasticsearch filebeat.inputs: - type: log paths: - /var/log/secure output.logstash: hosts: ["192.168.1.200:5044"] systemctl enable --now filebeat
🧠 知识点:SIEM 用于集中日志分析。测试:
filebeat test config。
18.4 常见问题与排查
🔍 故障排查:
-
问题 1:日志未发送
解决:检查 rsyslog 配置(rsyslogd -N1验证语法)、防火墙(firewall-cmd --list-ports)、远程服务器。 -
问题 2:logwatch 无邮件
解决:配置邮件(dnf install -y postfix),检查 cron(journalctl -u crond)。 -
问题 3:Zabbix 无数据
解决:检查代理状态(systemctl status zabbix-agent2)、配置(zabbix_agent2 -t system.cpu.load)。 -
问题 4:Prometheus 无指标
解决:验证端口(curl http://localhost:9100/metrics)、防火墙(firewall-cmd --list-ports)。
18.5 实践任务
- 使用 SecureCRT 通过 SSH(端口 2222)登录
LinuxDC,配置rsyslog发送日志到远程服务器(192.168.1.200:514)。 - 配置
logwatch发送sshd日志报告并验证邮件。 - 安装 Zabbix 并检查 CPU 负载监控。
- 部署 Prometheus 和 Grafana,验证端口访问。
✅ 检查点:日志发送成功,报告生成,监控数据正常。
18.6 自测问题
-
问题 1:如何查看最近 1 小时的
sshd日志?
答案:journalctl -u sshd --since "1 hour ago" -
问题 2:如何配置
rsyslog发送日志到远程服务器?
答案:编辑/etc/rsyslog.conf,添加*.* @192.168.1.200:514,然后systemctl restart rsyslog。 -
问题 3:如何检查 Zabbix 监控数据?
答案:zabbix_get -s 127.0.0.1 -k system.cpu.load[all,avg1]
🧾 总结:
本章完整介绍了 RHEL 9 日志分析与监控的配置,包括 rsyslog、logwatch、Zabbix 和 Prometheus/Grafana 的使用。这些技能提升系统可见性与响应能力,为后续硬盘监控与业务应用集成提供监控基础。