Nagios的功能是监控服务和主机,但其自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成。启动Nagios后,它会周期性的调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首读取信息,进行处理后,再把状态通过web展现出来。
这就是所谓的被动模式,经常用于监控主机的系统资源,比如系统负载、磁盘使用率、内存使用率、网络状态、系统进程数等等。
另一种是主动模式,主要是nagios服务器主动去获取数据,常用于探测URL的监控和服务状态监控。
相比于主动模式中服务器去被监控主机上轮询获取监控数据的方式,这样的最大优势是避免除了数据处理工作以外的其他工作都放在了被监控主机上(包括数据传输),避免了被监控主机量大时,一次轮询时间过长而导致监控反应延迟,这也是被动模式能够承担更大监控量的关键。
Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态,安装完成后,在nagios目录下的/libexec里放nagios自带的可以使用的所有插件,如check_disk是检查磁盘空间的插件,check_load是检查CPU负载的插件。每一个插件都可通过运行./check_xxx -h命令来查看其使用方法和功能。
一、部署环境 主机操作系统IP地址主要软件Nagios CentOS7.3 x86_64 192.168.144.112 Nagios4.0.1、nagios-plugins-1.5、LAMP环境
被监控主机 centos7.3 x86_64 192.168.144.111
二、Nagios服务主机部署 1、首先准备LAMP环境
由于被动模式数据进过处理后需要通过web界面呈现出来,因此在nagios服务主机上需要LAMP环境支持。
yum install -y \ httpd \ mariadb-server mariadb \ php \ php-mysql \ php-gd \ libjpeg* \ php-ldap \ php-odbc \ php-pear \ php-xml \ php-xmlrpc \ php-mhashvim /etc/httpd/conf/httpd.conf
ServerName ... AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps ... DirectoryIndex index.html index.php关闭防火墙和SELinux,启动服务
systemctl stop firewalld.service
setenforce 0
systemctl start httpd
systemctl start mariadb.service
yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel
useradd -s /sbin/nologin nagios
mkdir /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios
ll -d /usr/local/nagios/ 查看权限
3、解压软件包,执行安装tar zxvf nagios-4.0.1.tar.gz -C /opt/
cd /opt/nagios-4.0.1/
./configure --prefix=/usr/local/nagios
chkconfig --add /etc/rc.d/init.d/nagios
chkconfig --level 35 nagios on
chkconfig --list nagios
为验证编译是否完整成功,需要检查/usr/local/nagios/下是否存在etc、bin、sbin、share、var 这五个目录
4、编译安装插件模块tar xvzf nagios-plugins-1.5.tar.gz -C /opt
cd /opt/nagios-plugins-1.5
./configure --prefix=/usr/local/nagios 安装插件模块,注意放入nagios安装目录中
make && make install
vim /etc/httpd/conf/httpd.conf
找到: User apache Group apache 修改为 User nagios Group nagios ... 为了安全起见,一般情况下要让nagios 的web 监控页面必须经过授权才能访问, 这需要增加验证配置,即在httpd.conf 文件最后添加如下信息: #setting for nagios ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> //监控页面控制权限验证 AuthType Basic Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthUserFile /usr/local/nagios/etc/htpasswd //验证账户密码存放位置 Require valid-user </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> //监控页面访问验证 AuthType Basic Options None AllowOverride None Order allow,deny Allow from all AuthName "nagios Access" AuthUserFile /usr/local/nagios/etc/htpasswd //验证账户密码存放位置 Require valid-user </Directory>设置完访问验证设置后,需要设置验证的账户密码
利用htpasswd在/usr/local/nagios/etc/htpasswd生成jack账户并设定密码
htpasswd -c /usr/local/nagios/etc/htpasswd jack
cat /usr/local/nagios/etc/htpasswd
jack:$apr1$DR0SjMa5$trumMzpqj./BA15Iswx2g0