1. Nagios 和 NagiosQL简介
2. Nagios+NagiosQL搭建环境说明
3. Nagios、Nagios-plugins和NagiosQL的安装
4. 配置NagiosQL的前端页面
5. 根据需求实现监控php
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。html
NagiosQL是专为nagios设计的web图形化管理应用,主要做用就是操做数据库和配置文件,其中包括将配置文件的信息写到数据库中,在数据库中修改Nagios的监控配置信息,并将数据库中存放的配置更新到文件中。用户能够经过NagiosQL提供的Web页面直观的修改配置。实现架构很简单,功能很实用。前端
root@nagios:~# cat /etc/issue Ubuntu 16.04.4 LTS \n \l
root@nagios:~# uname -a Linux nagios-cacti.115rc.com 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
一、此安装方法只针对Ubuntu 16.04及Ubuntu 14.04版本,如果CentOS请参考Nagios的官方文档。 二、因为nagios官网默认使用的是 Apache Web Server,此文档使用的是Nginx Web Server。
sudo apt-get install unzip sudo apt-get install -y autoconf gcc libc6 libmcrypt-dev make libssl-dev wget bc gawk dc build-essential snmp libnet-snmp-perl gettext
sudo apt-get update
build-essential
包(编译程序必须的软件包):能够从source中获取nagios
和nagios-pluguns
;sudo apt-get install build-essential
sudo apt-get install nginx -y sudo service nginx status
libgd2-xpm-dev
, php5-fpm
, spawn-fcgi
and fcgiwrap
;sudo apt-get install libgd2-xpm-dev -y sudo apt-get install php5-fpm -y sudo apt-get install spawn-fcgi fcgiwrap -y
sudo useradd nagios sudo groupadd nagios sudo usermod -G nagios nagios sudo usermod -a -G nagios www-data
nagios
源码包、并编译源码;cd /opt sudo wget -O nagioscore.tar.gz https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.3.2.tar.gz sudo tar zxf nagioscore.tar.gz cd nagioscore-nagios-4.3.2/ sudo ./configure --prefix=/usr/local/nagios --with-command-group=nagios
echo $?
,若返回值为0
,则编译成功),再安装;sudo make all sudo make install sudo make install-init sudo make install-config sudo make install-commandmode
install-init
将会安装合适的初始化脚本;install-config
将会安装样本配置文件;install-commandmode
设置扩展命令目录的权限。mysql
sudo vim /usr/local/bin/htpasswd.pl
将如下内容复制到htpasswd.pl文件中;ios
#!/usr/bin/perl use strict; if ( @ARGV != 2 ){ print "usage: /usr/local/bin/htpasswd.pl <user> <password>\n"; } else { print $ARGV[0].":".crypt($ARGV[1],$ARGV[1])."\n"; }
sudo chmod +x /usr/local/bin/htpasswd.pl
htpasswd.pl
sudo /usr/local/bin/htpasswd.pl nagiosadmin nagiosadmin | sudo tee -a /usr/local/nagios/etc/htpasswd.users
Nagios
的访问端口为8080
;sudo vim /etc/nginx/sites-enabled/nagios.conf
在
nagios.conf
的配置文件中加入以下内容:nginx
server { listen 8080; server_name 118.186.36.123 127.0.0.1; auth_basic "Nagios Access"; auth_basic_user_file /usr/local/nagios/etc/htpasswd.users; root /usr/local/nagios/share; location / { index index.html index.htm index.php; } location /nagios { alias /usr/local/nagios/share/; index index.html index.htm index.php; } location /nagiosql { alias /usr/local/nagios/share/nagiosql/; index index.html index.htm index.php; } location /cgi-bin { alias /usr/local/nagios/sbin; } location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ \.cgi$ { root /usr/local/nagios/sbin/; rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break; fastcgi_param AUTH_USER $remote_user; fastcgi_param REMOTE_USER $remote_user; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/fcgiwrap.socket; } }
fastcgi_pass
监听;vim /etc/php5/fpm/pool.d/www.conf #listen = /var/run/php5-fpm.sock listen = 127.0.0.1:9000
Nginx Web Server
和nagios服务
;sudo service nginx start sudo service nagios start
Nagios
是否启动成功(在浏览器中输入以下URL,测试nagios是否正常启动);http://IPaddress/nagios(IPaddress中填入本机的IP地址)
而后在登陆Nagios的前端页面git
cd /opt sudo wget --no-check-certificate -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/archive/release-2.2.1.tar.gz sudo tar zxf nagios-plugins.tar.gz
cd /opt/nagios-plugins-release-2.2.1/ sudo ./tools/setup sudo ./configure sudo make sudo make install
sudo service nagios start sudo service nagios stop sudo service nagios restart sudo service nagios status
如上图所示,能够看到当前主机的负载、登入主机的用户数、HTTP请求状态、主机是否存活、以及根分区的容量使用状况、SSH状态、Swap分区的容量使用状况、以及当前系统内启动的进程总数。github
https://sourceforge.net/projects/nagiosql/
在Windows上下载好nagiosQL源码包,则须要将下载好的tar包,上传到服务器(CentOS、Ubuntu)上,此时可用lrzsz工具。
nagiosQL
源码包;cd /opt sudo tar zxf nagiosql_33.tar.gz sudo mv nagiosql33 nagiosql
nagiosQL
移至nagios
的目录下/usr/local/nagios/share/
;sudo mv /opt/nagiosql /usr/local/nagios/share/
nagiosQL
导出nagios
配置文件的目录并修改权限;sudo mkdir -p /etc/nagiosql/{hosts,services,backup/{,hosts,services},import} sudo chown -R www-data:nagios /etc/nagiosql/ sudo chmod -R 755 /etc/nagiosql sudo chmod 777 /usr/local/nagios/share/nagiosql/config
sudo chown nagios:www-data /usr/local/nagios/etc sudo chown nagios:www-data /usr/local/nagios/etc/{nagios.cfg,cgi.cfg} sudo chown nagios:www-data /usr/local/nagios/etc/* sudo chmod 755 /usr/local/nagios/etc/{nagios.cfg,cgi.cfg} sudo chmod 775 /usr/local/nagios/etc
sudo chown nagios:www-data /usr/local/nagios/bin/nagios sudo chmod 750 /usr/local/nagios/bin/nagios sudo chown -R www-data:nagios /usr/local/nagios/var/spool/ sudo chown nagios:www-data /usr/local/nagios/var/rw/nagios.cmd sudo chmod 660 /usr/local/nagios/var/rw/nagios.cmd
可参考MySQL官方文档:
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/web
sudo apt-get install mysql-server
sudo apt-get install libssh2-1-dev sudo apt-get install libssh2-php
若是没有安装,则会在后面步骤的前端页面配置过程当中,显示ssh2没有安装,以下图所示:sql
sudo apt-get install -y php5-mysql
php.ini
的时区;sudo vim /etc/php5/fpm/php.ini # 在php.ini配置文件中找到date.timezone=,将其修改成以下所示便可: date.timezone = Asia/Shanghai
sudo chmod 000 /usr/local/nagios/share/nagiosql/install
注意:此时 NagiosQL 的访问的端口为 8080
,因为在前面配置 Nagios 的访问端口时,已直接将NagiosQL
的也一块儿配置了。
cfg_dir
开头的行):cfg_file=/usr/local/nagios/share/nagiosql/commands.cfg cfg_file=/usr/local/nagios/share/nagiosql/contactgroups.cfg cfg_file=/usr/local/nagios/share/nagiosql/contacts.cfg cfg_file=/usr/local/nagios/share/nagiosql/contacttemplates.cfg cfg_file=/usr/local/nagios/share/nagiosql/hostdependencies.cfg cfg_file=/usr/local/nagios/share/nagiosql/hostescalations.cfg cfg_file=/usr/local/nagios/share/nagiosql/hostextinfo.cfg cfg_file=/usr/local/nagios/share/nagiosql/hostgroups.cfg cfg_file=/usr/local/nagios/share/nagiosql/hosttemplates.cfg cfg_file=/usr/local/nagios/share/nagiosql/servicedependencies.cfg cfg_file=/usr/local/nagios/share/nagiosql/serviceescalations.cfg cfg_file=/usr/local/nagios/share/nagiosql/serviceextinfo.cfg cfg_file=/usr/local/nagios/share/nagiosql/servicegroups.cfg cfg_file=/usr/local/nagios/share/nagiosql/servicetemplates.cfg cfg_file=/usr/local/nagios/share/nagiosql/timeperiods.cfg cfg_dir=/usr/local/nagios/share/nagiosql/etc/hosts/ cfg_dir=/usr/local/nagios/share/nagiosql/etc/services/
必定要按照安装时配置文件所在的目录填写,不然导入配置文件失败
修改完后点击Save(保存):
将配置文件导入数据库中:
Naiogs
配置文件,重启 Nagios
:注意:每次添加完主机或添加完服务,均需先执行第一、二、三、4步,即先检查配置文件、再重启nagios,不然添加项不会生效。