一、参考
参考另一篇博文配置Windows代理程序
Zabbix5系列-监控Windows主机 (三)
二、监控CPU温度
2.1 由于Windows无法直接读取温度信息,所以用C#写了个脚本调用OpenHardwareMonitor库来进行温度读取
编译好的程序:CPU温度读取程序
源代码:
using Newtonsoft.Json.Linq;
using OpenHardwareMonitor.Hardware;
using System;
namespace cpu_temp
{class Program{static void Main(string[] args){JArray result = new JArray();Computer computer = new Computer();computer.CPUEnabled = true;computer.Open();// 遍历所有硬件for (int i = 0; i < computer.Hardware.Length; i++){// 如果发现CPUif (computer.Hardware[i].HardwareType == HardwareType.CPU){JObject cpu = new JObject();// 遍历传感器for (int j = 0; j < computer.Hardware[i].Sensors.Length; j++){// 如果发现温度if (computer.Hardware[i].Sensors[j].SensorType == SensorType.Temperature){cpu.Add(computer.Hardware[i].Sensors[j].Name, computer.Hardware[i].Sensors[j].Value.ToString());}}result.Add(cpu);}}computer.Close();Console.Write(result.ToString());}}
}
2.2 复制程序至agent2安装目录
2.3 打开命令提示符执行"C:\Program Files\Zabbix Agent 2\cpu_temp.exe"测试读取
2.4 打开zabbix_agent2.conf配置文件增加用户自定义参数
参考:用户自定义参数
自定义参数:
UserParameter=cpu.temp,"C:\Program Files\Zabbix Agent 2\cpu_temp.exe"
2.5 打开命令提示符重启服务
sc stop "Zabbix Agent 2"
sc start "Zabbix Agent 2"
2.6 进入主机监控项页创建监控项
类型选择Zabbix客户端
键值填写之前配置文件内设置的cpu.temp
信息类型选择文本型
2.7 点击测试按钮后点击Get value and test获取测试值成功
读取到JSON值:
[{"CPU Core #1": "50","CPU Core #2": "48","CPU Package": "50"}
]
2.8 点击添加按钮创建监控项
2.9 再新建一个监控项
类型:相关项目
键值:自己设定一个不冲突的
主要项:选择之前创建的CPU温度
信息类型:选择浮点型
单位:设置为℃
2.10 切换到进程页
点击添加按钮 添加进程
名称选择JSONPath
参数根据之前读取到的JSON选择路径 $[0][“CPU Package”]
勾选Custom on fail
设置错误处理为 Set value to 设置值为-100
2.11 参考5.9-5.10步骤创建各个内核的温度监控项
2.12 切换到最新数据页 查看是否正常读取数据
2.13 创建相关触发器和图形