接触Nagios也有一段时间了,个人感觉Nagios相对来说配置起来还是比较简单的,而且报警功能很强大,图形化也做的还不错。特别是结合了NagioSQL这个插件之后,直接就是通过一个web端管理Nagios的配置,使其变得更加的简单,快捷。

由于之前也写过相关安装配置的文章,这里就不在累述,只是作为一个汇总,为有需要的朋友提供一个清晰的目录结构:

(1)Nagios介绍

(2)Nagios所需LAMP环境搭建

(3)Nagios服务器基本安装配置

(4)Nagios监控客户端外部信息(端口,服务,ping等)
(5)Nagios监控客户端内部信息(cpu,内存,磁盘空间使用情况等)

(6)配置Pnp4Nagios进行图表分析

(7)Nagios实现邮件、短信告警

(8)配置NagiosWeb管理端--NagioSQL

(9)Nagios监控Windows2003服务器

(10)Nagios监控路由器、交换机

(11)Nagios监控mysql主从同步

(12)交互式添加nagios主机和服务脚本

以上其实都是之前写过的文章,不过没有很好的汇总起来,现在有时间就汇总一下,方便有需要的朋友快速查阅。根据多人反馈,安装上面的过程一步步下来是可以达到最终效果的,但这并不代表说其他人按照上面的步骤来就一定能顺利,可能环境不同,包的版本不同也可能造成其他新的问题。为了避免因为包版本问题导致实验报错,这里我也顺便提供一下,本实验所使用到的所有软件包:

点击下载:http://down.51cto.com/data/699395

如果实验过程还有其他问题的话,欢迎大家提出来交流交流。

另外,由于最近经常需要重复性的配置搭建类似的环境,于是抽空把配置过程写成了shell脚本,其中包括LNMP,LAMP还有Nagios的脚本。这里我也附上下载地址:

LAMP:http://down.51cto.com/data/874195

LNMP:http://down.51cto.com/data/872036

下面的脚本,是我根据上述博文将安装配置过程写成shell脚本。

需要注意的是:

(1)需要实现下载好相关软件包

(2)将脚本与软件包放置在同一目录下

(3)事先配置好yum

(4)实验是在关闭iptables和SELinux的情况下进行的

(5)该脚本运行环境是:CentOS6.3最小化安装

这里再提一下,本脚本我在这边虚拟机测试过没问题了,但是由于时间精力有限,也没有在其他环境下测试过,不知道跑起来怎么样,如果能看到的朋友,可以参照我上述的博文,根据需要自行修改。

Nagios脚本下载:

http://down.51cto.com/data/874218

里面包括:

auto_nagios_server.sh(安装和基本配置)

monioutside_info.sh(监控客户端外部信息)

moniinside_infoc.sh(监控客户端内部信息。注意:只有这个脚本是在客户端上运行的!!!)

moniinside_infos.sh(监控客户端内部信息)

pnp.sh(搭建绘图工具)

脚本执行步骤按从上到下进行。配置过程中,需要手动输入需要监控的主机名和IP。

注意:经过这几天测试,发现有点脚本在其他环境下运行可能有点小问题,这里提一下:

1、在rhel6.4上运行的时候由于yum没办法装上freetype.h导致编译php的时候会报错

解决办法:去掉php编译中的--with-freetype-dir这个参数即可

2、在客户端安装nrpe的时候,客户端可能没装上ssl包而导致编译安装nrpe的时候报以下错误:

configure:error:cannotfindsslheaders

解决办法:在moniinside.infoc.sh脚本上加上yum-yinstallopenssl-devel即可

附上通过脚本安装后的截图:

另外有几个点需要注意:

(1)如果跑完脚本,过程中没有报错,但是Nagios页面却没有显示,尝试手动执行重启apache

(2)需要确保系统中有字体文件,可以通过下面的命令查看:

[root@localhostnagios]#ls/usr/share/fonts/
simsun_0.ttcsimsun.ttc

这里的simsun就是宋体,没有字体的话,请自行上传到/usr/share/fonts目录下,注意名字不要出现中文的。没有字体的话,通过RRDTOOLS绘图会报错,提示:找不到可用的字体!

(3)如果点击小太阳查看图表仍然显示安装页面,可能需要手动做以下操作:

[root@server~]#mv/usr/local/pnp4nagios/share/install.php

/usr/local/pnp4nagios/share/install.php.bak

编辑nagios.cfg,开启数据接收功能

[root@server~]#vim/usr/local/nagios/etc/nagios.cfg

process_performance_data=1

enable_environment_macros=1

service_perfdata_command=process-service-perfdata

host_perfdata_command=process-host-perfdata

总结:近期写了很多一键安装部署xx的脚本,虽然这个过程有点艰难,但是我却很享受,因为我觉得写这么一个自动安装的脚本思路上并不难,难的是里面需要大量的文本处理,这对复习sed,awk,grep这些文本处理工具真的有很大的帮助,通过这几个脚本的锻炼后,觉得对这几个工具的使用又更加熟练了。

有时间,有想法,就多写写shell脚本,一方面可以方便自己的学习工作,一方面对自己的技术也是一种锻炼。如果大家有其他实用的脚本,也可以分享出来,共同学习哦~

今天看了一句话,挺感动的:未来的你,肯定会感谢现在努力的你!

正如前阵子看的中国合伙人中,孟晓骏在那本英汉词典中夹的书签:有天你会让我嫉妒的!

写给未来的自己~加油吧~