跳到主要内容

第3章 安装配置

3.1 软件列表

Alt text

3.2 Nagios安装配置

Nagios采用c编写,各类监控对像遵循c语言特性,监控对像的属性有可继承。

3.2.1 Nagios基本概念

3.2.1.1 主机检测

什么时候做主机检测?
由Nagios守护进程来做主机检测,一般是:

  • 在规格化的间隔内,这个由主机对象定义里的check_interval和retry_interval选项确定;
  • 当主机状态变换后对应的服务做按需检测;
  • 在主机可达性逻辑中需要做按需检测;
  • 在主机依赖检测的前处理中需要做按需检测;

主机状态判定
主机检测由插件来做,插件会返回结果,结果是运行、告警、未知和紧急四个状态之一。那么Nagios将把插件的返回值转换成主机的运行、宕机或不可达。

主机状态变换
当Nagios检测出主机状态时,它总是要感知到主机从四种状态之间做了变换并要采取对应的行动。这些在不同的状态类型(硬态或软态)下的状态变换将会触发事件处理的运行和发送出通知。发现与处置这些状态变换是Nagios该做的全部。

3.2.1.2 服务检测

什么时候会做服务检测?
由Nagios守护进行的服务检测执行于:

  • 在规划的间隔到了时;间隔由服务对象定义里的check_interval和retry_interval选项确定。
  • 因服务依赖检测的前处理需要而发出的按需检测;
  • 因服务依赖检测的前处理逻辑而做的按需检测可以保证得到的依赖逻辑关系尽可能准确。如果不使用使用依赖,Nagios将不做任何按需服务检测。

服务状态判定
由插件来做的服务检测将返回一个状态,是正常(OK)、告警(WARNING)、未知(UNKNOWN)或紧急(CRITICAL)四种之一。插件直接将转换为服务状态,如插件返回一个告警状态将使一个服务处于告警态。

服务状态变换
当Nagios对服务进行状态检测,将会感知到服务在四种状态之间进行变化并采取合适行动。 这些状态有不同的状态类型(硬态或软态)将会触发事件处理运行和发出通知。 服务状态变换同样可以触发按需的主机检测。 感知与处理状态变换是Nagios该做的全部

3.2.1.3 检测状态类型:软态、硬态

被监控的主机和服务的当前状态由如下两个要素决定:

  • 主机与服务的状况(如正常、警告、运行和宕机等)
  • 服务与主机将要从属的状态类型

Nagios状态类型: 软态和硬态
这两种状态取决于监控逻辑,当执行过事件处理或是当通知被初始送出时将会给出决定。

    对像       宏                    软态值   硬态值
--------------------------------------------------
主机状态 $HOSTSTATETYPE$ SOFT HARD
服务状态 $SERVICESTATETYPE$ SOFT HARD

3.2.1.4 服务与主机的检测重试

为防止因瞬态故障而引发错误报警,Nagio需要定义主机与服务经过多少次的重试检测后再认为故障是“真正”发生。这个次数是由主机与服务中的max_check_attempts选项决定。如果真正故障发生时主机与服务进行检测重试的做法在理解状态类型机制很重要。

3.2.1.5 定义基本对像

根对像或父对像定义

