如何使用 Zabbix 监控 Shell 脚本的 CPU 和内存
1. 创建自定义监控脚本
创建监控脚本
文件路径: /etc/zabbix/scripts/process_monitor.sh
#!/bin/bash
# 文件路径: /etc/zabbix/scripts/process_monitor.sh
# 功能: 监控指定进程的CPU和内存使用情况
PROCESS_NAME="$1"
METRIC="$2" # cpu, mem, pid
if [ -z "$PROCESS_NAME" ] || [ -z "$METRIC" ]; then
echo "Usage: $0 <process_name> <cpu|mem|pid>"
exit 1
fi
# 获取进程信息
get_process_info() {
local name="$1"
local metric="$2"
case "$metric" in
"cpu")
# 获取CPU使用率
ps -eo comm,%cpu --no-headers | grep "^$name" | awk '{sum += $2} END {print sum+0}'
;;
"mem")
# 获取内存使用率
ps -eo comm,%mem --no-headers | grep "^$name" | awk '{sum += $2} END {print sum+0}'
;;
"pid")
# 获取进程PID列表
pgrep -f "$name" | tr '\n' ',' | sed 's/,$//'
;;
*)
echo "Unknown metric: $metric"
exit 1
;;
esac
}
get_process_info "$PROCESS_NAME" "$METRIC"
设置脚本权限
sudo chmod +x /etc/zabbix/scripts/process_monitor.sh
sudo chown zabbix:zabbix /etc/zabbix/scripts/process_monitor.sh
2. 配置 Zabbix Agent
编辑 Zabbix Agent 配置文件
# 编辑 /etc/zabbix/zabbix_agentd.conf 或 /etc/zabbix/zabbix_agentd.d/userparameter_process.conf
vim /etc/zabbix/zabbix_agentd.d/system.conf
添加自定义监控项
# 监控指定进程的CPU使用率
UserParameter=process.cpu[*],/etc/zabbix/scripts/process_monitor.sh "$1" cpu
# 监控指定进程的内存使用率
UserParameter=process.mem[*],/etc/zabbix/scripts/process_monitor.sh "$1" mem
# 获取指定进程的PID
UserParameter=process.pid[*],/etc/zabbix/scripts/process_monitor.sh "$1" pid
# 监控特定脚本的详细信息
UserParameter=script.cpu[*],ps -eo args,%cpu --no-headers | grep "$1" | grep -v grep | awk '{sum += $NF} END {print sum+0}'
UserParameter=script.mem[*],ps -eo args,%mem --no-headers | grep "$1" | grep -v grep | awk '{sum += $NF} END {print sum+0}'
3. 重启 Zabbix Agent
systemctl restart zabbix-agent.service
4. 在 Zabbix Web 界面创建监控项
创建监控项步骤:
进入 Zabbix Web 界面
选择主机 → 配置 → 监控项
点击"创建监控项"
示例监控项配置:
监控 CPU 使用率:
名称: Script MyScript CPU Usage
键值: process.cpu[my_script.sh]
类型: Zabbix agent
信息类型: Numeric (float)
单位: %
更新间隔: 30s
没有搞完。。。。。。。。。。。。。
欢迎来撩 : 汇总all