本周的工作是做 Nagios 监控系统的初期调研,看了大量的网上资料,我初步确定 Nagios 的功能确实很强大,相比之前我搭建的 Cacti 监控系统,Nagios 监控服务器的状态更强大,并且报警功能也很不错,但对像流量这样的持续数据的展现能力却比较弱,不像 Cacti 监控系统将服务器的点状态和线状态都清晰的展现出来。所以我的研究表明,公司同时使用这两种监控系统是有必要的,而且我从网上找到了一种将 Nagios 整合到 Cacti 监控系统中的方法,如果这个方法行得通的话,公司的监控系统就完美了!具体的实现方法我会在自己测试后以博文的形式发布到我的博客里,下面就请大家跟我一起开始 Nagios 的安装旅程吧!
- 建立安装所需的系统用户和组,其中创建的 nagcmd 组用于从 Web 接口执行外部命令,所以需要将 Apache 服务的执行用户加入到该组中去。
 [root@pubservicedb nagios]# groupadd -g 9000 nagios
 [root@pubservicedb nagios]# groupadd -g 9001 nagcmd
 [root@pubservicedb nagios]# useradd -u 9000 -g nagios -G nagcmd -s /sbin/nologin -c “Nagios Admin” nagios
 [root@pubservicedb nagios]# grep “^User” /usr/local/apache/conf/httpd.conf
 User daemon
 [root@pubservicedb nagios]# usermod -G nagcmd daemon
- 编译 Nagios 源程序包
 [root@pubservicedb nagios-3.2.3]# ./configure –with-command-group=nagcmd –with-httpd-conf=/usr/local/apache/conf/conf.d/ –with-gd-lib=/usr/local/lib/ –with-gd-inc=/usr/local/includechecking for a BSD-compatible install… /usr/bin/install -c
 … …
 checking for mail… /bin/mail
 We’ll use default routines (in xdata/xsddefault.*) for status data I/O…
 We’ll use default routines (in xdata/xcddefault.*) for comment data I/O…
 We’ll use default routines (in xdata/xrddefault.*) for retention data I/O…
 We’ll use template-based routines (in xdata/xodtemplate.*) for object data I/O…
 We’ll use default routines (in xdata/xpddefault.*) for performance data I/O…
 We’ll use default routines (in xdata/xdddefault.*) for scheduled downtime data I/O…
 checking ltdl.h usability… no
 … …
 config.status: creating include/cgiutils.hCreating sample config files in sample-config/ … *** Configuration summary for nagios 3.2.3 10-03-2010 ***: General Options: 
 ————————-
 Nagios executable: nagios
 Nagios user/group: nagios,nagios
 Command user/group: nagios,nagcmd
 Embedded Perl: no
 Event Broker: yes
 Install ${prefix}: /usr/local/nagios
 Lock file: ${prefix}/var/nagios.lock
 Check result directory: ${prefix}/var/spool/checkresults
 Init directory: /etc/rc.d/init.d
 Apache conf.d directory: /etc/httpd/conf.d
 Mail program: /bin/mail
 Host OS: linux-gnuWeb Interface Options: 
 ————————
 HTML URL: http://localhost/nagios/
 CGI URL: http://localhost/nagios/cgi-bin/
 Traceroute (used by WAP): /bin/tracerouteReview the options above for accuracy. If they look okay, 
 type ‘make all’ to compile the main program and CGIs.[root@pubservicedb nagios-3.2.3]# make all 
 [root@pubservicedb nagios-3.2.3]# make install
- 安装 Nagios 二进制程序、初始化脚本、配置文件示例并设置运行目录权限
 [root@pubservicedb nagios-3.2.3]# make install
 [root@pubservicedb nagios-3.2.3]# make install-init
 /usr/bin/install -c -m 755 -d -o root -g root /etc/rc.d/init.d
 /usr/bin/install -c -m 755 -o root -g root daemon-init /etc/rc.d/init.d/nagios*** Init script installed ***[root@pubservicedb nagios-3.2.3]# make install-config 
 /usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc
 /usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc/objects
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/nagios.cfg /usr/local/nagios/etc/nagios.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/cgi.cfg /usr/local/nagios/etc/cgi.cfg
 /usr/bin/install -c -b -m 660 -o nagios -g nagios sample-config/resource.cfg /usr/local/nagios/etc/resource.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/templates.cfg /usr/local/nagios/etc/objects/templates.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/commands.cfg /usr/local/nagios/etc/objects/commands.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/contacts.cfg /usr/local/nagios/etc/objects/contacts.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/timeperiods.cfg /usr/local/nagios/etc/objects/timeperiods.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/localhost.cfg /usr/local/nagios/etc/objects/localhost.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/windows.cfg /usr/local/nagios/etc/objects/windows.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/printer.cfg /usr/local/nagios/etc/objects/printer.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/switch.cfg /usr/local/nagios/etc/objects/switch.cfg*** Config files installed *** Remember, these are *SAMPLE* config files. You’ll need to read 
 the documentation for more information on how to actually define
 services, hosts, etc. to fit your particular needs.[root@pubservicedb nagios-3.2.3]# make install-commandmode 
 /usr/bin/install -c -m 775 -o nagios -g nagcmd -d /usr/local/nagios/var/rw
 chmod g+s /usr/local/nagios/var/rw*** External command directory configured *** [root@pubservicedb nagios-3.2.3]# 