************************************************
define class_type{
name base_class_name ;Root class name
alias alise_string
type [vlaue]
_type [vlaue]
}
其中:
define是定义命令字符
class_type:nagios的对像类,nagios常用的类有:
名称 识别字符
-------------------------
主机 host
主机组 hostgroup
服务 service
服务组 servicegroup
联系人 contact
联系人组 contactgroup
时间周期 timeperiod
命令 command
服务依赖 servicedependency
服务扩展 serviceescalation
主机依赖 hostdependency
主机扩展 hostescalation
额外主机信息 hostextinfo
额外服务信息 serviceextinfo
nagios不支持自定义对像类,必须采用上面nagios预定义的类。
type value 定义属性类型与属性值
type是类的属性,它是用来描述类的某方面的特征
value是类的属性值
同一个类,有多种属性来描述类的各方面的特征。
不同的类,有不同的属性。
在nagios中各种预定义的类中,nagios为每个预定义类定义了各类详细的属性,这些属性称为预定义属性。
nagios支持用户为类自定义属性值,格式如下:
_type [vlaue]
使用用户自定制变量需要注意如下几个要点:
1.必须以下划线(_)开头来定义变量名称以防止与标准域名称混淆;
2.自定制变量名是大小写敏感的;
3.自定制变量是可以象一般的变量那样被继承传递的;
4.自定制变量名是可以被脚本里引用的,在宏和环境变量中有说明。
自定义属性值与预定义属性一样使用,都具有继承性。
提示: a.可以引用其它类作为当前类的一个属性。
如服务类中,常用联系人属性,命令属性,其实它们同样是类对像。
例:contact_groups admins
b.在定义对像时,父类必须有“name”属性,用于子类使用。
在子类定义中,建议使用“name”属性,以便供其子类使用,若它没有子类,则也可以没有该属性。

3.2.1.6 定义子对像

************************************************
define class_type{
name sub_class_name #子对像名称,不可重复。该选项主要是用于后续为它建立子对像而设,若当前对像以后不需要子对像,可以省略该项,由系统自动指定。
use base_class_name #子对像的父对像。
alias alise_string #当为服务对像时,采用service_descpription参数。
type [vlaue]
_type [vlaue]
}
其中:
define是定义命令字符
class_type:nagios的对像类,它必须与父对像的class_type值相同。
name 子类名称。若只是配置一个具体的对像,则不使用“name”,而使用相应的对像名称属性,常用的具体对像定义时使用的属性值如下:
主机类:host_name(定义具体的主机)
hostgroup_name(定义具体的主机组)
服务类:service_description(定义具体的服务)
servicegroup_name(定义具体的服务组)
联系人:contact_name(定义具体的联系人)
contactgroup_name(定义具体的联系人组)
use base_class_name 表示引用父对像,其中base_class_name是父对像的名称,该名称是父类的name属性的值。
在子类定义中必须有“use”用于指定父类。
子类可以有多个父类,如:use Parent_Class_1,Parent_Class_2,...,Parent_Class_N
type [vlaue] 表示子对像的属性值。

3.2.2 安装

  • 建立nagios用户和组
useradd nagios
groupmems -a apache -g nagios
  • 下载源代码包及安装
# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.5.tar.gz
# tar zxvf nagios-4.4.5.tar.gz
# cd nagios-4.4.5
# ./configure \
--enable-event-broker \
--with-nagios-user=nagios \
--with-nagios-group=nagios \
--with-command-user=nagios \
--with-command-group=nagios

# make all
# make install
# make install-init
# make install-daemoninit
# make install-commandmode
# make install-config
# make install-webconf
# make install-exfoliation

# cp -fr contrib/eventhandlers /usr/local/nagios/
# chown -R nagios:nagios /usr/local/nagios/eventhandlers

配置访问用户密码

# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
# chown -R nagios:nagios /usr/local/nagios/etc/htpasswd.users
  • 启动
/etc/init.d/nagios start
  • 访问

http://ip/nagios
User:nagiosadmin
Pwd: ( htpassw配置过)

Alt text

提示

Nagios官方提供的web功能有限,有多种第三方外部web插件可使用。

3.2.3 基本配置

目录结构

# tree /usr/local/nagios/etc
/usr/local/nagios/etc
|-- cgi.cfg cgi配置文件
|-- htpasswd.users web访问帐户文件
|-- nagios.cfg 主配置文件
|-- objects 对像配置文件目录
| |-- commands.cfg 命令对像配置
| |-- contacts.cfg 联系人对像配置
| |-- localhost.cfg 本地监控对像配置
| |-- printer.cfg 打印机监控对像配置
| |-- switch.cfg 交换机监控对像配置
| |-- templates.cfg 各类对像模板
| |-- timeperiods.cfg 报警排程配置
| `-- windows.cfg win监控对像配置
`-- resource.cfg 宏资源配置

