说明
本SOP用于说明在Zabbix中如何添加性能计数器,对应key
为perf_counter
。
为避免歧义,相关操作及网页均以英文版本为主。如需一一对应,请修改Zabbix用户设置语言为英文。
准备
- 在Zabbix中,右上角
Profile/Language
修改为English(en_US)
,点击Update
更新。 - 准备一台和目标监控机器相同配置的主机,用于进行测试,我们称作测试主机。
- 读者需要有Zabbix操作的基本知识。
流程
添加性能计数器需要以下步骤:
- 明确需要添加的计数器:WIndows中有数以千计的计数器,我们需要提前知道计数器在哪个类目下,解决这个问题的办法就是Google。网上的计数器位置不一定准确,仅供进行计数器位置的参考。
- 确定计数器地址:在Windows中定位具体的计数器;
- 测试计数器:即确认Zabbix可以采集到该计数器数据;
- 添加计数器项目:在Zabbix模板中添加该计数器;
- 验证测试:数据正常展示,表示添加成功。
因Zabbix中,添加计数器的目的为检测某一类对象状态,因此,只建议添加到模板中,不建议添加到主机中。
明确需要添加的计数器
- 明确我们具体监控什么对象,比如IIS、比如SQL等;
- 明确需要解决什么问题,比如性能问题、比如访问问题等;
- 结合上述问题的答案,我们结合搜索引擎,搜索
答案 性能计数器
(中文或者英文,推荐后者),如iis连接数 性能计数器
或iis connections perfmon
; - 根据结果网页内容(推荐stack exchange相关网站结果)综合分析,确定具体要添加的计数器信息。
确定计数器地址
- 登录测试主机,打开
开始菜单/管理工具/性能监视器
; - 点击左侧树状栏目中的
性能/监视工具/性能监视器
,此时可以看到正在检测的计数器数据; - 在右侧图表上点击鼠标右键,选择
添加计数器(D)
; - 在弹出的
添加计数器
窗口中,设置从计算机选择计数器
为本地计算机
; - 根据前一步骤明确的计数器大体位置,在下面的窗口中寻找,首先根据二级结构找到计数器,然后在
选定对象的实例
中选择含有Total
字样的对象; - 点击
添加
按钮进行添加; - 一般建议,将所有需要添加的计数器都找到后,再点击
确定
按钮; - 在图表上方的工具栏中,找到
复制属性
按钮,复制属性并粘贴到文本工具中; - 搜索
Path
关键字,提取其中的Value
即可,比如我这里找到的第11个是<PARAM NAME="Counter00012.Path" VALUE="\Web Service Cache\Kernel: URI Cache Hits %"/>
,其中的VALUE
就是"\Web Service Cache\Kernel: URI Cache Hits %"
,这就是我们要找的内容; - 按照这种方式,提取所有计数器地址待用。
测试计数器
cd /usr/local/zabbixagent/bin
./zabbix_get -s x.x.x.x -k perf_counter["\Web Service Cache\Kernel: URI Cache Hits %"]
17.751073
# 这里表示采集正常。
./zabbix_get -s x.x.x.x -k perf_counter["\Web Service Cache\Kernel: URI Cache Hits %1"]
ZBX_NOTSUPPORTED
# 这里通常是没有该计数器,确认下计数器路径。
./zabbix_get -s x.x.x.x -k perf_counter[\Web Service Cache\Kernel: URI Cache Hits %]
-bash: syntax error near unexpected token `('
# 这里是没有加引号的原因,-k参数最好用单引号包起来,如下所示:
./zabbix_get -s x.x.x.x -k 'perf_counter[\Web Service Cache\Kernel: URI Cache Hits %]'
./zabbix_get -s x.x.x.x -k 'perf_counter["\Web Service(_Total)\Total Method Requests/sec"]'
添加计数器项目
- 建立模板,或者找到具体某个模板,我这里新建了
IIS
模板并保存; - 点击模板
IIS
中的Items
链接,进入项目配置的界面; - 点击右上角的
Create Item
按钮,创建新的项目; - 在项目界面中,设置
Name
为Web Service Cache\Kernel: URI Cache Hits %
(这里复制下Name
的名称),选择Type
为Zabbix agent
(通常是默认选项),Key
设置为perf_counter[]
,其中[]
中填入我们在前一步找到的计数器地址"\Web Service Cache\Kernel: URI Cache Hits %"
,修改Applications
为IIS
,其他的可以保持默认,也可以根据自己的需求进行调整。 - 点击
Add
按钮添加项目。 - 添加计数器项目后,会跳转至模板项目列表,检查添加成功即可。
验证
- 将该
IIS
模板应用到某一台主机A:点击模板IIS
的链接,进入基本信息界面,在Hosts / templates
中加入该主机A; - 在右上角
Search
中输入主机A的IP地址,并进行搜索; - 在搜索结果界面中,点击
Latest data
,查看最新数据; - 在主机项目界面中,点击搜索栏中的
Name
,粘贴计数器项目的名称,勾选Show items without data
,随后点击Filter
按钮进行过滤; - 通常Zabbix Server分发模板更新需要一段时间,我们稍等片刻就应该可以看到计数器项目的数据了。
- 具体数据采集成功,则表示验证通过。
注意
- 如果项目失效,建议先检查下步骤是否有误。如果无误则请开启Zabbix Agent的Debug模式查看具体通讯情况。