Nagios是一个监视系统运行状态和网络信息的监视系统。能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。以上来源于百度百科。
我这次是自己花费了很长时间不断的摸索才最后完成了这个监控系统的安装。安装测试环境是DigitalOcean和搬瓦工。其中DigitalOcean的Web环境可以自己源码安装,但是搬瓦工多IP的环境下源码安装以后Nagios服务启动但是在web上检测不到,只能通过yum安装的才能正常。
安装必要插件
首先是先检测安装必要的环境。
rpm -q gcc glibc gcc-c++ glibc-common gd gd-devel xinetd openssl-devel wget make perl libxml2 libxml2-devel mysql-devel autoconf automake zlib zlib-devel net-snmp ?screen
这里检测到没有安装screen,所以首先安装这个,然后在运行,以免后面安装过程中遇到网络问题掉线。
yum -y install screen
screen -S nagios
接下来就是安装未安装的环境。
yum -y install gcc glibc gcc gcc-c++ glibc-common gd gd-devel xinetd openssl-devel wget make perl libxml2 libxml2-devel mysql-devel autoconf automake zlib zlib-devel net-snmp
重新检测安装情况。
rpm -q gcc glibc gcc-c++ glibc-common gd gd-devel xinetd openssl-devel wget make perl libxml2 libxml2-devel mysql-devel autoconf automake zlib zlib-devel net-snmp ?screen
安装Web环境
接下来就是安装Web环境。Apache的环境推荐使用yum安装。
yum -y install httpd
检测安装情况。
rpm -q httpd
接下来看看是否关闭了SELinux,我这里是本身就关掉的。
下载安装php环境。因为Nagios的Web页面就是php的,而且Nagios的检测结果也是用php输出的。
wget http://us2.php.net/distributions/php-5.5.27.tar.gz tar zxvf php-5.5.27.tar.gz cd php-5.5.27
配置安装环境,我附的图写的不完全,后面会遇到相关问题。
./configure --prefix=/usr/local/php --with-gd --with-zlib --with-config-file-path=/usr/local/php/etc --enable-sockets --enable-fpm --with-curl
make && make install
安装完毕。
最后在 Apache 配置文件
/etc/httpd/conf/httpd.conf
中找到
DirectoryIndex index.html
将其修改为:
DirectoryIndex index.html index.php
并增加以下内容
AddType application/x-httpd-php .php
安装Nagios
首先建立Nagios用户及安装文件夹
useradd -s /sbin/nologin nagios mkdir /usr/local/nagios chown -R nagios.nagios /usr/local/nagios
首先下载下来源码
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.8.tar.gz
接下来就是解压和配置安装环境。
tar -zxvf nagios-4.0.8.tar.gz cd nagios-4.0.8
需要注意的是,4.08有个小bug,需要下载一个补丁文件打上去,否则message日志报错"wproc: Unknown job type: 10"。
从以下页面下载补丁文件,然后把补丁文件上传到nagios-4.0.8文件夹中。
http://tracker.nagios.org/file_download.php?file_id=205&type=bug
再运行以下命令安装,如果提示命令不存在,请运行
yum -y install patch
安装。
patch -p1 <bogus_warnings.patch
补丁打好以后就可以运行安装环境了
./configure --prefix=/usr/local/nagios --with-command-group=nagios
安装环境运行完毕。
开始安装。首先运行
make all
接下来运行以下命令
make install make install-init make install-config make install-commandmode
安装完成之后,运行
ls /usr/local/nagios 在/usr/local/nagios目录下如果能够看到这些目录:etc、bin、sbin、share、var 这五个目录,如果存在则可以表明程序被正确的安装到系统了。 接下来就是把nagios注册成系统服务:
chkconfig --add nagios chkconfig --level 35 nagios on chkconfig --list nagios
将以下写入
/etc/httpd/conf/httpd.conf
文件中
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
# SSLRequireSSL
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/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
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>
然后启动Apahce服务
service httpd restart
输入http://IP/nagios/就可以看到Nagios的页面了,不过服务还没有启动。
接下来为了安装还要配置访问密码(Nicky可以换成自己的名字)
/usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users Nicky chown nagios.nagios /usr/local/nagios/etc/htpasswd.users chown -R nagios.nagios /usr/local/nagios
最后刷新网站的时候就需要登陆了,因为我前面设置的是自己的名字,所以就要用自己的名字登陆。
最后启动Nagios服务就可以了。
service nagios start
启动以后其实只是一个Web界面启动了,实际监控的工作还是要交给插件。所以我们还必须重新安装插件。
tar zxvf nagios-plugins-2.0.3.tar.gz cd nagios-plugins-2.0.3 ./configure --prefix=/usr/local/nagios make && make install
是因为nagios默认把全部的权限给nagiosadmin,所以可以通过修改cgi.cfg文件赋予Nicky权限,切换到
/usr/local/nagios/etc
目录下
修改cgi.cfg
default_user_name=nagiosadmin,Nicky authorized_for_system_information=nagiosadmin,Nicky authorized_for_configuration_information=nagiosadmin,Nicky authorized_for_system_commands=nagiosadmin,Nicky authorized_for_all_services=nagiosadmin,Nicky authorized_for_all_hosts=nagiosadmin,Nicky authorized_for_all_service_commands=nagiosadmin,Nicky authorized_for_all_host_commands=nagiosadmin,Nicky
最后重新服务,就可以看到本机的监控效果了。
service nagios restart
我这里因为swap没有分配,是0,所以会有一个报警。但是其他监控是正常的。
本文作者为Nicky,转载请注明。