首页主机资讯Linux Trigger:系统监控秘籍

Linux Trigger:系统监控秘籍

时间2025-12-19 18:27:04发布访客分类主机资讯浏览1188
导读:Linux Trigger 系统监控秘籍 一 概念与适用场景 在 Linux 运维中,Trigger通常指两类机制: 事件触发:由文件系统变更、日志关键字、定时任务等引发的动作(如执行脚本、重启服务)。 监控平台的触发器:如 Zabbi...

Linux Trigger 系统监控秘籍

一 概念与适用场景

  • 在 Linux 运维中,Trigger通常指两类机制:
    • 事件触发:由文件系统变更日志关键字定时任务等引发的动作(如执行脚本、重启服务)。
    • 监控平台的触发器:如 Zabbix 的触发器表达式,用于当指标超过阈值时产生告警并抑制抖动。
  • 典型场景包括:配置变更审计、日志告警、服务自愈、容量阈值告警、批处理作业结果校验等。

二 事件触发与即时响应

  • 文件系统事件触发:使用 inotifywait 监听目录的创建、修改、删除等事件,适合配置热加载、文件投递、上传目录监控等。
    • 示例:inotifywait -m -r -e create -e modify -e delete /path | while read event file; do echo “事件:$event 文件:$file”; done
  • 日志关键字触发:用 tail -f 实时跟踪日志,配合 grep/awk 对关键字(如 ERROR、OutOfMemory)触发动作或上报。
    • 示例:tail -f /var/log/syslog | awk ‘/ERROR/ { system(“curl -X POST …告警…”)} ’
  • 定时任务触发:用 cron 周期性执行检查脚本,将结果写入日志并配合日志轮转与告警。
    • 建议:将脚本输出重定向到专用日志,并在 /etc/logrotate.d/ 中配置轮转策略。
  • systemd 服务与路径触发:通过 Path 单元对目录/文件变化自动启动服务,或用 OnCalendar 做定时触发,适合轻量自愈与守护。
    • 要点:Path 单元需定义 DirectoryNotEmpty= 或 ExecStart= 的目标服务;OnCalendar 支持日历表达式(如 “--* 02:00:00”)。
  • 一次性任务触发:用 at 安排延迟任务,并用 atq/at -c 查看与控制队列,适合临时维护窗口任务。

三 监控平台触发器 Zabbix 实战

  • 采集与模式:
    • 使用 Zabbix Agent 采集系统指标;在中小规模可多用被动模式,中大型建议多用主动模式以降低 Server 压力。
    • 主动模式受被监控端时间影响,含 nodata() 的触发器可能产生误告警,需统一 NTP 时间。
  • 频率与模板优化:
    • 性能指标(CPU/内存/磁盘)建议 1 次/分钟;信息类(主机名、版本)1 次/小时;自动发现规则 1 次/小时;容量类(总内存/总磁盘)1 次/小时
    • 关闭无用触发器,减少噪音。
  • 触发器表达式与抑制:
    • 抖动抑制:例如 CPU iowait 连续 5 分钟均大于 20% 才告警:{ Template OS Linux:system.cpu.util[,iowait].min(5m)} > 20
    • 宏变量:将阈值抽象为宏(如 { $CPUIOWAIT} ),便于按主机差异化;主机宏优先级高于模板宏。
    • LLD 宏:对自动发现的文件系统设置按实例阈值,例如:
      • { host:vfs.fs.size[{ #FSNAME} ,pfree].last()} < { $LOW_SPACE_LIMIT:“{ #FSNAME} ”} ,再为主机设置 { $LOW_SPACE_LIMIT:“/opt”} =95 覆盖个别目录。
  • 告警通道:可对接 Email/SMS/企业微信/钉钉/Webhook,结合依赖与升级策略避免告警风暴。

四 常用工具与命令速查

  • 实时与交互:
    • htop(增强版 top,支持按键筛选/杀进程)、iotop(按进程显示磁盘 I/O)、iostat(系统级 I/O)、nmon(CPU/内存/磁盘/网络综合)、IPTraf(轻量网络流量统计)。
  • 进程与资源:
    • top/vmstat(CPU/内存/上下文切换)、ps/pidstat(进程维度)、lsof(打开文件/网络连接)。
  • 日志与审计:
    • tail -f /var/log/syslogjournalctl -f -u (实时查看服务日志)、必要时启用 cron 日志记录以便审计定时任务执行情况。
  • 综合与告警:
    • Glances(终端/Web 综合面板)、Monit(进程/文件/端口监控与自动拉起)、Sysstat(sar/iostat/mpstat 等采集工具)。
    • 平台类:Zabbix(监控/告警/可视化)、Prometheus + Alertmanager + Grafana(时序数据/告警/仪表盘)。

五 可复制的最小实践模板

  • 模板一 文件投递即触发脚本
    • 场景:/data/incoming 目录有新文件即处理并归档。
    • 实现:
      • inotifywait -m -e create -e moved_to /data/incoming | while read -r dir event file; do ts=$(date +%F_%T) mv “$dir/$file” “/data/processing/${ ts} $file" nohup /usr/local/bin/handle.sh "/data/processing/${ ts} $file” > > /var/log/handle.log 2> & 1 & done
      • 建议:为脚本加锁(flock)、幂等处理、失败重试与告警。
  • 模板二 Zabbix 触发器表达式模板
    • 根分区可用空间低于阈值(按主机宏差异化):
      • { host:vfs.fs.size[/,pfree].last()} < { $DISK_PFREE:“/”} }
      • 主机宏示例:{ $DISK_PFREE:“/”} =15(表示低于 15% 告警)
    • CPU iowait 持续偏高:
      • { host:system.cpu.util[,iowait].avg(5m)} > { $CPU_IOWAIT}
      • 主机宏示例:{ $CPU_IOWAIT} =20(表示 20%
  • 模板三 Shell 阈值告警骨架
    • 要点:阈值可放配置文件;采集与判断分离;告警带时间戳与主机标识;避免频繁重复告警(间隔冷却)。
    • 示例骨架:
      • CPU:top -bn1 | awk ‘/Cpu(s)/{ print 100 - $8} ’;若超过阈值则 echo “ALERT $(date) CPU $cpu%”
      • 内存:free | awk ‘/Mem/{ printf(“%.0f”,$3/$2*100)} ’;超过阈值则告警
      • 磁盘:df / | awk ‘NR==2{ gsub(/%/,“”,$5); print $5} ’;超过阈值则告警
      • 可扩展:加入 iostat 的 %iowait、网络流量、服务端口探测等,并接入邮件/企业微信/钉钉 Webhook。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux Trigger:系统监控秘籍
本文地址: https://pptw.com/jishu/776491.html
Linux Trigger:安全防护策略 Linux Trigger:高级技巧大揭秘

游客 回复需填写必要信息