Nagios监控平台安装和配置

1、 nagios的安装 2.1 准备工作 2.1.1 安装必须的系统软件包装系统的时候尽量把一些开发库,系统库等安装上,免得后面出现装包老是有问题同时如果iptables,selinux开了,测试环境的时候尽量把它关了,后续就需要把相应的端口加到防火墙中,参考《防火墙配置》 service iptables stop setenforce 0 或者在/etc/selinux/config SELINUX=disabled 软件包主要有: rpm -q gcc glibc glibc‐common gd gd‐devel 2.1.2 下载nagios,httpd等包 http://www.nagios.org/download/ 查看nagios系统的版本说明: http://sourceforge.net/mailarchive/forum.php?thread_name=4CA9592B.7000705%40nagios.org&forum_name=nagios-announce 主要有httpd-2.2.6.tar.gz,nagios-3.1.0.tar.gz,nagios-plugins-1.4.13.tar.gz.gz,nrpe-2.12.tar.gz,php-5.3.5.tar,后期需要完善相关功能的时候再添加,如果要实现记录那些日志的信息,最好安装一个mysql库,将其相关内容写入到表中,以备查阅 2.1.3 安装nagios 监控服务器A:添加用户nagios: useradd nagios 触压包并编译: tar zxvf nagios-3.1.0.tar.gz cd nagios-3.1.0 mkdir /usr/local/nagios chown nagios.nagios -R /usr/local/nagios ./configure --prefix=/usr/local/nagios/ --enable-redhat-pthread-workaround make all make install && make install-init && make install-commandmode && make install-config 验证程序是否被正确安装。切换目录到安装路径(这里是/usr/local/nagios),看是否存在 etc、bin、 sbin、 share、 var这五个目录,如果存在则可以表明程序被正确的安装到系统了。后表是五个目录功能的简要说明: bin Nagios执行程序所在目录,nagios文件即为主程序 etc Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件 3版本与2版本区别 对象配置文件都在etc/objects目录下 sbin Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录 Share Nagios网页文件所在的目录 Var Nagios日志文件、spid 等文件所在的目录 var/archives Empty directory for the archived logs var/rw Empty directory for the external command file 2.1.4 安装nagios-plugin tar zxvf nagios-plugins-1.4.13.tar.gz.gz cd nagios-plugins-1.4.13 ./configure --prefix=/usr/local/nagios make && make install 然后查看下ls /usr/local/nagios/libexec会显示安装的插件文件,即所有的插件都安装在libexec这个目录下 2.1.5 apache安装和配置单独拿出来讲,总是有点特殊性,因为这东西让人走的弯路多,为了减轻别人的负担,俺还是在这边单独来讲下监控服务器A: 2.1.5.1 安装httpd,php,mysql 为什么这边要加一个php呢?因为nagios的网页程序是用php的,不然到时候就会出现让你痛苦的事,就是打开验证,输入用户和密码以后,不断的提示你没有权限,俺是深受其害,谨记 tar zxvf httpd-2.2.6.tar.gz cd httpd-2.2.6 ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-auth-digest=shared make make install bunzip2 php-5.3.5.tar.bz2 cd php-5.3.5 ./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache/bin/apxs 会报错,为什么?根据提示就知道了,上面的是相对于apache 1.X版本的,因为apache是2.X以上的,所以参数要用如下的: ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs make make install 2.1.5.2 配置apache以支持php脚本 vi /usr/local/apache/conf/httpd.conf或者是rpm安装的在/etc/httpd目录下 LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php AddType application/x-httpd-php .htm DirectoryIndex index.html index.php 2.1.5.3 配置nagios的WEB接口有二种方法:方法一:直接在安装nagios时 make install-webconf 创建一个nagiosadmin的用户用于Nagios的WEB接口登录。记下你所设置的登录口令,一会儿你会用到它。 htpasswd ‐c /usr/local/nagios/etc/htpasswd test 重启Apache服务以使设置生效。但记得这边有个特殊的地方,默认那个配置文件是放在/etc/httpd/conf.d/nagios.conf,所以要想把它加到apache中,需要在httpd.conf文件加入如下的语句: Include /etc/httpd/conf.d/nagios.conf 方法二:在apache最后添加如下的语句: #setting for nagios 20070707 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 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 Require valid-user 添加用来监控的用户 /usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd test 输入密码生成文件/usr/local/nagios/etc/htpasswd 内容如下: test:RTfhyrirbvOnk 用户名:密码(加密后) 同时需要在/usr/local/nagios/etc/cgi.cfg修改如下的几个参数,把上面的用户加入到里面去,如果有多少用户,以逗号分开 authorized_for_system_information=nagiosadmin,test authorized_for_configuration_information=nagiosadmin,test authorized_for_system_commands=nagiosadmin,test authorized_for_all_services=nagiosadmin,test authorized_for_all_hosts=nagiosadmin,test authorized_for_all_service_commands=nagiosadmin,test authorized_for_all_host_commands=nagiosadmin,test 2.1.5.4 apache的其它配置找到httpd.conf文件 grep ^User /usr/local/apache/conf/httpd.conf 结果我这边是如下: User daemon 因此需要将daemon用户加入到组nagios usermod -G nagios daemon 如果是其它也采取相应的办法 找到#ServerName www.example.com:80 将#去掉,并修改成你想要的域名或者IP 我的配置是:ServerName http://10.10.100.200 还有一处是: Options FollowSymLinks AllowOverride None Order deny,allow Allow from all --这边之前是Deny from all,当然也可以根据需要进行配置 至此关于apache的配置完毕,祝大家旅途愉快 2、 nagios的配置为了实现对远程主机的监控,必须借助于nrep功能的强大,用来监控其它服务器,下面就关于nrep的安装和配置进行简单的记录,如下是我的操作过程:在配置这个之前一定要留意有关nagios的配置文件都是nagios.nagios用户组的,否则后面会出现问题 3.1 监控服务器A的配置 3.1.1 安装nrep tar zxvf nrpe-2.12.tar.gz cd nrpe-2.12 ./configure --prefix=/usr/local/nagios make all make install-plugin chown -R nagios.nagios /usr/local/nagios/ 3.1.2 nagios的配置 A:nagios.cfg主配置文件的配置 cfg_file=/usr/local/nagios/etc/objects/commands.cfg cfg_file=/usr/local/nagios/etc/objects/contacts.cfg cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg cfg_file=/usr/local/nagios/etc/objects/templates.cfg cfg_file=/usr/local/nagios/etc/objects/hosts.cfg cfg_file=/usr/local/nagios/etc/objects/services.cfg cfg_file=/usr/local/nagios/etc/objects/contactgroup.cfg cfg_file=/usr/local/nagios/etc/objects/localhost.cfg #cfg_file=/usr/local/nagios/etc/objects/windows.cfg B:command.cfg命令定义文件中添加NRPE命令。 [root@KCentOS5C ~]# vi /usr/local/nagios/etc/objects/commands.cfg # NRPE Command define command{ command_name nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } C:在hosts.cfg添加远程主机 define host { host_name smstest alias smstest server address 10.10.100.164 check_command nrpe!check_load max_check_attempts 5 notification_interval 10 notification_period 24x7 notification_options d,u,r contact_groups admins } D:在services.cfg添加服务配置,这边只添加了对负载进行了监控 define service { host_name smstest service_description Load Using Of Remote System check_period 24x7 max_check_attempts 4 normal_check_interval 3 retry_check_interval 2 contact_groups admins notification_interval 10 notification_period 24x7 notification_options w,u,c,r check_command nrpe!check_load } E:contacts.cfg配置联系人信息 define contact{ contact_name nagiosadmin use generic-contact alias Nagios Admin service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email email zhiliang.jiang@sinofriends.com } define contact{ contact_name hexin use generic-contact alias Test Admin service_notification_commands notify-service-by-sendmsg host_notification_commands notify-host-by-sendmsg email xin.he@sinofriends.com } F:配置联系人组信息contactgroup.cfg define contactgroup{ contactgroup_name admins alias Nagios Administrators members nagiosadmin,hexin } G:时间段配置timeperiods.cfg,这边是7*24小时的监控,不管什么时候出问题了都报警 define timeperiod{ timeperiod_name 24x7 alias 24 Hours A Day, 7 Days A Week sunday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 } 当配置完以后,通过下面的命令进行上下文配置信息的检查 /usr/local/nagios/bin/nagios v /usr/local/nagios/etc/nagios.cfg 如果没有出现警告和错误,表示配置成功 Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check 3.1.3 启动nagios chkconfig --add nagios chkconfig nagios on service nagios stop service nagios start 或者使用命令直接启动 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg 3.2 被监控服务器B(LINUX)的配置需要安装nrep和nagios-plugin 3.2.1 编译安装 tar zxvf nrpe-2.12.tar.gz cd nrpe-2.12 ./configure make all make install-plugin make install-daemon make install-daemon-config ll /usr/local/nagios/ 看下是不是有文件了&_& 3.2.2 配置nrep.cfg vi /usr/local/nagios/etc/nrpe.cfg #server_address=0.0.0.0 server_address=10.10.100.164 #这是被控端IP地址,在我的环境中就是10.10.100.164 设定系统监听NRPE的网络接口。一般设定具体的IP地址,如果要多个网卡的话就用逗号“,”来分隔多个IP地址。如果要监听系统全部的网络接口的话,可以使用“0.0.0.0”这个表示全部网络接口的特殊地址,但是不可以用通配符“*”。 allowed_hosts=10.10.100.200 #这是允许监控服务器IP地址确认有下面的命令,也是要实现的功能,当不了解这些插件的命令参数的时候,可以使用例如 /usr/local/nagios/libexec/cmd –h 查看帮助 command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1 command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 3.2.3 运行守护进程 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d 3.2.4 查看运行是否成功 ps aux | grep nrpe 或者netstat -anp | grep nrpe 3.2.5 将NRPE加入系统启动脚本中 echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.d/rc.local 3.3 被监控服务器C(windows)的配置 在用Nagios监控Windows机器的私有服务之前,需要先在机器上安装代理程序。推荐使用NSClient++外部构件,它可以在http://nsclient.org/nscp/downloads找到。如下指令可以安装一个基本的NSClient++外部构件,同时也配置好Nagios来监控这台Windows机器。 3.3.1 C服务器下载安装软件包 从http://nsclient.org/nscp/downloads站点下载最新稳定版的NSClient++软件包; 展开软件包到一个目录下,如C:/NSClient++; 打开一个命令行窗口并切换到C:/NSClient++目录下; 用下面命令将NSClient++系统服务注册到系统里: nsclient++ /install 3.3.2 C服务器配置NSC.INI 编辑NSC.INI 文件(位于C:/NSClient++目录)并做如下修改: 去掉在[modules]段里的列出模块程序的注释,除了 CheckWMI.dll 和RemoteConfiguration.dll; 最好是修改一下在[Settings]段里的'password'选项,加强安全认证; 去掉在[Settings]段里的'allowed_hosts'选项注释,把Nagios 服务所在主机的IP 加到这一行里,或是置为空,让全部主机都可以联入; 确认一下在[NSClient]段里的'port'选项里已经去掉注释并设置成'12489'(默认端口);参考附件: 3.3.3 C服务器启动NSClient++服务 nsclient++ /start 3.3.4 C服务器检查服务是否启动通过使用netstat –an就可以看到12489和5666端口是否已经启动了,当有防火墙的时候,要记得过滤这二个端口 3.3.5 A服务器编辑Nagios 的主配置文件 vi /usr/local/nagios/etc/nagios.cfg 把下面这行最前面的#号去掉: #cfg_file=/usr/local/nagios/etc/objects/windows.cfg 3.3.6 A服务器修改主机和服务的配置文件 vi /usr/local/nagios/etc/objects/windows.cfg 参考附件: 3.3.7 A服务器修改commands.cfg 如果想指定保存在Windows 机器上NSClient++配置文件里的口令,可以修改check_nt 命令定义,让它带着口令。编辑方式打开commands.cfg 文件。 vi /usr/local/nagios/etc/commands.cfg 修改check_nt 命令的定义,带上"-s "命令参数(这里的PASSWORD 要换成你Windows 机器的真正口令),象这样: define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$ } 3.3.8 A服务器重启nagios Service nagios stop Service nagios start 3、 邮件报警的实现邮件报警的相对比较简单,这些都是在监控服务器A中的配置,涉及的文件有commands.cfg和contacts.cfg文件本文中因为linux自带mail命令不能使用,特使用sendmail程序: tar zxvf sendEmail-v1.56.tar.gz cd sendEmail-v1.56 cp sendEmail /usr/local/bin/ ll /usr/local/bin/sendEmail #确定sendmail有可执行权限 -rwxr-xr-x 1 root root 80213 Jun 21 15:38 /usr/local/bin/sendEmail 测试: -f 表示from,发件人地址 -t 表示to,收件人地址 -s mail服务器域名 -u 主题 -xu 用户名(@之前的) -xp 用户密码 -m 纯文本信息 -o message-file=/root/.. 发送文件中的内容 -a 发送附件 (-m,-o,-a可以同时使用) /usr/local/bin/sendEmail -f chi_xiaohui@163.com -t 13627498993@139.com -s smtp.163.com -u "from nagios" -xu chi_xiaohui -xp 891220 -m Thankyou! 4.1 commands.cfg配置 Vi /usr/local/nagios/etc/objects/commands.cfg define command{ command_name notify-host-by-email command_line /usr/bin/printf "%b" "***** Nagios *****/n/nNotification Type: $NOTIFICATIONTYPE$/nHost: $HOSTNAME$/nState: $HOSTSTATE$/nAddress: $HO STADDRESS$/nInfo: $HOSTOUTPUT$/n/nDate/Time: $LONGDATETIME$/n" | /usr/local/bin/sendEmail -f chi_xiaohui@163.com -t 15024483016@139.com –s smtp.163.com -u "from nagios" - xu tengjunhu -xp ****** -m "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ } 4.2 contacts.cfg配置 Vi /usr/local/nagios/etc/objects/contacts.cfg define contact{ contact_name nagiosadmin use generic-contact alias Nagios Admin service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email email zhiliang.jiang@sinofriends.com } 说明:当有多种报警方式的时候,将其合在一起,以逗号隔开,如下例: define contact{ contact_name nagiosadmin use generic-contact alias Nagios Admin service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email email zhiliang.jiang@sinofriends.com }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值