一款德国的Nagios插件---Check_mk 搭建
经过两周的研究与测试,把Check_Mk摸得40%程度,在这里简单的总结一下并分享给大家,可能还存在问题,请大家多多指点。。
Check_mk 安装
第 1 章 check_mk的介绍
Check_MK是一款通用的Nagios/Icinga数据采集插件,主要由三个子项目组成。它采用了新的方法从操作系统和网络组件中收集数据和淘汰老式的NRPE、check_by_ssh、NSClient和check_snmp。其优点能够自动检测主机上的监控项目,并且在监控端的CPU使用率也显著减少。其遵循CPL v2,是开源的免费软件
第 2 章 工作原理
l Nagios每一次对所监控的主机每进行一次检查的时间间隔触发一个活动检查。这种主动检查将会触发check_mk插件。
l check_mk通过TCP连接到目标主机。目标主机上的check_mk_agent检索有关该主机的所有相关数据, 并将其以ASCII文本形式返回给服务器端(这样的模式类似于zabbix哈~)。
l check_mk提取performanca数据直接返回给rrd。
l check_mk提取相关数据,比较所设置的warning/critical阀值,然后返回这台主机通过Nagios的被动的服务检查的检查结果。
l 由于check_mk的图比较炫而且其监控主机也比较方便,类似cacti一样可以直接在web页面进行添加,个人觉得很不错,先上一些我配置完成的check_mk监控的图。
第3章 开始安装check_mk
Nagios你安装了吗?
既然check_mk是nagios的插件,那Nagios肯定是要装的,在这里就不多说Nagios的安装了。
如果看到这时你的nagios还没装的话,请停下来,先去准备nagios环境吧,点击跳转 nagios安装教程 (David_Tang这哥们写的老详细了)。
好了,相信你现在已经有一个nagios在运行了,那么接下来我们开始安装check_mk。
1,准备环境
由于 check_mk 是由 python 语言编写的,所以必须要准备 python 的环境,并且 python的版本最低也得 2.3 但是 check_mk 又不兼容 python3,所以请确定你的 python 版本,我建议安装 2.6.6 版本以上,原因后续会知道;
另外 check_mk 需要作为非独立守护进程运行,所以请安装超级守护进程 xinetd。
还有,安装 pnp4nagios、rrdtool(如果前面nagios 已经安装过了就不用安装了)
2,下载并安装 check_mk
cd /tmp/ wget http://mathias-kettner.com/download/check_mk-1.2.4p5.tar.gz tar zxvfp check_mk-1.2.4p5.tar.gz cd check_mk-1.2.4 ./setup.sh
上面我配置的不是默认路径,所以你会看到很多路径都是/usr/local/
其实默认路径不是这样的,在这里我介意大家用默认路径
其实上面的操作,一路回车遇到yes敲yes,遇到no就敲no就行了
另外告诉一个小秘密:
其实在你执行脚本setup.sh 时,它会读取/root/.check_mk_setup.conf 它是个隐藏的文件,
如果你觉得你的路径没选好,想要重新选择,那么请删除 /root/.check_mk_setup.conf或直接修改里面的路径,然后你就可以重新执行setup.sh了
一切就绪后,重启http和Nagios ,登录http://ip地址/check_mk 即可访问。
常见报错:
问题1:
解决方法:
关闭SELinux即可
SELinux(安全增强型Linux)安装后将默认使用强制模式。这会在你尝试联入Nagios的CGI时导致一个"内部服务错误"消息。
如果是SELinux处于强制安全模式时需要做
getenforce令SELinux处于容许模式
setenforce 0
如果要永久性更变它,需要更改/etc/selinux/config里的设置并重启系统。
不关闭SELinux或是永久性变更它的方法是让CGI模块在SELinux下指定强制目标模式:
chcon -R -t httpd_sys_content_t/usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t/usr/local/nagios/share/
问题2:
访问网页时报错:
(以下错误只有谷歌浏览器才能显示出来,IE貌似没有这么详细的报错,只是提示无法访问)原因是缺少python模块。
解决方法:(或者这样解决:yum install mod_python)
#wgethttp://archive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz
#tar zxvf mod_python-3.3.1.gz
#cd mod_python-3.3.1
#./configure--with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/bin/python
#make
apxs:Error: Command failedwith rc=65536
make[1]: *** [mod_python.so]Error 1
make[1]: Leaving directory`/root/ndo/src/mod_python-3.3.1/src‘
make: *** [do_dso] Error 2
原因是 Apache 的版本还太高 mod_python 未支持
#vim src/connobject.c
把!(b == APR_BRIGADE_SENTINEL(b)|| 改为!(b == APR_BRIGADE_SENTINEL(bb) ||
#make clean
#make
#make install
在httpd.conf中增加
LoadModule python_modulemodules/mod_python.so
重启apache,重新访问正常
问题3:
登录后出现以下情况:
原因及解决方法:权限问题,根据提示慢慢修改吧,以我个人经验,如果出现以上大量的权限问题错误的话,建议重新配置安装,因为你安装时破坏了它的一些结构性的东西,即使你一个一个去把权限搞定了,再以后的配置过程中依然会出现一些头疼的错误,如果你的python学的很一般的话,就按默认路径安装!除非你想给自己找麻烦。
问题4:
登录页面后,缺少东西
不正常的图,也是普通用户登录后的视图 正常的图,超级管理员登录后的视图
原因是访问的用户不是超级用户,也就说没权限。这个和你创建nagios web登录用户名有直接关系。
解决方法:
修改配置文件:multisite.mk
默认路径:/etc/check_mk/etc/check_mk
将红色框内的nagiosadmin改为nagios web登录用户名即可,因为nagios默认的web登录用户名为nagiosadmin,所以这里一定要改!总之,这里这个用户名一定要和nagios 的web用户名一致。
问题5:
执行setup.sh 时报错:
通过读取安装日志:livestatus.log 得知是编译安装时报错,错误截图暂未截取
解决方法: 安装 gcc-* libgcc-* 即可
问题6:
最常见的问题:
check_mk发不出报警邮件,其中常见的一个原因是python版本低 Python 2.6.6 可以发 而2.6.5的却发不出来。
关于发不出报警邮件的详细解决方法我已经放在网上了,后期再详细往这里写吧
请参考http://www.cnyunwei.com/thread-22737-1-1.html
本文出自 “落叶” 博客,转载请与作者联系!