# tree /etc/httpd/conf.d
/etc/httpd/conf.d
|-- README
|-- autoindex.conf
|-- nagios.conf web访问配置
|-- php.conf
|-- userdir.conf
`-- welcome.conf

nagios.cfg基本配置

对象配置文件
=============================
格式: cfg_file=<file_name>
样例:
cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
cfg_file=/usr/local/nagios/etc/commands.cfg
说明:
该变量用于指定一个包含有将用于Nagios监控对象的对象配置文件。
对象配置文件中包括有主机、主机组、联系人、联系人组、服务、命令等等对象的定义。
配置信息可以切分为多个文件并且用cfg_file=语句来指向每个待处理的配置文件。

对象配置目录
=============================
格式: cfg_dir=<directory_name>
样例:
cfg_dir=/usr/local/nagios/etc/commands
cfg_dir=/usr/local/nagios/etc/services
cfg_dir=/usr/local/nagios/etc/hosts
说明:
该变量用于指定一个目录,目录里包含有将用于Nagios监控对象的对象配置文件。
所有的在这个目录下的且以.cfg为扩展名的文件将被作为配置文件来处理。
另外,Nagios将会递归该目录下的子目录并处理其子目录下的全部配置文件。
你可以把配置放入不同的目录并且用cfg_dir=语句来指向每个待处理的目录。

对象缓冲文件
=============================
格式: object_cache_file=<file_name>
样例: object_cache_file=/usr/local/nagios/var/objects.cache
说明:
该变量用于指定一个用于缓冲对象定义复本的文件存放位置。对象缓冲将在每次Nagios的启动和
重启时和使用CGI模块时被创建或重建。它试图加快在CGI里的配置缓冲并使得你在编辑对象配置
文件时可以让正在运行的Nagios不影响CGI的显示输出。

预缓冲对象文件
=============================
格式: precached_object_file=<file_name>
样例: precached_object_file=/usr/local/nagios/var/objects.precache
说明:
该变量用于指定一个用于指定一个用于预处理、预缓冲 This directive is used to specify a
file in which a pre-processed, pre-cached copy of 对象定义复本的文件存放位置。在大型或
复杂Nagios安装模式下这个文件可用于显著地减少Nagios的启动时间。


资源文件
=============================
格式: resource_file=<file_name>
样例: resource_file=/usr/local/nagios/etc/resource.cfg
说明:
该变量用于指定一个可选的包含有$USERn$宏定义的可选资源文件。$USERn$宏在存放用户名、口令
及通用的命令定义内容(如目录路径)时非常有用。CGIs模块将不会试图读取资源文件,所以你可以
限定这权文件权限(600或660)来保护敏感信息。你可以在主配置文件里用resource_file语句来加入
多个资源文件-Nagios将会处理它们。如何定义$USERn$宏参见样例resource.cfg文件,它放在Nagios
发行包的sample-config/子目录下。
例如:
在resource.cfg文件中定义“$USER9$=guofs”,则在nagios各类配置文件中就可以直接引用“$USER9$”宏变量。


临时文件
=============================
格式: temp_file=<file_name>
样例: temp_file=/usr/local/nagios/var/nagios.tmp
说明:
该变量用于指定一个临时文件,Nagios将在更新注释数据、状态数据等时周期性地创建它。该文件不再需要时会删除它。


临时路径
=============================
格式: temp_path=<dir_name>
样例: temp_path=/tmp
说明:
这个变量是一个目录,该目录是块飞地,在监控过程中用于创建临时文件。你应在该目录内运行tmpwatch或类似
的工具程序以删除早于24小时的文件(这是个垃圾文件存放地)。


Nagios用户
=============================
格式: nagios_user=<username/UID>
样例: nagios_user=nagios
说明:
该变量指定了Nagios进程使用哪个用户运行。当程序启动完成并开始监控对象之前,Nagios将切换自己
的权限并使用该用户权限运行。你可以指定用户或是UID名。

Nagios组
=============================
格式: nagios_group=<groupname/GID>
样例: nagios_group=nagios
说明:
该变量用于指定Nagios使用哪个用户组运行。当程序启动完成并开始监控对象之前,Nagios将切换自己的权限
并以该用户组权限运行。你可以拽定用户组或GID名。

3.3 nagios-plugins安装

# wget http://www.nagios-plugins.org/download/nagios-plugins-2.3.1.tar.gz
# tar zxvf nagios-plugins-2.3.1.tar.gz
# cd nagios-plugins-2.3.1
# ./configure \
--with-nagios-user=nagios \
--with-nagios-group=nagios
# make
# make install

安装插件后,将在目录/usr/local/nagios生成目录libexec。用户开发的脚本放在这个目录。

3.4 pnp4nagios安装

3.4.1 安装

# wget https://sourceforge.net/projects/pnp4nagios/files/PNP-0.6/pnp4nagios-0.6.26.tar.gz
# tar zxvf pnp4nagios-0.6.26.tar.gz
# cd pnp4nagios-0.6.26

# ./configure \
--prefix=/usr/local/pnp \
--with-nagios-user=nagios \
--with-nagios-group=nagios \
--with-rrdtool=/usr/bin/rrdtool


# make all
# make install //或make fullinstall
# make install-webconf //install the web configuration file,产生/etc/httpd/conf.d/pnp4nagios.conf文件。
# make install-config //install sample configuration files
# make install-init //use BULK Mode with NPCD,产生“/etc/rc.d/init.d/npcd”服务进程

# cp -fr contrib/ssi/* /usr/local/nagios/share/ssi/
# chown -R nagios:nagios /usr/local/nagios/share/ssi/

3.4.2 配置(采用Bulk Mode)

参考办法
https://docs.pnp4nagios.org/pnp-0.6/config

  • 配置nagios.cfg
process_performance_data=1

#
# service performance data
#
service_perfdata_file=/usr/local/pnp/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

#
# host performance data starting with Nagios 3.0
#
host_perfdata_file=/usr/local/pnp/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
  • 配置命令文件commands.cfg
define command{
command_name process-service-perfdata-file
command_line /usr/local/pnp/libexec/process_perfdata.pl --bulk=/usr/local/pnp/var/service-perfdata
}

define command{
command_name process-host-perfdata-file
command_line /usr/local/pnp/libexec/process_perfdata.pl --bulk=/usr/local/pnp/var/host-perfdata
}
  • 主机对像模板修改
    添加如下参数
action_url     /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
  • 服务对像模板修改
    添加如下参数
action_url     /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
  • 启动
# mv /usr/local/pnp/share/install.php /usr/local/pnp/share/install.php_remove
# /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -k restart
  • 测试

3.5 NDOUtils安装

3.5.1 安装

# wget https://sourceforge.net/projects/nagios/files/ndoutils-2.x/ndoutils-2.1.3/ndoutils-2.1.3.tar.gz
# tar zxvf ndoutils-2.1.3.tar.gz
# cd ndoutils-2.1.3
# ./configure \
--prefix=/usr/local/ndoutils \
--with-ndo2db-user=nagios \
--with-ndo2db-group=nagios \
--enable-mysql
# make all
# make install
# make install-config
# make install-init

# cp startup/default-init /etc/init.d/ndo2db
# chmod +x /etc/init.d/ndo2db
# mv /usr/local/ndoutils/etc/ndomod.cfg-sample /usr/local/ndoutils/etc/ndomod.cfg
# mv /usr/local/ndoutils/etc/ndomod.cfg-sample /usr/local/ndoutils/etc/ndomod.cfg

3.5.2 配置及启动

  • 初始化配置数据库
# /usr/bin/mysql -uroot -p
mysql> create database nagios;
mysql> GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON nagios.* TO ndouser@localhost IDENTIFIED BY '111188';
mysql> flush privileges;

进入源代码目录
# cd db
# ./installdb --help
# ./installdb -u ndouser -p 111188 -h localhost -d nagios
DBD::mysql::db do failed: Table 'nagios.nagios_dbversion' doesn't exist at ./installdb line 52. //不用理会该出错信息
** Creating tables for version 2.0.1
Using mysql.sql for installation...
** Updating table nagios_dbversion
Done!
  • 配置ndo2db.cfg
#vi /usr/local/ndoutils/etc/ndo2db.cfg
socket_type=unix
db_servertype=mysql
db_host=localhost
db_port=3306
db_name=nagios
db_prefix=nagios_
db_user=ndouser
db_pass=123456
  • 配置ndomod.cfg
# vi /usr/local/ndoutils/etc/ndomod.cfg
instance_name=default
output_type=unixsocket //这里的配置需与ndo2db.cfg中的“socket_type”保持一致。
output=/usr/local/ndoutils/var/ndo.sock
  • 启动ndo2db
/etc/init.d/ndo2db start

重要提示:
有时启动时会提示如下信息:
# /etc/init.d/ndo2db start
Starting ndo2db Could not bind socket: Address already in use
[FAILED]

主要原因是非正常终止ndo2db时没有及时删除/usr/local/ndoutils/var/ndo.sock文件,可在启动文件中添加如下一行
# cat /etc/init.d/ndo2d
...
NDO2DB_BIN=/usr/local/ndoutils/bin/ndo2db
NDO2DB_CFG=/usr/local/ndoutils/etc/ndo2db.cfg
LOCK_DIR=/var/lock/subsys
LOCK_FILE=/var/lock/subsys/ndo2db
PID_FILE=/usr/local/ndoutils/var/ndo2db.pid
rm -fr /usr/local/ndoutils/var/ndo.sock #新增1行
...
这样能保证无论如何启动都会正常。
  • 与nagios集成
# vi /usr/local/nagios/etc/nagios.cfg
event_broker_options=-1
broker_module=/usr/local/ndoutils/bin/ndomod.o config_file=/usr/local/ndoutils/etc/ndomod.cfg

# /etc/init.d/nagios restart
  • 测试
#  cat /usr/local/nagios/var/nagios.log | grep ndomod.o
[1585038478] Event broker module '/usr/local/ndoutils/bin/ndomod.o' initialized successfully.
在数据因中查看是否有数据写入,例如:
# mysql -uroot -p"mysql+888" nagios
MariaDB [nagios]> select service_id,instance_id,display_name from nagios_services;
+------------+-------------+-----------------+
| service_id | instance_id | display_name |
+------------+-------------+-----------------+
| 1 | 1 | Current Load |
| 2 | 1 | Current Users |
| 3 | 1 | HTTP |
| 4 | 1 | PING |
| 5 | 1 | Root Partition |
| 6 | 1 | SSH |
| 7 | 1 | Swap Usage |
| 8 | 1 | Total Processes |
+------------+-------------+-----------------+

3.6 mk-livestatus安装

3.6.1 安装

依赖包安装yum -y install libstdc++-static

#wget http://mathias-kettner.de/download/mk-livestatus-1.2.8p25.tar.gz
#tar zxvf mk-livestatus-1.2.8p25.tar.gz
#cd mk-livestatus-1.2.8p25
#./configure --help
#./configure \
--prefix=/usr/local/mk-livestatus \
--with-nagios4 //指定配合的nagios版本
#make -j 1 //-j 表示CPU的个数。
#make install

# tree /usr/local/mk-livestatus
/usr/local/mk-livestatus
|-- bin
| `-- unixcat
`-- lib
`-- mk-livestatus
`-- livestatus.o

3.6.2 配置

配置nagios支持mk-livestatus

#vi /usr/local/nagios/etc/nagios.cfg
...
broker_module=/usr/local/mk-livestatus/lib/mk-livestatus/livestatus.o /usr/local/nagios/var/rw/live
event_broker_options=-1
...
# /etc/init.d/nagios restart
# cat /usr/local/nagios/var/nagios.log | grep live 来查看日志
[1585039028] livestatus: Livestatus 1.2.8p25 by Mathias Kettner. Socket: '/usr/local/nagios/var/rw/live'
[1585039028] livestatus: Please visit us at http://mathias-kettner.de/
[1585039028] livestatus: Hint: please try out OMD - the Open Monitoring Distribution
[1585039028] livestatus: Please visit OMD at http://omdistro.org
[1585039028] livestatus: Finished initialization. Further log messages go to /usr/local/nagios/var/livestatus.log
[1585039028] Event broker module '/usr/local/mk-livestatus/lib/mk-livestatus/livestatus.o' initialized successfully.

3.7 Nagvis安装

3.7.1 安装

准备

# yum -y install rsync
# chown -R apache:apache /var/lib/php/session

安装

# wget http://www.nagvis.org/share/nagvis-1.9.17.tar.gz
# tar zxvf nagvis-1.9.17.tar.gz
# cd nagvis-1.9.17
# ./install.sh //一路yes
+------------------------------------------------------------------------------+
| Welcome to NagVis Installer 1.9.17 |
+------------------------------------------------------------------------------+
| This script is built to facilitate the NagVis installation and update |
| procedure for you. The installer has been tested on the following systems: |
| - Debian, since Etch (4.0) |
| - Ubuntu, since Hardy (8.04) |
| - SuSE Linux Enterprise Server 10 and 11 |
| |
| Similar distributions to the ones mentioned above should work as well. |
| That (hopefully) includes RedHat, Fedora, CentOS, OpenSuSE |
| |
| If you experience any problems using these or other distributions, please |
| report that to the NagVis team. |
+------------------------------------------------------------------------------+
| Do you want to proceed? [y]: y
+------------------------------------------------------------------------------+
| Starting installation of NagVis 1.9.17 |
+------------------------------------------------------------------------------+
| |
+--- Checking for tools -------------------------------------------------------+
| Using packet manager /usr/bin/rpm found |
| |
+--- Checking paths -----------------------------------------------------------+
| Please enter the path to the nagios base directory [/usr/local/nagios]:
| nagios path /usr/local/nagios found |
| Please enter the path to NagVis base [/usr/local/nagvis]:
| |
+--- Checking prerequisites ---------------------------------------------------+
| PHP 5.4 found |
| PHP Module: gd php found |
| PHP Module: mbstring php found |
| PHP Module: gettext compiled_in found |
| PHP Module: session compiled_in found |
| PHP Module: xml php found |
| PHP Module: pdo php found |
| Apache mod_php found |
| Graphviz 2.30 found |
| Graphviz Module dot 2.30.1 found |
| Graphviz Module neato 2.30.1 found |
| Graphviz Module twopi 2.30.1 found |
| Graphviz Module circo 2.30.1 found |
| Graphviz Module fdp 2.30.1 found |
| SQLite 3.7 found |
| |
+--- Trying to detect Apache settings -----------------------------------------+
| Please enter the web path to NagVis [/nagvis]:
| Please enter the name of the web-server user [apache]:
| Please enter the name of the web-server group [apache]:
| create Apache config file [y]: y
| |
+--- Checking for existing NagVis ---------------------------------------------+
| |
+------------------------------------------------------------------------------+
| Summary |
+------------------------------------------------------------------------------+
| NagVis home will be: /usr/local/nagvis |
| Owner of NagVis files will be: apache |
| Group of NagVis files will be: apache |
| Path to Apache config dir is: /etc/httpd/conf.d |
| Apache config will be created: yes |
| |
| Installation mode: install |
| |
| Do you really want to continue? [y]: y
+------------------------------------------------------------------------------+
| Starting installation |
+------------------------------------------------------------------------------+
| Creating directory /usr/local/nagvis... done |
| Creating directory /usr/local/nagvis/var... done |
| Creating directory /usr/local/nagvis/var/tmpl/cache... done |
| Creating directory /usr/local/nagvis/var/tmpl/compile... done |
| Creating directory /usr/local/nagvis/share/var... done |
| Copying files to /usr/local/nagvis... done |
| Creating directory /usr/local/nagvis/etc/profiles... done |
| Creating main configuration file... done |
| Adding webserver group to file_group... done |
| Creating web configuration file... done |
| Setting permissions for web configuration file... done |
| |
| |
| |
+--- Setting permissions... ---------------------------------------------------+
| /usr/local/nagvis/etc/nagvis.ini.php-sample done |
| /usr/local/nagvis/etc done |
| /usr/local/nagvis/etc/maps done |
| /usr/local/nagvis/etc/maps/* done |
| /usr/local/nagvis/etc/geomap done |
| /usr/local/nagvis/etc/geomap/* done |
| /usr/local/nagvis/etc/profiles done |
| /usr/local/nagvis/share/userfiles/images/maps done |
| /usr/local/nagvis/share/userfiles/images/maps/* done |
| /usr/local/nagvis/share/userfiles/images/shapes done |
| /usr/local/nagvis/share/userfiles/images/shapes/* done |
| /usr/local/nagvis/var done |
| /usr/local/nagvis/var/* done |
| /usr/local/nagvis/var/tmpl done |
| /usr/local/nagvis/var/tmpl/cache done |
| /usr/local/nagvis/var/tmpl/compile done |
| /usr/local/nagvis/share/var done |
| |
+------------------------------------------------------------------------------+
| Installation complete |
| |
| You can safely remove this source directory. |
| |
| For later update/upgrade you may use this command to have a faster update: |
| ./install.sh -n /usr/local/nagios -p /usr/local/nagvis -u apache -g apache -w /etc/httpd/conf.d -a y
| |
| What to do next? |
| - Read the documentation |
| - Maybe you want to edit the main configuration file? |
| Its location is: /usr/local/nagvis/etc/nagvis.ini.php |
| - Configure NagVis via browser |
| <http://localhost/nagvis/config.php> |
| - Initial admin credentials: |
| Username: admin |
| Password: admin |
+------------------------------------------------------------------------------+

初始的帐号是admin,密码也是admin

3.7.2 配置

#vi /usr/local/nagvis/etc/nagvis.ini.php
[paths]
base="/usr/local/nagvis/"
htmlbase="/nagvis"
htmlcgi="/nagios/cgi-bin"

[backend_ndomy_1] //若选用mklivestatus方式,则下面的可以不用配置.
backendtype="ndomy"
dbhost="localhost"
dbport=3306
dbname="ndodb"
dbuser="ndouser"
dbpass="111188"
dbprefix="nagios_"
dbinstancename="default"
maxtimewithoutupdate=30
htmlcgi="/nagios/cgi-bin"

可以采用mklivestatus和ndo2db两种,任选其一。

3.7.3 启动

# /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -k restart

http://ip/nagvis

Alt text

3.8 Centreon安装

centreon可以简单地管理和配置nagios,比nagiosql更为简单明了,对于初级用户比较合适。 快速部署大量的监控指标时,建议直接用mysql,通过脚本生成nagios配置文件。

配合流程

  • nagios通过ndoutil模块将监控数据写入数据库。
  • centreon读取数据库的数据并即时的展现监控信息。

Centreon+Nagios进行监控,常用组件

  • Nagios:是nagios的主要组件,里面包括了各种配置文件。
  • nagios-plugins:是nagios的插件,里面提供了各种监控模板及监控命令,如check_tcp等等有很多常用的监控对象都可以使用这些模式,当然也可以自己编写脚本来实现,这一点上nagios是非常灵活的。
  • Ndoutils+mysql:利用它将nagios的监控信息存入mysql数据库。
  • Nrpe:是一款用来监控被控端主机资源的工具,没有它,nagios将无法对被控端服务器

3.8.1 安装

#tar zxvf centreon-2.3.8.tar.gz
#cd centreon-2.3.8
#./install.sh –i
提示
  • centreon-release-19.10已有自己的监控内核。在nagios的融合度不如旧版本。
  • 本例以centreon-2.3.8基础。

3.8.2 配置

web方式安装
http://localhost.localdomain/centreon/

此步主要是配置mysql.会产生三个数据库如下:

  • centreon 存储centreon配置
  • centstorage 存储trap日志等
  • centstatus 存储nagios信息,就是db2db需访问的数据库(详细可查看NDOUtils安装)。