温馨提示×

Ubuntu Strings如何监控系统状态

小樊
43
2025-12-23 18:14:31
栏目: 智能运维

澄清与定位 如果你指的是 Linux 的 strings 命令,它是用来从二进制文件中提取可打印字符串的工具,并非系统监控程序;在 Ubuntu 上做系统状态监控应使用专门的监控命令或平台。若你确实想“用字符串匹配做监控”,常见做法是结合日志关键字进行告警(见下文“字符串关键字监控”与“进程字符串监控”)。

快速可用的监控方案

  • 命令行即时查看
    • 资源总览:tophtop(交互更友好)、vmstatiostat(需安装 sysstat:sudo apt install sysstat)、nmonfree -hdf -h
    • 专项工具:iotop(按进程看磁盘 I/O)、atop(综合资源与历史)、glances(跨平台,支持客户端/服务器模式远程监控)。
  • 图形化与 Web
    • 桌面:GNOME 系统监视器(系统自带)。
    • Web/综合:Glances(可浏览器访问)、Prometheus + Grafana(指标采集与可视化)、Zabbix(企业级监控平台)。

用字符串关键字做监控

  • 日志关键字告警(Shell + mail)

    • 思路:在系统日志中匹配关键字(如 error、warning、critical),发现即发邮件;配合 cron 定时执行。
    • 示例(检查昨天的 /var/log/messages,适配不同发行版可将日志路径换为 /var/log/syslog):
      • 保存为 /opt/scripts/os-log-alert.sh
        • #!/bin/bash prev_count=0

          注意:部分系统日志为 /var/log/syslog

          logfile=“/var/log/messages” count=$(grep -i “$(date --date=‘yesterday’ ‘+%b %e’)” “$logfile” | egrep -wi ‘warning|error|critical’ | wc -l) if [ “$prev_count” -lt “$count” ]; then SUBJECT=“WARNING: Errors found in log on $(date --date=‘yesterday’ ‘+%b %e’)” MESSAGE=“/tmp/logs.txt” TO=“admin@example.com” echo “ATTENTION: Errors are found in $logfile. Please check.” > “$MESSAGE” echo “Hostname: $(hostname)” >> “$MESSAGE” echo “----------------------------------------” >> “$MESSAGE” grep -i “$(date --date=‘yesterday’ ‘+%b %e’)” “$logfile” | awk ‘{$3=“”;print}’ | egrep -wi ‘warning|error|critical’ >> “$MESSAGE” mail -s “$SUBJECT” “$TO” < “$MESSAGE” rm -f “$MESSAGE” fi
      • 赋权并加入定时任务(每天 07:00 运行):
        • chmod +x /opt/scripts/os-log-alert.sh
        • crontab -e → 0 7 * * * /bin/bash /opt/scripts/os-log-alert.sh
    • 说明:邮件发送依赖本地 mail 命令配置;若失败可改为写入日志或接入企业告警通道。
  • 进程“字符串”监控(按进程名/命令行特征)

    • 思路:用 ps -ef | grep “[p]attern” 精确匹配进程,不存在则告警或重启。
    • 示例(检测 nginx 是否在运行):
      • #!/bin/bash if ! ps -ef | grep -q “[n]ginx”; then echo “Nginx 未运行,尝试启动…” systemctl start nginx || echo “启动失败” fi
    • 可扩展为阈值判断、自动重启、写入告警日志等。

进阶与自动化

  • 集中化监控与可视化
    • 小规模:用 Glances-s 启动服务器模式,在其他机器用 glances -c 连接,统一查看多台主机状态。
    • 中大规模:部署 Prometheus 采集指标,Grafana 做面板展示与告警规则配置,形成统一监控平台。

0