目录

1. Nagios 和 NagiosQL简介

2. Nagios+NagiosQL搭建环境说明

3. Nagios、Nagios-plugins和NagiosQL的安装

4. 配置NagiosQL的前端页面

5. 根据需求实现监控


1. Nagios 和 NagiosQL简介

0x01 Nagios介绍

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

0x02 Nagios主要功能:

  • 网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH);
  • 主机资源监控(CPU load、disk usage、system logs),也包括Windows主机(使用NSClient++ plugin);
  • 可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……);
  • 可以通过配置Nagios远程执行插件远程执行脚本;
  • 远程监控支持SSH或SSL加通道方式进行监控;
  • 简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C#等);
  • 包含很多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等);
  • 可并行服务检查;
  • 能够定义网络主机的层次, 允许逐级检查, 就是从父主机开始向下检查;
  • 当服务或主机出现问题时发出通告,可通过email, pager, sms 或任意用户自定义的plugin进行通知;
  • 能够自定义事件处理机制重新激活出问题的服务或主机;
  • 自动日志循环;
  • 支持冗余监控;
  • 包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等。

0x03 NagiosQL介绍

NagiosQL是专为nagios设计的web图形化管理应用,主要作用就是操作数据库和配置文件,其中包括将配置文件的信息写到数据库中,在数据库中修改Nagios的监控配置信息,并将数据库中存放的配置更新到文件中。用户可以通过NagiosQL提供的Web页面直观的修改配置。实现架构很简单,功能很实用。

0x04 NagiosQL 主要功能

  • 具有基本的nagios的配置管理能力,导入,导出配置文件的功能
  • 具有nagios配置文件检查、排错的能力
  • Nagiosql可对文件结构进行定制,可延续之前的配置结构,按IP生成配置
  • Nagiosql将每一次配置的变更做一次配置备份,以时间戳为后缀保存,理论上可以回滚到任意一个历史配置

2. Nagios+NagiosQL搭建环境说明

0x01 操作系统

root@nagios:~# cat /etc/issue
Ubuntu 16.04.4 LTS \n \l

0x02 内核版本

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

0x03 备注

1、此安装方法只针对Ubuntu 16.04及Ubuntu 14.04版本,若是CentOS请参考Nagios的官方文档。
2、由于nagios官网默认使用的是 Apache Web Server,此文档使用的是Nginx Web Server。

3. Nagios、Nagios-plugins和NagiosQL的安装

0x01 Nagios的源码安装

  • 安装前的准备(依赖包)
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
  • 同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,获取最新的软件包。;
sudo apt-get update
  • 安装build-essential包(编译程序必须的软件包):可以从source中获取nagiosnagios-pluguns
sudo apt-get install build-essential
  • 安装nginx web server,并确认nginx服务时启动状态;
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
  • 创建nagios用户组;
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设置扩展命令目录的权限。

  • 创建nagiosadmin用户账号;
sudo vim /usr/local/bin/htpasswd.pl

将以下内容复制到htpasswd.pl文件中;

#!/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的配置文件中加入如下内容:

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;
} }
  • 修改php的fastcgi_pass监听;
vim /etc/php5/fpm/pool.d/www.conf
#listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
  • 启动Nginx Web Servernagios服务
sudo service nginx start
sudo service nagios start
  • 测试Nagios是否启动成功(在浏览器中输入如下URL,测试nagios是否正常启动);

http://IPaddress/nagios(IPaddress中填入本机的IP地址)

然后在登录Nagios的前端页面

0x02 Nagios-plugins的安装

  • Downloading The Source(下载nagiosQL源码);
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
  • Compile + Install(编译安装);
cd /opt/nagios-plugins-release-2.2.1/
sudo ./tools/setup
sudo ./configure
sudo make
sudo make install
  • Service / Daemon Commands(服务、及守护进程的相关命令);
sudo service nagios start
sudo service nagios stop
sudo service nagios restart
sudo service nagios status
  • 插件安装完成后,可以进入nagios的前端页面,查看nagios对nagios本机的监控情况;

如上图所示,可以看到当前主机的负载、登入主机的用户数、HTTP请求状态、主机是否存活、以及根分区的容量使用情况、SSH状态、Swap分区的容量使用情况、以及当前系统内启动的进程总数。

0x03 NagiosQL下载、安装、及配置

  • nagiosQL下载地址;
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
  • nagios相关文件权限的设定;
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
  • 设定nagios二进制文件的权限,以便其能够通过Web程序执行;
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

0x04 下载 MySQL数据库 (由于NagiosQL默认使用MySQL数据库),在安装过程中需要设置MySQL的root用户的密码

可参考MySQL官方文档:

https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/

sudo apt-get install mysql-server

0x05 安装PHP的 ssh2 插件

sudo apt-get install libssh2-1-dev
sudo apt-get install libssh2-php

如果没有安装,则会在后面步骤的前端页面配置过程中,显示ssh2没有安装,如下图所示:

0x06 安装 php 连接 MySQL 的插件

sudo apt-get install -y php5-mysql
  • 修改php的配置文件中php.ini的时区;
sudo vim /etc/php5/fpm/php.ini
# 在php.ini配置文件中找到date.timezone=,将其修改为如下所示即可:
date.timezone = Asia/Shanghai

