使用 Nagios
来自 PostgreSQL Wiki
跳到导航跳到搜索为什么使用 Nagios?
Nagios 是一个应用广泛的开源网络监控系统,它监管指定的设备(硬件)和服务(软件),并在它们的行为异常时发出警报。
配置监控服务器
需求
- 网络服务器(本指南假设使用 Apache)
- PHP(用于网络界面)
- GCC
- Libgd(显示状态图所需的图形库)
- Perl
- 邮件服务器 (可选。用于发送邮件告警)
安装(作为 root 用户)
创建一个 nagios 用户
useradd -m nagios passwd nagios
安装 nagios
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.0.6.tar.gz gunzip -dc nagios-3.0.6.tar.gz | tar xvf - cd nagios-3.0.6 ./configure --with-command-group=nagios make all make install make install-init make install-config make install-commandmode
配置
编辑文件 /usr/local/nagios/etc/objects/contacts.cfg
此更改用于指示向其发送已配置告警的电子邮件。
reemplazar “nagios@localhost” por el correo del administrador
配置网络界面
make install-webconf htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin chown nagios.nagios /usr/local/nagios/etc/htpasswd.users chmod 664 /usr/local/nagios/etc/htpasswd.users service httpd restart
安装 Nagios 插件
我们稍后会手动安装 PostgreSQL 插件,出于以下两个原因
- 为了安装最新版本,并且
- 为了防止在监控服务器上未安装 PostgreSQL 时出现依赖性问题
cd .. wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz gunzip -dc nagios-plugins-1.4.13.tar.gz | tar xvf - cd nagios-plugins-1.4.13 ./configure --with-nagios-user=nagios --with-nagios-group=nagios --without-pgsql make make install
启动 Nagios
cd /etc/init.d chkconfig --add nagios chkconfig nagios on
为了检查一切是否正常
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
最终
service nagios start
现在已经可以在 Nagios 中输入,打开浏览器并输入以下地址:https://127.0.0.1/nagios
以 nagiosadmin 作为用户名输入,并输入配置网络界面时我指示的密钥。
如果安装在将要受到监控的同一台机器上,请继续安装 PostgreSQL 插件,否则请继续执行下一个部分。
配置待监控的机器
需求
- PostgreSQL(本手册中的说明已通过版本 8.3.7 测试)
- Xinetd
- GCC
- Perl
创建一个 Nagios 用户
useradd -m nagios passwd nagios
安装 Nagios 插件
稍后我们会手动安装 PostgreSQL 插件,以确保使用最新版本。
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz gunzip -dc nagios-plugins-1.4.13.tar.gz | tar xvf - cd nagios-plugins-1.4.13 ./configure --with-nagios-user=nagios --with-nagios-group=nagios --without-pgsql make make install chown -R nagios.nagios /usr/local/nagios
安装 Nagios 的 nrpe 模块
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz gunzip -dc nrpe-2.12.tar.gz | tar xvf - cd nrpe-2.12 ./configure make all make install-plugin make install-daemon make install-daemon-config make install-xinetd
配置 nrpe 模块
修改文件 /etc/xinet.d/nrpe
modificar el valor del campo “only_from” por la ip del servidor que se va a monitorear
修改文件 /etc/services
agregar la siguiente linea “nrpe 5666/tcp #NRPE”
配置监控服务器,以便其检查远程机器上的服务
安装 Nagios 的 nrpe 模块
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz gunzip -dc nrpe-2.12.tar.gz | tar xvf - cd nrpe-2.12 ./configure make all make install-plugin
测试 nrpe 模块
/usr/local/nagios/libexec/check_nrpe -H <ip servidor monitoreado>
编辑文件 /usr/local/nagios/etc/objects/commands.cfg
将以下行添加到文件的末尾
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
我们必须向 Nagios 指示我们会编辑文件 /usr/local/nagios/etc/nagios.cfg 来监控另一台机器,在“OBJECT CONFIGURATION FILE(S)”部分添加以下行
cfg_file = /usr/local/nagios/etc/objects/dbhost.cfg
在 dbhost.cfg 文件中创建主机定义
define host{ use linux-server host_name dbserver alias pgsql 8.3 address IP.del.servidor.PostgreSQL }
service nagios restart
安装用于监控 PostgreSQL 的插件(在将要监控的服务器上)
Descargar el archivo check_postgres.tar.gz desde http://bucardo.org/check_postgres gunzip -dc check_postgres.tar.gz | tar xvf - cd check_postgres cp check_postgres.pl /usr/local/nagios/libexec/. perl /usr/local/nagios/libexec/check_postgres.pl –symlinks
要安装检查,必须为我们在 /usr/local/nagios/etc/nrpe.cfg 文件中将要监控的每个服务创建一个条目,类似于(必须在 “COMMAND DEFINITIONS” 部分中添加):
command[check_postgres_locks]=/usr/local/nagios/libexec/check_postgres_locks -w 2 -c 3
命令可以从 http://bucardo.org/check_postgres/check_postgres.pl.html 获取。
然后,我们必须指示要监控的服务,在监控服务器上创建 /usr/local/nagios/etc/objects/dbhost.cfg 文件中的以下条目。
define service { use generic-service host_name dbserver service_description PGSQL locks check_command check_nrpe!check_postgres_locks }
define service{ use generic-service host_name dbserver service_description CPU Load check_command check_nrpe!check_load }
define service{ use generic-service host_name dbserver service_description Current users check_command check_nrpe!check_users }
define service{ use generic-service host_name dbserver service_description Total Processes check_command check_nrpe!check_total_procs }
define service{ use generic-service host_name dbserver service_description Zombie Processes check_command check_nrpe!check_zombie_procs }