博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
check_mk自定义监控实践之powershell
阅读量:5994 次
发布时间:2019-06-20

本文共 4083 字,大约阅读时间需要 13 分钟。

最近在学习check_mk,这是一款基于nagios监控工具,但比nagios更易使用,引起了我的兴趣,我最关注的依然是对自定义监控脚本的支持度。在windows下的实践,其支持的客户端脚本或插件可以是 exe,bat,vbs,ps1等,我采用powershell来编写监控脚本。

本文适合对check_mk有一定了解的人,关于check_mk的介绍和搭建,请点击查看:

另外如果觉得这篇文章描述不够清晰,可以参考官方文档:

=====================================================================================================

1、首先我们在客户端创建自定义监控脚本 process_top5.ps1:

$dp = (Get-Process) | select -First 5 echo `<`<`
`>`> #这个输出很重要,用来告诉check_mk监控端目标客户端有哪些监控项foreach($p in $dp){ Write-Host $p.name $p.WorkingSet}

脚本很简单,抓取当前计算机前5个进程,输出进程名和内存占用。将这个文件拷贝到 客户端check_ck插件目录(C:\Program Files (x86)\check_mk\plugins)

2、在监控端输入“check_mk -d hostname”,查看返回内容中可以看到<<<process_top5>>>段,可以看到有5项进程信息

[[[Windows PowerShell]]]<<
>><<
>>agent 19939328AlipaySecSvc 20549632aspnet_state 1511424check_mk_agent 9351168cmd 6447104<<
>>

现在需要在监控端 编写check脚本,用于解析客户端返回值,检查项脚本位于“/usr/share/check_mk/checks”目录下(check脚本为python编写,需要写的东西并不复杂,所以不会python的人也无需担心)。注意文件名必须和新增的监控项名相同(即process_top5),内容如下:

process_top5_default_values=(10000000,15000000)   #定义报警阈值,顺序无所谓#inventory代表检查清单,参数info为客户端返回项<<
>>,其返回值inventory用于check_process_top5中的item参数def inventory_process_top5(info): inventory = [] for line in info: disk = line[0] field = int(line[1]) inventory.append( (disk, "process_top5_default_values") ) return inventory#这个是check主函数def check_process_top5(item,params,info): warn,crit = params #取出process_top5_default_values中定义的阈值,注意赋值顺序,这里warn取值10000000,crit取值15000000 for line in info: if (line[0]) == item : celsius = int(line[1]) if celsius > crit: return (2, "mem is %d" % celsius) elif celsius > warn: return (1, "mem is %d" % celsius) else: return (0, "mem is %d" % celsius) return (3, "%s not found in agent output" % item)#这里是向check_mk添加检查项check_info["process_top5"] = { 'check_function': check_process_top5, 'inventory_function': inventory_process_top5, 'service_description': '%s',}

 

3、 通过“ check_mk -L | grep process_top5” 可以看到监控端已经有该check,然后要将process_top5添加到对应的host文件上

[root@trdcentos62 ~]# check_mk --checks=process_top5 -I [hostname]process_top5      5 new checks

“5 new checks”代表process_top5新增了5个监控项,实际上就是对应的5个进程项,在该host对应autocheck文件也已经增加了这5项,如下

[root@trdcentos62 ~]# cat /var/lib/check_mk/autochecks/3.81.mk[  ("3.81", "process_top5", 'AlipaySecSvc', process_top5_default_values),  ("3.81", "process_top5", 'agent', process_top5_default_values),  ("3.81", "process_top5", 'aspnet_state', process_top5_default_values),  ("3.81", "process_top5", 'check_mk_agent', process_top5_default_values),  ("3.81", "process_top5", 'cmd', process_top5_default_values),  ('3.81', 'df', 'C:/', {}),  ('3.81', 'df', 'D:/', {}),  ('3.81', 'df', 'E:/', {}),  ('3.81', 'df', 'F:/', {}),  ('3.81', 'df', 'G:/', {}),  ('3.81', 'logwatch', 'HardwareEvents', ""),  ('3.81', 'logwatch', 'Windows PowerShell', ""),  ('3.81', 'mem.win', None, {}),  ('3.81', 'uptime', None, {}),  ('3.81', 'winperf_if', '01', {
'state': ['1'], 'speed': 1000000000}), ('3.81', 'winperf_if', '02', {
'state': ['1'], 'speed': 1000000000}), ('3.81', 'winperf_if', '03', {
'state': ['1'], 'speed': 1000000000}), ('3.81', 'winperf_if', '04', {
'state': ['1'], 'speed': 1000000000}), ('3.81', 'winperf_if', '05', {
'state': ['1'], 'speed': 100000}), ('3.81', 'winperf_if', '06', {
'state': ['1'], 'speed': 100000}), ('3.81', 'winperf_if', '07', {
'state': ['1'], 'speed': 100000}), ('3.81', 'winperf_if', '08', {
'state': ['1'], 'speed': 100000}), ('3.81', 'winperf_if', '09', {
'state': ['1'], 'speed': 1410065408}), ('3.81', 'winperf_if', '10', {
'state': ['1'], 'speed': 100000}), ('3.81', 'winperf_phydisk', 'SUMMARY', diskstat_default_levels), ('3.81', 'winperf_processor.util', None, winperf_cpu_default_levels),]

4、打开check_mk监控页面,查看对应host的service,可以看到已经增加的那5项信息

 

转载于:https://www.cnblogs.com/waiwofei/p/3810544.html

你可能感兴趣的文章
一段查看终端端口的asp代码
查看>>
关闭默认共享-注册表-批处理
查看>>
apache_1.3.41+mysql-4.0.26+php-4.4.8+Redhat5 linux
查看>>
在Eclipse中使用Checkstyle
查看>>
Hive查询失败:no LazyObject for VOID
查看>>
AD+EXCHANGE邮件服务器的迁移实战<一>
查看>>
Server and PC naming management
查看>>
在esx server上导入其它vmfs storage
查看>>
Oracle Study---Oracle 11g 不可见索引案例
查看>>
WSDL 规则解释
查看>>
后智能手机时代之我想
查看>>
ORA-00900 修改props$中字符集导致
查看>>
html5手机网站需要加的那些meta/link标签,html5 meta全解
查看>>
ERP安全
查看>>
CocoaPods安装和使用教程
查看>>
NA-NP-IE系列实验53:帧中继环境下BMA 模式
查看>>
从触摸键盘之困看 Windows 8 的细节
查看>>
Oracle Study之案例--Oracle 数据块地址(Block Address)
查看>>
asp.net web开发中使用JS百度地图信息弹出窗中显示echarts图
查看>>
一百网页制作之1
查看>>