最近刚用了nagios,想总结一下。还以为没什么人用过,搜过后发现还是有些童鞋在用。不过讲Nconf的好像没有,在这发个详细的,免去新手摸索的功夫。
1.
安装
需要先安装 puppet 和 webmin 两个软件,上网找吧。安装过程中如果还提示缺什么软件,都上网下载吧,都是开源的。
安装过程的话按 INSTALL 说明来吧,没什么大问题。
需要修改 apache 配置
Alias /nagios "/usr/local/nagios/share"
#
SSLRequire SSL
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/share/cgi-bin"
Options +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
装好后登录,首页面设置成仪表盘的形式
看起来还不错的样子。遗憾的是配置文件是文本的,要手工编辑。而且还有多个,有配主机的、配业务的、配联系人的。我看得头都大了。
看看,就是那些 *.cfg 文件。
2.
配置
还好,我又找到了NConf。NConf之于Nagios,就象Cacti之于MRTG(当然这个比喻也不是十分恰当,因为Cacti是可以取代MRTG,而Nconf只是辅助管理Nagios)。可以在图形界面管理要监控的设备和服务,将信息记录在数据库中,这样就清晰多了。
下载NConf 1.2.6,安装过程也算简单,按说明来吧。就是创建MySQL数据库、账号、表,然后改一下nagios.cfg文件中的一些配置文件的路径等等。
修改apache配置
Alias /nconf "/www/nconf"
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
访问NConf界面开始出现了个错误:
修改一下权限:
# chmod 777 /usr/local/nagios/bin/*
就OK了。
看起来把配置文件要配的东西都列在菜单里了。
点“hosts / Show”,列出来主机的情况
这些是在数据库里的记录,并不代表是Nagios已经监控的,因为还要根据数据库的信息生成Nagios的配置文件。
点“Generate Nagios config”生成配置文件。
一开始老是提示错误,什么不能打开“/www/nconf/temp/test/Default_collector.cfg ”。改了 N 多个配置文件都不管用。最后还是在 NConf 的论坛找到答案。
手工执行一下“ /www/nconf/bin/generate_config.pl ”,提示:
[ Initializing NConf perl-API (library version 0.2, written by A. Gargiulo) ]
[ Copyright (c) 2006-2009 Sunrise Communications AG, Zurich, Switzerland
]
Can't load '/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.14: 无法打开共享对象文件 : 没有那个文件或目录 at /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/DynaLoader.pm line 230.
at /www/nconf/bin//lib/NConf/DB.pm line 20
Compilation failed in require at /www/nconf/bin//lib/NConf/DB.pm line 20.
BEGIN failed--compilation aborted at /www/nconf/bin//lib/NConf/DB.pm line 20.
Compilation failed in require at /www/nconf/bin//lib/NConf/ExportNagios.pm line 24.
BEGIN failed--compilation aborted at /www/nconf/bin//lib/NConf/ExportNagios.pm line 24.
Compilation failed in require at ./bin/generate_config.pl line 51.
BEGIN failed--compilation aborted at ./bin/generate_config.pl line 51.
找了一下,
'/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so' 是有的, libmysqlclient.so.14 这个没有,但是有 libmysqlclient.so 。不管三七二十一,把 libmysqlclient.so 复制成 libmysqlclient.so.14 。
再执行“ /www/nconf/bin/generate_config.pl ”,哈哈,成功啦!
再点击“ Generate Nagios config ”,生成配置文件成功。
但是开始没搞懂怎样把生成的配置文件拷到运行的目录下,查了半天源代码,才看懂。原来生成的配置文件存在 output 目录下,压缩成 NagiosConfig.tgz 。需要运行 ADD-ONS/deploy_local.sh ,才会把文件拷贝解压到运行目录下,并重新加载 Nagios 配置文件。不过得自己把 deploy_local.sh 里面的目录改成你配置文件所在的目录。而且似乎 deploy_local.sh 写得有点问题,因为生成的配置文件压缩成 tgz 文件,而原来的 deploy_local.sh 里面用“ tar –xf ”,不能解压,加上“ -z ”参数就好了。
我加了主机和服务的监控后 Nagios 界面如下
呵呵,有小小成就感。
3.
增加短信通知功能
在“ Misccommands ”栏中增加一个短信通知命令“ notify_host_by_sms ”,然后填写短信通知命令行。当然,前提是你要有发短信的接口软件。幸运的是,我恰好有一个。
在“ Contacts ”栏中修改联系人的通知方式
重新生成配置文件并部署上去,就 OK 了。找个不用的 IP 试试, YES !收到短信了!
为了能够实现不同的主机告警发给不同的手机,在发送短信的命令参数里要引用 $CONTACTPAGER$这个宏。关于宏的说明,大家去看看官方文档吧。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com