User Management -> "admin" or "other user" -> "Realm Permissions" -> "View Monitoring" -> 打勾并保存
#chown -R daemon configs #设置configs目录所属主为:daemon(这里得用ps -ef | grep httpd查看一下apache是以谁的身份启动的)
四、安装Nagios(
1、Nagios是怎么实现监控的
1)Nagios服务器对Windows客户端的监控,如下图
![]()
(1)Nagios服务器想监控安装有windows系统的主机,那么windows主机必须安装NSClient++这个组件
(2)其次,Nagios服务器使用check_nt(
属于:nagios-plugins安装包,如果使用RPM方式安装,那么位于:/usr/lib/nagios/plugins)来对windows主机进行监控
2)Nagios服务器对linux客户端的监控,如下图
(1)Nagios服务器想监控安装有linux系统的主机,那么linux主机必须安装nrpe这个插件(例如:nagios-nrpe的RPM包)
(2)其次,Nagios服务器使用check_nrpe(
属于:nagios-plugins安装包,如果使用RPM方式安装,那么位于:/usr/lib/nagios/plugins)来对linux主机进行监控
---------------------------------------------------------------------------------
2、Nagios软件的安装
1)安装依赖包
#rpm -q httpd gcc glibc glibc-common gd gd-devel #检查一下这些包是否已经安装
#yum install httpd gcc glibc glibc-common gd gd-devel
2)安装nagios及nagios-plugins
#wget #wget #groupadd nagcmd
#useradd -G nagcmd -s /sbin/nologin nagios
#usermod -G nagcmd daemon
#把daemon加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限#passwd nagios
(1)安装nag
ios(#tar zxvf nagios-3.2.1.tar.gz && cd nagios-3.2.1
#./configure --prefix=
/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd-conf=/lamp/web/apache/etc/extra --with-gd-lib --with-gd-inc --enable-event-broker --enable-embedded-perl
#make all
#make install #安装the main program, CGIs, and HTML files
#make install-init #安装启动脚本到/etc/init.d/
#make install-commandmode #安装和设置permissions on the directory for holding the external command file
#make install-config #安装初始配置文件到/usr/local/nagios
#make install-webconf #安装the Apache config file for the Nagios web interface
#chkconfig --add nagios #把nagios添加为系统服务并将之加入到自动启动服务队列
(2)安装nagios-plugins(#nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件#yum install fping perl-Net-SNMP qstat #呵呵,这一步可以不要
#tar zxvf nagios-plugins-1.4.14.tar.gz
#cd nagios-plugins-1.4.14
#./configure --prefix=
/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --enable-extra-opts --enable-perl-modules --enable-libtap --with-openssl --with-perl=/usr/bin/perl --with-mysql=/lamp/database/mysql
注意:nagios-plugins与nagios要安装在同一个目录#make && make install
说明:也可以使用yum install nagios nagios-plugins进行安装,但是使用这种安装方式,相关的用户账户(例如:nagios)都会自动创建3)配置nagios与apache,只让授权的用户访问
#为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户
# vi /usr/local/nagios/etc/objects/contacts.cfg
email nagios@localhost #这个是默认设置
#htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin#cat /usr/local/nagios/etc/htpasswd.users #查看一下论证文件
nagiosadmin:k4MOQhzhwUgt6#vi /usr/local/nagios/etc/cgi.cfg #配置cgi.cfg配置文件,确认以下使用的用户认证为nagiosadmin
use_authentication=1 #启用身份认证
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin#mv /lamp/web/apache/etc/extra/nagios.conf /lamp/web/apache/etc/extra/httpd-nagios.conf
#vi /lamp/web/apache/etc/extra/httpd-nagios.conf
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
# SSLRequireSSL
Options ExecCGI
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.1.0/24
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
Alias /nagios "/usr/local/nagios/share"
# SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.1.0/24
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
#vi /lamp/web/apache/etc/httpd.conf,增加如下一行
Include etc/extra/httpd-nagios.conf注意:为了nagios系统的安全,建议您使用信息摘要强认证模式(如MD5),强制使用web的TSL/SSL安全通讯模式,并且通过访问控制列表设定能访问nagios的web界面的客户端地址4)检查nagios的配置文件(/etc/negios/目录下)
#echo "/usr/local/lib/" >> /etc/ld.so.conf
#echo "/lamp/database/mysql/lib/mysql/" >> /etc/ld.so.conf
#ldconfig
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg #检查一下nagios的主配置文件有没有语法错误
(如果有出现*.so找不到,那么可以自己搜索一下,然后使用ldconfig XXXX/lib)
Total Warnings: 0
Total Errors: 0
说明:如果出现上面这两行的值都是0,那么表示配置文件没有出错
5)设置nagios服务
#chkconfig nagios off
#chkconfig --level 3 nagios on
#service nagios start
#/usr/local/nagios/bin/nagiostats #显示nagios当前运行的情况
6)配置selinux
#如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。可以通过下面的命令来检查您的系统是否开启了selinux
#getenforce
#如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭
#setenforce 0
如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可
当然,您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:
# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
# chcon -R -t httpd_sys_content_t /usr/local/nagios/share
---------------------------------------------------------------------------------
3、Nagios整合到Cacti
1)安装Nagios Plugin for Cacti(NPC)插件()
作用:将nagios的数据通过ndo2db导入到mysql数据库,然后cacti读取数据库信息将nagios的结果通过NPC展示出来首先:安装NPC
#wget #tar zxvf npc-2.0.4.tar.gz
#mv npc /lamp/cacti/plugins/
#vi /lamp/cacti/include/config.php,在该文件中的"$plugins = array()"后增加如下一行内容
$plugins[] = 'npc';
最后:根据新旧版本插件,进行设置
其次:安装php-json(
#wget #tar zxvf json-1.2.1.tgz && cd json-1.2.1
#/usr/bin/phpize && ./configure --with-php-config=/lamp/web/php/bin/php-config --enable-shared --enable-static --with-json && make && make install
#service httpd restart
![]()
注意:如果没有加载json,那么得vi /lamp/web/php/etc/php.ini,增加或者修改如下
extension_dir = "/lamp/web/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension = "json.so"说明:如果您是使用RPM方式安装php,那么一些动态的扩展是自动被加入的,这些动态扩展 在:/etc/php.d/*.ini这些文件,这里确认一下json.ini文件有这一行内容:extension=json.so;同时还要确认一下 /usr/lib/php/modules目录下有没有json.so文件,如果没有的话,要手动复制一份到这个目录,这样才能确保json.ini起作 用2)下载并安装NDoutilsNDoutils作用:把Nagios的数据写到mysql,所以它是集成nagios到cacti的关健的一部分
#wget
#tar zxvf ndoutils-1.4b9.tar.gz
#cd ndoutils-1.4b9
#编译之前做一上有关mysql库文件的软链接#ln -s /lamp/database/mysql/include/* /usr/include/
#ln -s /lamp/database/mysql/lib/* /usr/lib/
#./configure --with-mysql=/lamp/database/mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios --with-ssl --with-ssl-inc --with-ssl-lib --enable-mysql --enable-ssl
#make
(注意:这里不需要make install)#cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo} /usr/local/nagios/bin
注意:以上复制的文件中前两项是版本相关的,即如果您的nagios主版本号是2系列,则需要拷贝名为ndomod-2x.o和ndo2db-2x的两个文件,而后两项是通用文件,无论哪个版本都需要复制2)复制、编辑相关的配置文件#cd ndoutils-1.4b9
#cp -v config/{ndo2db.cfg-sample,ndomod.cfg-sample} /usr/local/nagios/etc
#mv /usr/local/nagios/etc/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
#mv /usr/local/nagios/etc/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
#chmod 0664 /usr/local/nagios/etc/{ndo2db.cfg,ndomod.cfg}
#chown nagios:nagios /usr/local/nagios/etc/{ndo2db.cfg,ndomod.cfg}
#vi /usr/local/nagios/etc/nagios.cfg,然后在该配置文件中添加或者修改如下几行内容
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
event_broker_options=-1 #为Nagios开启event broker
check_external_commands = 1
command_check_interval = -1process_performance_data = 13)编辑ndo2db守护进程和ndomod的配置文件
# vi /usr/local/nagios/etc/ndo2db.cfg,修改如下内容
lock_file=/usr/local/nagios/var/ndo2db.lock
ndo2db_user=nagios
ndo2db_group=nagios
socket_type=tcpsocket_name=/usr/local/nagios/var/ndo.sock
tcp_port=5668
use_ssl=0
db_servertype=mysql
db_host=localhost
db_port=3306
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=2010max_timedevents_age=1440
max_systemcommands_age=10080
max_servicechecks_age=10080
max_hostchecks_age=10080
max_eventhandlers_age=44640
max_externalcommands_age=44640
debug_level=1
debug_verbosity=1
debug_file=/usr/local/nagios/var/ndo2db.debug
max_debug_file_size=1000000
说明如下:
(1)以上以"db_"开头的选项用来指定连接数据库的属性
(2)其默认用来接收数据的方式为Unix域套接字,这里修改成了TCP套接字;同时ndomod.cfg配置文件中指定的输出方式也应该做相应的修改
(3)由于要整合cacti,所以这设置为:
db_name=cacti,
db_prefix=npc_,db_user=cacti,db_pass=2010#接着编辑ndomod的配置文件,为其指定数据的输出方式和输出目标主机
# vi /usr/local/nagios/etc/ndomod.cfg
instance_name=default
output_type=tcpsocket
output=127.0.0.1
tcp_port=5668
use_ssl=0
output_buffer_items=5000
buffer_file=/usr/local/nagios/var/ndomod.tmp
file_rotation_interval=14400
file_rotation_timeout=60
reconnect_interval=15
reconnect_warning_interval=15
data_processing_options=-1
config_output_options=2
4)启动NDoutils和Nagios#/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
#service nagios restart
#echo "/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg" >>/etc/rc.local