4. 配置NagiosQL的前端页面

  • 在浏览器中输入URL,访问nagiosQL前端页面,(由于是完成雨林木风12台服务器的硬件监控后,再编写的文档;所以一些图片均是后期补充,存在IP地址可能与不对应的情况,若在实际操作过程中,输入服务器的IP地址即可);

  • 检查安装前的需求:

  • 配置MySQL数据库和nagiosQL前端登录账号:

  • 删除nagiosQL安装目录:

sudo chmod 000 /usr/local/nagios/share/nagiosql/install
  • 进入NagiosQL的登录界面;

注意:此时 NagiosQL 的访问的端口为 8080,由于在前面配置 Nagios 的访问端口时,已直接将NagiosQL的也一起配置了。

  • 将nagiosQL的配置文件填入到nagios的主配置文件(/usr/local/nagios/etc/nagios.conf)中(先注释掉原配置文件中的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:

注意:每次添加完主机或添加完服务,均需先执行第1、2、3、4步,即先检查配置文件、再重启nagios,否则添加项不会生效。

1. Nagios和 NagiosQL安装及配置的更多相关文章

  1. nagios插件nagiosql安装配置

    nagios插件nagiosql安装配置 # Nagiosql install [root@Cagios ~]# yum install -y libssh2 libssh-devel [root@C ...

  2. nagios系列(二)之nagios客户端的安装及配置

    1.添加nagios用户 echo "------ step 1: add nagios user------" #create user group /usr/sbin/user ...

  3. Linux下Nagios的安装与配置[转]

    一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报 ...

  4. 烂泥:学习Nagios(三): NRPE安装及配置

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 在前两篇文章中,我们介绍了有关nagios的安装与配置,文章为<烂泥:学习Nagios(一):Nagios安装>.<烂泥:学习Nagio ...

  5. Nagios学习笔记一:基本安装和配置

    ()解决安装Nagios的依赖关系: Nagios基本组件的运行依赖于httpd.gcc和gd.可以通过以下命令来检查nagios所依赖的rpm包是否已经完全安装: # yum -y install ...

  6. Linux下Nagios的安装与配置

    一.本文说明 本文是在参考:http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html   David_Tang文章以及网上的一些资料完 ...

  7. [转]Linux下Nagios的安装与配置

    转自:http://blog.chinaunix.net/uid-29539073-id-4149856.html 月色书香 一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有 ...

  8. Nagios+pnp4nagios+rrdtool 安装配置nagios被监控端NRPE配置(二)

    NRPE监控插件基础 NRPE总共由两部分组成: (1).check_nrpe插件,运行在监控主机上. (2).NRPE daemon,运行在远程的linux主机上(通常就是被监控机) 整个的监控过程 ...

  9. Nagios安装与配置

    安装包获取 Nagios https://sourceforge.net/projects/nagios/files/ Nagios Plugins https://www.nagios.org/do ...

随机推荐

  1. Oracle下载与Oracle安装图解(Oracle19c,Oracle18c,Oracle12c,Oracle11g)

    Oracle下载与Oracle安装图解(Oracle19c,Oracle18c,Oracle12c,Oracle11g) 1.Oracle下载(Oracle11g) oracle下载方法,请根据以下步 ...

  2. SQL Server服务没有自动启动原因案例分析

    这个案例是前两天出现的,一直没有时间总结,25号凌晨4点去处理数据库的故障问题.远程连上公司的局域网,psping检查发现服务器的1433端口不通,数据库连接不上,但是主机又能ping通,登录服务器检 ...

  3. 2019-1-17 前言 C#高级编程(第11版)

    C#已更新为更快的速度.主要版本7.0是2017年3月发布,次要版本7.1和7.2很快发布在2017年8月和2017年12月.通过项目设置,您可以与每个应用程序一起分发,是开源的,不可用仅适用于Win ...

  4. shell 中 if then语句中会跟着-ne -ge之类的参数的含义

    if [ 1 -ne 1 ];then...fi这是指当1不等于1时执行then后的语句 -eq:等于-ne:不等于-le:小于等于-ge:大于等于-lt:小于-gt:大于

  5. WPF软件开发系统之六——药品管理查询系统

    本系统使用.Net WPF开发,运行于Windows操作系统,电脑或者触摸屏设备. 功能主要是药品按照各类条件检索及展示. 开发环境及工具: 首页: 按关键字查询: 按功效查询: 还有其它按拼音.按笔 ...

  6. Windows服务器如何查看共享目录信息

    查看Windows服务器上的共享目录的相关信息,可以使用两种方式: 1:命令net share 查看: 2:通过计算机管理的Shared Folders查看

  7. 【博客导航】Nico博客导航汇总

    摘要 介绍本博客关注的内容大类.任务.工具方法及链接,提供Nico博文导航. 导航汇总 [博客导航]Nico博客导航汇总 [导航]信息检索导航 [导航]Python相关 [导航]读书导航 [导航]FP ...

  8. LinkedList与Queue

    https://blog.csdn.net/u013087513/article/details/52218725

  9. PHP按权重随机

    之前业务部门提了一个需求,要求将广告按照ecpm高低进行随机.(即:ecpm高的获取流量的几率大) 如下数组: //要求AD1的概率要求为50%,AD2概率为25% ,AD3的概率为15%,AD4的概 ...

  10. zoj 3605

    链接 [https://vjudge.net/contest/293343#problem/F] 题意 就是有n碗,有一个宝石,知道开始宝石在那个碗下面 进行M次交换,但知道其中的k次,问你最可能在那 ...