服务器端:
IP为192.168.2.21解决perl编译问题:echo 'export LC_ALL=C'>> /etc/prosource /etc/profile关闭iptables:service iptables stopchkconfig iptables off解决系统时间同步:echo ‘#time sync by drfdai at 2012-10-18’>> /var/spool/cron/rootecho ‘0 */3 * * * /usr/sbin/ntpdate pool.ntp.org >> /dev/null 2>&1’>> /var/spool/cron/root安装nagios所需基础软件包yum install gcc glibc glibc-common gd gd-deve httpd php php-gd perl-devel sysstat -y创建nagios需要的用户和组useradd -M nagiosuseradd apachegroupadd nagcmduseod -a -G nagcmd nagiosusermod -a -G nagcmd apache上传软件包到脂定目录或通过URL下载软件包目录:/usr/local/src/cd /usr/local/src/ http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gzwget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gzwget http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz安装nagios:官方安装文档:http://nagios.sourceforge.net/docstar xvf nagios-3.2.0.tar.gzcd nagios-3.2.0./configure --with-command-group=nagcmdmake allmake installmake install-initmake install-commandmodemake install-configmake install-webconf提示:如果是编译安装的httpd时,可以执行./configure --with-command-group=nagcmd --wthi-httd-conf=/usr/local/apache2/conf/extra增加一个编译参数即指定编译nagios web配置的生成路径。(尽量别使用编译安装httpd,除非生产中需求)创建nagios web监控界面登入时需要的用户名(oldboy)及密码:htpasswd -c /usr/local/nagios/etc/htpasswd.users drfdai输入密码确认密码可查看下密码文件: /usr/local/nagios/etc/htpasswd.users用yum安装sendmailyum install sendmail –ychkconfig sendmail on如果sendmail启动很慢,可能是/etc/hosts设置的不对,即主机名对应不用,需要设置上本机名,如果是系统最小化安装的,还需要检查下有没有mail,如果没有,sendmail是发不出邮件的,查看命令: mail,没有就用yum install mailx -y安装下。启动httpd服务chkconfig httpd onservice httpd start安装nagios插件软件包:tar xvf nagios-plugins-1.4.13.tar.gzcd nagios-plugins-1.4.13./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-per-modulesmakemake install如果编译时遇到make: *** [all] Error 2 则configure 加 --with-mysql=/usr/local/mysql解决,其实/usr/local/mysql为mysql的安装路径。添加nagios服务到开机自启动:chkconfig --add nagioschkconfig --level 3 nagios on验证nagios配置文件(检查语法)/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg……Total Warnings:0Total Errors: 0以上则为正确,如果不是的话,请看详细提示在哪出错,再找原因启动nagios服务service nagios startchkconfig nagios on检查Selinux是否关闭1.临时关闭服务器开启的Selinux可直接输入:setenforce 0这个命令输入后会直接生效2.永久关闭服务器开启的Selinux可直接输入:sed ‘s#SELINUX=enforcing#SELINUX=disabled#’ /etc/selinux/config需要重启系统安装nrpetar xvf nrpe-2.12.tar.gzcd nrpe-2.12./configuremake all make install-pluginmake install-daemonmake install-daemon-config提示:生成nrpe的配置文件在:/usr/local/nagios/etc/nrpe.cfg服务端和客户端都要装nrpe,不然会缺少相关检查插件,另外服务端也会监控自身的基本健康状态。安装其它相关的插件【iostat】tar xvf Params-Validate-0.91.tar.gzcd Params-Validate-0.91perl Makefile.PL && make && make install && cd ..tar xvf Class-Accessor-0.31.tar.gzcd Class-Accessor-0.31perl Makefile.PL && make && make install && cd ..tar xvf Config-Tiny-2.12.tar.gzcd Config-Tiny-2.12perl Makefile.PL && make && make install && cd ..tar xvf Math-Calc-Units-1.07.tar.gzcd Math-Calc-Units-1.07perl Makefile.PL && make && make install && cd ..tar xvf Regexp-Common-2010010201.tar.gzcd Regexp-Common-2010010201perl Makefile.PL && make && make install && cd ..tar xvf Nagios-Plugin-0.34.tar.gzcd Nagios-Plugin-0.34perl Makefile.PL && make && make install && cd ..配置nagios修改nrpe.cfg文件vim /usr/local/nagios/etc/nrpe.cfg添加以下内容:command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20command[check_disk]=/usr/local/nagios/libexec/check_disk -w 15% -c 7% -p /var -p /command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%command[check_iostat]=/usr/local/nagios/libexec/check_iostat -w 6 -c 10command[check_mem]=/usr/local/nagios/libexec/check_mem -w 20% -c 10%command[check_nginx]=/usr/local/nagios/libexec/check_nginx.sh –url 192.168.2.21/index.phpcommand[check_ip_connets]=/usr/local/nagios/libexec/ip_conn.sh 8000 10000command[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql_slave修改nagios.cfg文件vim /usr/local/nagios/etc/nagios.cfg对比cfg-file=,添加缺少下的条目:cfg_file=/usr/local/nagios/etc/objects/commands.cfgcfg_file=/usr/local/nagios/etc/objects/contacts.cfgcfg_file=/usr/local/nagios/etc/objects/timeperiods.cfgcfg_file=/usr/local/nagios/etc/objects/templates.cfgcfg_file=/usr/local/nagios/etc/objects/hosts.cfgcfg_file=/usr/local/nagios/etc/objects/services.cfg修改command_check_interval=15s为command_check_interval=-1修改cgi.cfg文件vim /usr/local/nagios/etc/cgi.cfg把nagiosadmin改成drfdaiauthorized_for_system_information=drfdaiauthorized_for_configuration_information=drfdaiauthorized_for_system_commands=drfdaiauthorized_for_all_services=drfdaiauthorized_for_all_hosts=drfdaiauthorized_for_all_service_commands=drfdaiauthorized_for_all_host_commands=drfdai把refresh_rate=90修改成refresh_rate=20 (可修改检查间隔时间,非必须修改)修改commands.cfgvim /usr/local/nagios/etc/objects/commands.cfg添加以下内容:#nrpe setdefine command{ command_name check_nrpecommand_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$}修改contacts.cfgvim /usr/local/nagios/etc/objects/contacts.cfg修改以下内容:email 把邮箱改成自己接收短信报警的邮箱地址,如果有多个邮箱,可以复制多个define contact()内容,contact_name名字不能一样,在define contactgroup()中的members那添加对应的成员名,即上面的contact_name名字,有几个成员就添加几个,不能多填 ,否则报错。修改hosts.cfg文件vim /usr/local/nagios/etc/objects/hosts.cfg添加以下内容,如我有主机三台(192.168.2.21,192.168.2.22,192.168.2.23):define host{ use linux-serverhost_name umelook-nginx1alias 192.168.2.21address 192.168.2.21}define host{ use linux-serverhost_name umelook-web2alias 192.168.2.23address 192.168.2.23}define host{ use linux-serverhost_name umelook-web1alias 192.168.2.22address 192.168.2.22}host_name字段为你设置的主机名,这名字可不需要与真实服务器的主机名一致,这只是在nagios中所设置的主机名,在下面设置server.cfg文件中要调用到这个名字,address字段为你主要的IP地址,每添一台服务器就添加一个define host()。修改services.cfgvim /usr/local/nagios/etc/objects/services.cfg添加以下内容:define service { use local-service host_name umelook-nginx1,umelook-web2, umelook-web1 service_description check_t 80 check_command check_tcp!80 }define service{ use local-servicehost_name umelook-nginx1,umelook-web2, umelook-web1service_description Diskcheck_command check_nrpe!check_disk}define service{ use local-service host_name umelook-nginx1,umelook-web2,umelook-web1 service_description Load check_command check_nrpe!check_load }define service { use local-servicehost_name umelook-nginx1,umelook-web2,umelook-web1service_description Swapcheck_command check_nrpe!check_swap}define service{ use local-servicehost_name umelook-nginx1,umelook-web2,umelook-web1service_description Memcheck_command check_nrpe!check_mem}define service{ use local-servicehost_name umelook-nginx1,umelook-web2,umelook-web1service_description Iostatcheck_command check_nrpe!check_iostat!6!10}define service{ use local-servicehost_name umelook-nginx1,umelook-web2service_description Httpdcheck_command check_nrpe!check_nginx}define service{ use local-servicehost_name umelook-nginx1,umelook-web2 ,umelook-web1service_description Ip_connetscheck_command check_nrpe! check_ip_connets}修改templotes.cfgvim /usr/local/nagios/etc/objects/templates.cfg把以下修改成check_interval 1 max_check_attempts 2把check_interval全部修改为1,表示每隔1分钟检测一次把max_check_attempts设置为2表示最大重试检测2次失败就报警把相应的检测导入libexec目录下并给脚本赋给权限: +x /usr/local/nagios/libexec/*启动nagios/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -decho “#nagios nrpe process cmd by oldboy” >> /etc/rc.localecho “/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d” >>/etc/rc.local注:-c 接配置文件,-d表示后台运行如果要重启nrpe,需要ps出该进程号,再kill掉,然后再执行以上命令即可#########################################################################客户端篇:解决perl编译问题(同server端)echo 'export LC_ALL=C' >> /etc/profilesource /etc/profile关闭iptables:service iptables stopchkconfig iptables off解决系统时间同步:echo ‘#time sync by lodboy at 2010-2-1’>> /var/spool/cron/rootecho ‘0 */3 * * * /usr/sbin/ntpdate pool.ntp.org >> /dev/null 2>&1’>> /var/spool/cron/root上传软件包到/usr/local/src/安装nagios-plugins-1.4.13.tar.gzadduser nagios -M -s /sbin/nologin #(重要)tar xvf nagios-plugins-1.4.13.tar.gzcd nagios-plugins-1.4.13./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-perl-modulesmakemakemake installcd ..安装nrpetar xvf nrpe-2.12.tar.gzcd nrpe-2.12./configuremake allmake install-pluginmake install-daemonmake install-daemon-configcd ..安装其它相关的插件【iostat】yum -y install perl-devel sysstattar xvf Params-Validate-0.91.tar.gzcd Params-Validate-0.91perl Makefile.PL && make && make install && cd ..tar xvf Class-Accessor-0.31.tar.gzcd Class-Accessor-0.31perl Makefile.PL && make && make install && cd ..tar xvf Config-Tiny-2.12.tar.gzcd Config-Tiny-2.12perl Makefile.PL && make && make install && cd ..tar xvf Math-Calc-Units-1.07.tar.gzcd Math-Calc-Units-1.07perl Makefile.PL && make && make install && cd ..:tar xvf Regexp-Common-2010010201.tar.gzcd Regexp-Common-2010010201perl Makefile.PL && make && make install && cd ..tar xvf Nagios-Plugin-0.34.tar.gzcd Nagios-Plugin-0.34perl Makefile.PL && make && make install && cd ..把相应的检测脚本导入libexec目录下并给脚本赋给权限:chmod +x /usr/local/nagios/libexec/*修改nrpe.cfg文件vim /usr/local/nagios/etc/nrpe.cfg添加以下内容:command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20command[check_disk]=/usr/local/nagios/libexec/check_disk -w 15% -c 7% -p /var -p /command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%command[check_iostat]=/usr/local/nagios/libexec/check_iostat -w 6 -c 10command[check_mem]=/usr/local/nagios/libexec/check_mem -w 20% -c 10%command[check_ip_connets]=/usr/local/nagios/libexec/ip_conn.sh 8000 10000command[check_nginx]=/usr/local/nagios/libexec/check_nginx.sh --url 192.168.2.23/index.phpcommand[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql_slave修改allowed_hosts,192.168.2.21是nagios服务器的IP地址allowed_hosts=127.0.0.1,192.168.2.21启动nagios/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -decho "#nagios nrpe process cmd by drfdai" >> /etc/rc.localecho "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d " >>/etc/rc.local注:-c 接配置文件,-d表示后台运行如果要重启nrpe,需要ps出该进程号,再kill掉,然后再执行以上命令即可打开nagios便可查看nagios监控如:192.168.2.21/nagios