本文转自:https://www.cnblogs.com/Sungeek/p/9792793.html
【1】下载安装 zabbix for windows agent
【1.1】下载
官方手册:Zabbix手册安装方法:https://www.zabbix.com/documentation/3.4/zh/manual/concepts/agent
下载链接:https://www.zabbix.com/downloads/3.4.6/zabbix_agent-3.4.6-windows-i386.zip
【1.2】zabbix for windows agent 介绍
Windows上的Zabbix agent是以Windows服务的形式运行的。
您可以在主机上运行Zabbix agent的单个实例或多个实例。
单个实例可以使用默认配置文件或命令行中指定的配置文件。
在多个实例的情况下,每个agent实例必须有自己独立的配置文件(其中一个实例可以使用默认配置文件)。
以下命令参数可以在Zabbix agent中使用:
参数 | 描述n |
---|---|
UNIX 和 Windows agent | |
-c --config <config-file> | 配置文件的绝对路径。 您可以使用此选项来制定配置文件,而不是使用默认文件。\\在UNIX中, 默认文件是/usr/local/etc/zabbix_agentd.conf 要么通过 compile-time 变量 --sysconfdir 或者 --prefix来设置 在Windows中,默认文件是 c:\zabbix_agentd.conf |
-p --print | 显示已知监控项并推出 Note: 为了同时返回用户参数user parameter 您必须制定配置文件 (如果不是在指定位置的话). |
-t --test <item key> | 测试指定监控项并退出。 Note:为了同时返回用户参数 user parameter 您必须制定配置文件 (如果不是在指定位置的话). |
-h --help | 显示帮助信息 |
-V --version | 显示版本号 |
仅UNIX agent | |
-R --runtime-control <option> | 执行管理功能。参见 运行时控制. runtime control. |
仅Windows agent | |
-m --multiple-agents | 使用多agent实例 (使用 -i,-d,-s,-x )。 T为了区分实例的服务名称,每项服务名都会包涵来自配置文件里的主机名值。 |
仅Windows agent (功能) | |
-i --install | 以服务的形式安装Zabbix Windows agent |
-d --uninstall | 卸载Zabbix indows agent服务 |
-s --start | 开始Zabbix Windows agent服务 |
-x --stop | 停止bbix Windows agent 服务 |
【1.3】解压压缩包、修改配置文件
(1)在C盘根目录创建一个文件夹名为 zabbix
(2)然后把压缩包弄过来、把压缩包内容解压到这个文件夹下
(3)修改配置文件,进入conf目录下有一个 zabbix_agentd.win.conf 配置文件
需要修改的配置选项: LogFile=C:\zabbix\zabbix_agentd.log ##这个是日志存放的地址 Server=192.168.239.131 ##这个是zabbix服务端的地址 ServerActive=192.168.239.131:10050 #这个IP表示,是哪个端去抓取数据,如果填服务端就等待服务器端拉取,如果填自己那就是自己根据间隔定时提交#10050是zabbix-server和zabbix-agent通信的默认端口 Hostname=192.168.239.1 ##这个填写需要监控的Windows服务器IP
【1.4】安装成windows服务
以管理员身份打开CMD,根据【1.2】中的信息,我们安装方法如下:
c:\zabbix\bin\win64\zabbix_agentd.exe -i -m -c c:\zabbix\conf\zabbix_agentd.win.conf
从提示上面来说,安装成功了。
然后就已经被安装成服务了,这里我们启动它
【1.5】如何监控windows性能指标?
zabbix自带的windows监控模板并没有监控windows cpu使用率的监控
打开后默认就一项CPU占用的监控,下面以添加硬盘空闲时间做示例
1:监控图形上面右键 添加计数器
2:然后找到项 选择Processor,点击添加性能计数器%Processor Time,不知道项目的含义可以点击左下角的 显示描述
然后打开Zabbix 配置主机页面,添加监控项
键值填入perf_counter[\Processor(_Total)\% Processor Time]
perf_counter["\PhysicalDisk(_Total)\% Idle Time"]
这一步是重点,如果想添加其他的监控只需要替换中括号双引号内的字符串就行
比如我想监控用户CPU占用率,只需要把\PhysicalDisk(_Total)\% Idle Time 替换成\Processor(_Total)\% User Time 即可:perf_counter["\Processor(_Total)\% User Time"]
下面2、中会具体说明如何操作。
2、监控Windows-CPU使用率
创建完监控项以后新建触发器,可以在表达式构造器测试这个触发器是否有用
名称:cpu used is more than 80%
严重性:一般严重
表达式:{Template Windows CPU usage:perf_counter[\Processor(_Total)\% Processor Time].avg(5m)}>80
创建完触发器再添加一个图形查看cpu使用率图表
这里可以点击添加按钮,有图形化界面的。
间隔,指的是每隔多久取一次嘛
意思是 每3秒采集一次值,如果5次都大于80%,就响应触发器
名称:CPU使用率
监控项:Template Windows CPU usage: CPU使用率
添加成功以后可以查看CPU图形表了,有数据代表成功监控了!
3、监控Windows-磁盘IO性能监控
WIN下的IO性能监控,是通过调用性能计数器中的参数来获取
目前已经统计成模板,可直接使用,模板包括了图形和上图所示的监控项
4、监控Windows-磁盘触发器阈值更改
选择配置--->模板--->(Template OS Linux/Template OS Windows)
我这边是监控Windows所以修改Windows的模板,如果是监控Linux可以修改Linux的模板
默认是1小时更新一次,修改成600秒,就是10分钟更新一次,10分钟后就能看到网卡和磁盘的监控值了!
选择配置--->模板--->(Template OS Linux/Template OS Windows)--->Mounted filesystem discovery--->触发器类型
我这边是已经修改好的了,没有修改的或者没有这一触发项的,可以点击右上角(创建触发器原型)
名称:Free disk space is less than 50GB on volume {#FSNAME}
表达式:{Template OS Windows:vfs.fs.size[{#FSNAME},free].last(0)}<50000000000
选择配置--->模板--->(Template OS Linux/Template OS Windows)--->Mounted filesystem discovery--->监控项类型
我这边是已经修改好的了,没有修改的或者没有这一监控项的,可以点击右上角(创建监控项原型)
名称:Free disk space on $1
表达式:vfs.fs.size[{#FSNAME},free]
单位:B
更新间隔:1m或者60s都可以
5、监控Windows-网卡自动发现规则
问题描述:这个一般是默认的windows模板里面包含自动发现服务器网卡的,但是会自动发现很多其他的网卡什么之类的图形东东
解决办法:你直接删除对应的图形是没用的,因为自动发现规则会再次自动发现,所以需要把规则改一下
1.自动发现规则里面---->Windows service discovery(这个可以禁用掉)
2.管理--->一般--->正则表达式--->Network interfaces for discovery(加入下图的参数,这样就设定不会自动发现以这些参数网卡了)
1 » Microsoft [结果为假] 2 » Teredo [结果为假] 3 » Qos [结果为假] 4 » WFP [结果为假] 5 » RAS [结果为假] 6 » WAN [结果为假] 7 » ^Nu[0-9.]*$ [结果为假] 8 » ^[Ss]ystem$ [结果为假] 9 » ^[Ll]o[0-9.]*$ [结果为假] 10 » ^NULL[0-9.]*$ [结果为假] 11 » ^(In)?[Ll]oop[Bb]ack[0-9._]*$ [结果为假] 12 » ^Software Loopback Interface [结果为假] 13 » Network traffic on Broadcom NetXtreme Gigabit Ethernet [结果为假]
6、监控Windows事件日志
模板名称:Template Windows Event Log
监控项:
应用程序日志MSExchangeTransport
eventlog[Application,,,"MSExchangeTransport",^15004$,,skip]
触发器:
应用程序日志60S不出现则恢复
{Template Windows Event Log:eventlog[Application,,,"MSExchangeTransport",^15004$,,skip].nodata(60)}=0
触发器:
出现系统错误日记
{Template Windows Event Log:eventlog[System,,"Error",,[^],,skip].logeventid(36882)}<>0 and {Template Windows Event Log:eventlog[System,,"Error",,[^],,skip].logeventid(36888)}<>0 and {Template Windows Event Log:eventlog[System,,"Error",,[^],,skip].logeventid(36887)}<>0 and {Template Windows Event Log:eventlog[System,,"Error",,[^],,skip].logeventid(36874)}<>0
触发器:
所有系统错误日记
{Template Windows Event Log:eventlog[System,,"Error",,[^],,skip].nodata(60)}=0
7、配置服务端邮件报警功能
我这边用到的是常用的QQ个人邮箱(要是腾讯企业邮箱的话,可以直接用账户密码去填写下面的用户名称和密码)
如下图所示,管理--->报警媒介类型--->Email
名称:随便起
SMTP服务器:smtp.exmail.qq.com
端口:25(腾讯企业版邮箱用465)
SMTP电邮:XXXX@qq.com
用户名称:XXXX@qq.com,这里的用户名称是你的发件人用户,密码的话要使用IMAP/SMTP的授权码当做密码,而不是QQ密码。
QQ授权码获取具体见(https://jingyan.baidu.com/article/3ea51489a135f752e71bba5b.html)文中的【1】【2】步骤。
配置--->动作--->触发器
创建一个触发器来发邮件报警
操作:
默认标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
消息内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{ENET.ID}
恢复操作:
默认标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
消息内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{ENET.ID}
确认操作:
默认标题:已确认: {TRIGGER.NAME}
消息内容:
{USER.FULLNAME} 已经确认的问题 {ACK.DATE} {ACK.TIME} 以下消息:
{ACK.MESSAGE}
目前的问题状态是{EVENT.STATUS}
最后配置报警媒介,也就是触发报警条件,要下发邮件通知道哪个邮箱里面
点击那个小头像,然后进入到用户基本资料,选择报警媒介进行设置
可以自己选择严重性级别,设置完启用了以后,报警功能就设置完成了!
参考文档