nagios监控_落英缤纷
nagios监控_落英缤纷
作为系统运维工程师,最担心的不是系统出现什么故障,而是不能在第一时间获知系统出现故障或宕机了,尤其是遇到节假日,系统管理员就很紧张。要改变这种被动的局面,这里我以网络监控软件Nagios为例来介绍一下软件的的配置及使用,并将邮件报警融合进来以实现服务器故障时即时通知管理员。 虽然Nagios十分受用,但配置起来确是麻烦,基于这样的原因,我将尽可能详细地向大家讲述我用Nagios的过程以及心得,希望对初学者有所帮助。下面以Centos 5.4 为例来部署 安装所需软件 一、解决安装Nagios的依赖关系: Nagios基本组件的运行依赖于httpd、gcc和gd。可以通过以下命令来检查nagios所依赖的rpm包是否已经完全安装: # yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-server 此外,要想完整的安装关运行本文中所描述的环境,您得准备一个功能完备的LAMP运行环境。 说明:以上软件包您也可以通过编译源代码的方式安装,只是后面许多要用到的相关文件的路径等需要按照您的源代码安装时的配置逐一修改。此外,您还得按需启动必要的服务,如httpd,mysqld等。 二、创建一个名为nagios的帐号并给定登录口令 # /usr/sbin/useradd nagios # passwd nagios 创建一个用户组名为nagcmd用于从Web接口执行外部命令。将nagios用户和apache用户都加到这个组中。 # /usr/sbin/groupadd nagcmd # /usr/sbin/usermod -G nagcmd nagios # /usr/sbin/usermod -G nagcmd apache 把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限. 三、编译安装nagios: # tar zxf nagios-3.3.1.tar.gz # cd nagios # ./configure --with-command-group=nagcmd --enable-event-broker # make all # make install # make install-init # make install-config # make install-commandmode 说明: 第一步执行make install安装主要的程序、CGI及HTML文件, 第二步执行make install-init的步骤,它的作用是把nagios做成一个运行脚本,使nagios随系统开机启动,这是一个很方便的措施。 第三步执行 make install-config 把配置文件的例子复制到nagios的安装目录。 第四步执行 make install-commandmode 给外部命令访问nagios配置文件的权限。 nagios检查 #ls /usr/local/nagios/ =================== bin etc sbin share var #看到这5个目录就ok了 安装完后 查看一下在/usr/local/nagios下是否存在etc、bin、 sbin、 share、 var这五个目录,如果存在则可以表明程序被正确的安装到系统了。这5个目录的作用是:
为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户: # vi /usr/local/nagios/etc/objects/contacts.cfg email nagios@localhost #这个是默认设置 我的: email [email protected] 在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件: # make install-webconf 创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用: # htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 以上过程配置结束以后需要重新启动httpd: # service httpd restart 将nagios的信息加到apache中,打开vi /usr/httpd/conf/httpd.conf(这个是我的apache安装配置文件的路径)文件,在文件最后添加如下代码: ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin 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 Alias /nagios /usr/local/nagios/share 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 四、编译、安装nagios-plugins nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。 # tar zxf nagios-plugins-1.4.13.tar.gz # cd nagios-plugins-1.4.13 # ./configure --with-nagios-user=nagios --with-nagios-group=nagios # make # make install 五、配置并启动Nagios 启动nagios服务 Nagios的基础平台和插件都安装完成之后,下一步就是启动nagios的服务了。不要着急,在启动之前,我们还要做点准备工作。 准备各种配置文件。还记得在基础系统安装的时候,敲过这样一个命令吧:make install-config 。这个命令的作用是生成配置文件的样式文件。你可以在 nagios/etc/ 目录下找到这些文件,其名字类似commands.cfg-sample 。我们首先要做的就是将这些文件变成我们初始的配置文件。 #cp nagios.cfg-sample nagios.cfg #cp commands.cfg-sample commands.cfg #cp cgi.cfg-sample cgi.cfg #cp localhost.cfg-sample localhost.cfg 总之,就是把那些sample去掉,让它们真正的上岗。最后,我们修改cgi.cfg文件: use_authentication=1 (默认) default_user_name=nagios authorized_for_system_information=nagiosadmin,nagios authorized_for_configuration_information=nagiosadmin,nagios authorized_for_system_commands=nagiosadmin,nagios authorized_for_all_services=nagiosadmin,nagios authorized_for_all_hosts=nagiosadmin,nagios authorized_for_all_service_commands=nagiosadmin,nagios authorized_for_all_host_commands=nagiosadmin,nagios 我是用nagios这个名字做为默认用户的,所以在上述几个配置项中,我都在最后添加了这个用户。 (1)把nagios添加为系统服务并将之加入到自动启动服务队列: # chkconfig --add nagios # chkconfig nagios on (2)检查其主配置文件的语法是否正确: # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 如果没有问题的话,会有如下显示: Total Warnings: 0 Total Errors: 0 (3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了: # /etc/rc.d/init.d/nagios start (4)配置selinux 如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您的系统是否开启了selinux: #getenforce 如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭: #setenforce 0 如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值"force"修改为"disable"即可。 不关闭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/ (5)通过web界面查看nagios: http://your_nagios_IP/nagios |