监控Ubuntu Trigger状态的常用方法
Ubuntu的systemd是默认服务管理工具,适用于监控通过systemd管理的Trigger(如服务启动/停止触发的动作)。通过以下命令可查看服务状态及日志:
sudo systemctl status <service_name>(如sudo systemctl status nginx),输出包含服务加载状态(LOAD)、激活状态(ACTIVE)、详细状态(SUB,如running/exited/failed)及最近日志片段。journalctl -u <service_name> -f(如journalctl -u nginx -f),实时显示服务的日志输出,便于捕捉Trigger触发时的状态变化。systemctl list-unit-files --type=service可查看所有已注册的服务(包括启用/禁用状态),systemctl list-units --type=service --state=running可筛选出当前运行的服务。对于文件系统或进程级别的Trigger(如文件创建、进程启动),可通过以下命令实时监控:
tail -f /var/log/syslog(或/var/log/auth.log等特定日志),当Trigger触发时(如系统认证事件),日志会实时输出到终端。inotifywait -m /path/to/directory(需安装inotify-tools),监控指定目录的创建、修改、删除等事件(如inotifywait -m /tmp),适用于文件触发型任务。top(实时显示进程CPU/内存占用,按M排序内存占用)、htop(增强版top,支持树状视图,需安装sudo apt install htop),可快速识别触发Trigger的进程。对于周期性Trigger(如每天凌晨备份),可通过cron定时执行检查脚本,并将结果记录到日志文件:
crontab -e,添加定时任务(如0 2 * * * /path/to/check_trigger.sh >> /var/log/trigger_check.log 2>&1),表示每天凌晨2点执行check_trigger.sh脚本,并将输出追加到/var/log/trigger_check.log。check_trigger.sh可包含检查命令(如systemctl is-active nginx判断服务是否运行,ls /path/to/output检查文件是否生成),通过返回值($?)判断Trigger是否成功。对于复杂环境(如多台服务器、需要可视化报警),可使用以下工具:
node_exporter(收集系统指标)和mysqld_exporter(收集MySQL指标)等插件,可实现全面的监控。