其实用法Checkmk官网文档很全面:https://docs.checkmk.com/latest/en/intro_setup.html
顺着beginner's guide章节看完基本就能上手,以下只是对于整体用法的梳理和总结
常用的监控场景为:主机资源,服务端口,webservice服务,数据库,通过微信告警
1.版本选型
一般用免费版 Checkmk Raw Edition (CRE)
2.安装方式
最常见的是Red Hat and CentOS https://docs.checkmk.com/latest/en/install_packages_redhat.html
其他还支持物理设备,docker容器等:https://docs.checkmk.com/latest/en/introduction_docker.html,详情可以参考官网文档
这里推荐尽量使用新系统安装,避免不必要的麻烦
3.软件初始化
创建站点:omd create mysite
启动站点:omd start
登陆等
详情查看官网: https://docs.checkmk.com/latest/en/intro_setup.html#create_site
4.用户界面
详情:https://docs.checkmk.com/latest/en/intro_gui.html
5.设置监控
详情:https://docs.checkmk.com/latest/en/intro_setup_monitor.html
其中checkmk有文件夹和主机标签的概念,这两个很有用,因为监控基本是根据规则来批量管理,而管理的方式就是通过文件夹和标签来划分
所以建议,按大类用文件夹区分(不会轻易改动),各种小类用标签区分(可以灵活搭配调整)
其中安装代理:https://docs.checkmk.com/latest/en/intro_setup_monitor.html#install_agent,有两点要注意
(1)一定要注意systemctl的版本高于219
systemd in a version 219 or newer
systemctl --version
所以这里建议尽量使用新系统,比如centos8或者9
这样会避免很多麻烦
(2)注册主机时的命令
cmk-agent-ctl register --hostname localhost --server mycmkserver --site mysite --user cmkadmin
其中主机名称localhost有时候不一定能识别,可以替换为ip
cmk-agent-ctl register --hostname 127.0.0.1 --server mycmkserver --site mysite --user cmkadmin
checkmk配置完成还有个激活更改的概念
其他windows,SNMP,云、容器、虚拟机的安装详见文档
6.监控工具
参考官网:https://docs.checkmk.com/latest/en/intro_tools.html
主要是checkmk常用到的一些小工具
其中重点要注意Master control,这个是用来控制所有监控的开关的
还有个书签的功能,可以把常用的页面保存为书签
7.checkmk的日常使用
参考官网:https://docs.checkmk.com/latest/en/intro_monitor.html
其中有两个重要的概念
(1)Acknowledging problems
监控类似于闹钟,当出现问题是checkmk会认为有问题并发出告警,但是到底有没有处理,checkmk并不能知道
所以需要人来手动确认这个问题,来把未处理的问题转变为已处理
(2)设置计划停机时间
这个是防止维护重启的时候,发出告警
其实个人觉得偶尔的计划停机无所谓,如果有周期的维护,比如一周重启一次,就很需要这个功能
但是免费版本配置周期计划停机相对收费版略微麻烦
8.微调监控
参考官网:https://docs.checkmk.com/latest/en/intro_finetune.html
这里主要是说要尽可能让监控准确,防止误报
配置监控的原则是首先是质量,然后是数量
一定要先用一个主机做实验,让监控趋向精准的时候,在大批量使用
(1)check中所有的规则都有相应的规则集,你可以在规则集中搜索需要配置的规则
Setup > General > Rule search
(2)用好标签的概念
为主机配置标签,以及为规则匹配相应的标签
(3)文件系统的阀值
由于有的磁盘200T,有的磁盘20g同样设置90%告警就不合理
这里可以用按磁盘大小分级配置阀值
也可以用到checkmk的魔法因子来根据磁盘的大小自动调配阀值
https://docs.checkmk.com/latest/en/intro_bestpractise.html#magic_factor
(4)忽略关闭的主机
比如打印机这种
(5)监控交换机端口
主要是终端交换机,预防经常有主机关机出现误报的情况
(6)永久禁用服务
可以用规则来禁用不想监控的服务
这里可以在主机中禁用某个服务,然后找到那个为这个禁用创建的规则,最后修改这个规则适用范围至其他主机
(7)使用平均值监控异常
可以设置一段时间的cpu平均阀值异常,比如15分钟
(8)管理偶发错误
有些服务偶尔的CRIT 是正常的
这里可以设置为连续检查3次出现CRIT才告警
9.用户管理
参考官网:https://docs.checkmk.com/latest/en/intro_users.html
一个用户有两个属性:权限和职责
权限分为:Administrator、Normal monitoring user、Guest user
职责是以联系人组(Contact groups)的方式管理
人员和主机都可以关联进联系人组
然后当联系人组中的主机或者主机上的服务出现问题会给相同组里的联系人发送告警
其中有个概念要注意
把主机分配进联系人组,相应的服务也会继承这个关系
但是把服务分配进联系人组,这种继承关系就会自动消失,他就不会从主机继承任何联系人组
但是主机有问题,很难保证服务正常
所以建议尽量不要分配服务,而是分配主机给联系人组
10.配置通知
参考官网:https://docs.checkmk.com/latest/en/intro_notifications.html
基本支持所有方式的通知
常用的就是邮件和微信通知
邮件通知就是:
(1)安装SMTP server service
(2)配置mail server
邮件里通知还可以包含度量图表
微信通知
这个在checkmk没有内置,但是check支持自定以脚本,所以可以自己写脚本完成通知
(1)注册一个微信订阅号(只有订阅号可以发送模板消息)
(2)写一个微信消息发送脚本
书写和配置规范:https://docs.checkmk.com/latest/en/notifications.html#scripts
支持shell,python各种语言,里面还包含可用的传参
11.扩展监控系统
参考官网:https://docs.checkmk.com/latest/en/intro_extend.html
优化安全,分布式监控,可用性,软硬件清单,监控消息和事件,地图图表可视化,BI,pdf报告
其中有个很重要就是开发自己的插件
12.最佳实践
参考官网:https://docs.checkmk.com/latest/en/intro_bestpractise.html
(1)监控单个cpu利用率
防止单进程异常
(2)监控windows服务
配置需要监控的windows服务
(3)监控互联网连接
这个比较有意思,主要用来监控联网可用性的,就是随便找几个主流的网站ip配置进一个主机里面,配置ping规则分别ping这几个ip,然后再配置一个规则只用这个ping规则的状态来告警(防止第一个ping地址故障导致主机出现down状态),这样只要有ip能ping通就不会告警
(4)监控http/https服务
(5)魔法因子文件系统阀值
这个是以20G做基准,然后加一个系数0.8,然后checkmk会根据磁盘相对于20G的大小来调整阀值
13.被动检查
参考官网:https://docs.checkmk.com/latest/en/monitoring_basics.html?lquery=passive
可以用脚本在主机上采数,然后推给checkmk检查,例如某些数据库监控