- 客户化配置,将 contacts.cfg 配置文件中的 Email 信息修改为系统管理员的 Email 地址
 [root@pubservicedb nagios-plugins-1.4.15]# vi /usr/local/nagios/etc/objects/contacts.cfg
- 配置 Web 接口
 [root@pubservicedb nagios-3.2.3]# make install-webconf
 /usr/bin/install -c -m 644 sample-config/httpd.conf /usr/local/apache/conf/conf.d//nagios.conf*** Nagios/Apache conf file installed ***[root@pubservicedb nagios-3.2.3]# /usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 
 New password:
 Re-type new password:
 Adding password for user nagiosadmin
- 重启 httpd 服务
 [root@pubservicedb nagios-3.2.3]# /usr/local/apache/bin/apachectl -k restart
 httpd: Could not reliably determine the server’s fully qualified domain name, using 10.10.6.201 for ServerName
 [root@pubservicedb nagios-3.2.3]#
- 编译并安装 Nagios 插件源代码包
 [root@pubservicedb nagios]# tar -zxf nagios-plugins-1.4.15.tar.gz
 [root@pubservicedb nagios]# cd nagios-plugins-1.4.15
 [root@pubservicedb nagios-plugins-1.4.15]# ./configure –with-nagios-user=nagios –with-nagios-group=nagios
 [root@pubservicedb nagios-plugins-1.4.15]# make
 [root@pubservicedb nagios-plugins-1.4.15]# make install
- 配置 Nagios 服务
 [root@pubservicedb nagios-plugins-1.4.15]# chkconfig –add nagios
 [root@pubservicedb nagios-plugins-1.4.15]# chkconfig nagios on
- 验证 Nagios 示例配置文件
 [root@pubservicedb nagios-plugins-1.4.15]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfgNagios Core 3.2.3
 Copyright (c) 2009-2010 Nagios Core Development Team and Community Contributors
 Copyright (c) 1999-2009 Ethan Galstad
 Last Modified: 10-03-2010
 License: GPLWebsite: http://www.nagios.org 
 Reading configuration data…
 Read main config file okay…
 Processing object config file ‘/usr/local/nagios/etc/objects/commands.cfg’…
 Processing object config file ‘/usr/local/nagios/etc/objects/contacts.cfg’…
 Processing object config file ‘/usr/local/nagios/etc/objects/timeperiods.cfg’…
 Processing object config file ‘/usr/local/nagios/etc/objects/templates.cfg’…
 Processing object config file ‘/usr/local/nagios/etc/objects/localhost.cfg’…
 Read object config files okay…Running pre-flight check on configuration data… Checking services… 
 Checked 8 services.
 Checking hosts…
 Checked 1 hosts.
 Checking host groups…
 Checked 1 host groups.
 Checking service groups…
 Checked 0 service groups.
 Checking contacts…
 Checked 1 contacts.
 Checking contact groups…
 Checked 1 contact groups.
 Checking service escalations…
 Checked 0 service escalations.
 Checking service dependencies…
 Checked 0 service dependencies.
 Checking host escalations…
 Checked 0 host escalations.
 Checking host dependencies…
 Checked 0 host dependencies.
 Checking commands…
 Checked 24 commands.
 Checking time periods…
 Checked 5 time periods.
 Checking for circular paths between hosts…
 Checking for circular host and service dependencies…
 Checking global event handlers…
 Checking obsessive compulsive processor commands…
 Checking misc settings…Total Warnings: 0 
 Total Errors: 0Things look okay – No serious problems were detected during the pre-flight check 
 [root@pubservicedb nagios-plugins-1.4.15]#
- 启动 Nagios 服务
 [root@pubservicedb nagios-plugins-1.4.15]# service nagios start
 Starting nagios:This account is currently not available.
 done.
 [root@pubservicedb nagios-plugins-1.4.15]# service nagios status
 nagios (pid 20180) is running…
 [root@pubservicedb nagios-plugins-1.4.15]#
- 关于 SELinux 的相关设置
 如果你所用的 Linux 系统开启了 SElinux 设置,那么这会使你在尝试访问 Nagios 的 CGI 时导致一个“内部服务错误”消息。你可以更改 /etc/sysconfig/selinux 文件,设置为 disabled 然后重启系统,通过彻底关闭该功能来避免上述问题。
 当然,你也可以通过让 CGI 模块在 SELinux 模式下制定强制目标模式来解决该问题,方法如下:# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
 # chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
- 登录 Web 接口
 在浏览器中浏览 http://host_ip/nagios/ 根据提示输入之前设置的用户名和口令即可访问 Nagios Web 界面。
- 大功告成!
总的来说,我安装 Nagios 的过程没有安装 Cacti 时那么曲折,但这并不意味着 Nagios 的安装步骤简单容易,而是因为很多东西,比如 libpng, libjpeg, libgd, Apache 等组件,我之前安装 Cacti 时都安装过了,如果有朋友在安装 Nagios 的过程中遇到了上述组件的安装困难的话,请参考这篇 文章 来解决。安装好 Nagios 后,我接下来的工作就是研究 Nagios 的基本配置以及相关监控插件的使用,我会在我的博客上及时更新我的学习过程的。请感兴趣的朋友常来我的博客看看!(#^_^#)
转载请注明:爱开源 » 在 RHEL 5.5 下配置 Nagios 3.2.3