1 简要介绍
Nagios监控服务器的状态很强大,并且报警功能也很不错,但对像流量这样的持
续数据的展
1 简要介绍
Nagios监控服务器的状态很强大,并且报警功能也很不错,但对像流量这样的持
续数据的展现能力却比较弱,虽然有类似PNP这样的插件可以对数据进行存储展现,但在看习惯Cacti的图后,PNP这样粗燥的图就很难接受了,因此以下
大体描述了一下如何整合Nagios和Cacti,将点状态和线状态都清晰的展现。
cacti本身的thold的插件也可以提供报警功能,并且也可以支持
msn,fetion,email,并且能够自己创建模版,例如可以定义流量比如在10M-100M之间是正常,超过这个区间就进行报警等等,这个是非常
不错的。那么为什么要引进nagios呢,可以这么讲cacti所获取的信息都是通过snmp协议进行的,我们通过snmp可以获取什么呢,磁盘信息,流
量信息,负载信息等等,那么我们需要探测一个http服务是否正常怎么办,Nagios就是最好的解决办法,并且nagios的检测插件非常丰富,可以直
接拿来简单配置一下command就可以用了。因此在监控报警方面,cacti和nagios结合起来是比较好的选择。下来我就简单介绍一下如何架设这两
个服务,并对他们进行结合。说结合其实只是表面的,cacti和nagios还是以他们原来的方式进行工作,ndo负责将nagios收集的数据存在数据
库中,cacti的npc插件会从数据库中取数据在cacti的npc标签中来展现。是否需要结合其实按照自己的需求来吧,对于不同的系统管理员可能关心
的东西不一样。
以下试验在Centos5.2系统下进行,并且需要yum支持(这个东西真是好啊)
需要安装的软件:
1 nagios-3.0.6
ndoutils-1.4b
2 cacti-0.8.7b
cacti-plugin-arch
settings-0.5
npc(nagios plugin for cacti)
thold(暂时放在这里以后再详细描述)
monitor(暂时放在这里)
3 支持软件
httpd mysql mysql-devel(ndoutils需要它的支持) php5.2(由于Npc需要Json的支持,php5.1不支持json),rrdtool,net-snmp,libtool
2 支持软件的安装:
yum install httpd mysql-server rrdtool net-snmp
由于yum源提供的php目前版本为5.1.6不能够支持json,因此需要一个php的扩展源。
在/etc/yum.repos.d生成utterramblings.repo,内容如下
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=
enabled=1
gpgcheck=1
gpgkey=
yum install php php-mysql php-gd php-pdo php-json php-snmp
3 Cacti安装
yum install cacti
安装完成后,需要简单配置一下
1 修改......httpd/conf.d/cacti.conf 修改一下访问权限(默认只能本机访问)
2 导入mysql的数据
建立一个名为cacti数据库
mysql>create database cacti;
mysql>grant all . cacti.* to cacti@localhost identified by 'XXXXXX';
mysql>flush privileges;
导入数据: mysql -ucacti -pXXXXXX cacti
3 进行一下cacti数据库相关配置
cacti/include/config.php
cacti/include/global.php
配置一下数据库的名称,用户及密码
4 启动apache,通过 就可以访问
第一次访问会检查一下配置,并安装,没有问题的话最后finish就ok了
5 在cacti用户的cron里添加,这样cacti将每5分钟收集一次数据,poller.php路径按照自己的来
*/5 * * * * php -f /var/www/cacti/poller.php >/dev/null 2>&1
4 cacti的插件安装
wget
解压,然后将cacti-plugin-0.8.7b-PA-v2.1.diff复制到cacti的目录,
执行patch -p1 -N < cacti-plugin-0.8.7b-PA-v2.1.diff
(如果没有patch就安装一个yum install patch,----yum真是方便)
安装文件中有一个pa.sql的数据库文件需要导入
mysql -ucacti -pxxxxxx cacti
修改cacti/include/global.php文件
$config['url_path'] = '/cacti/';
这个url需要修改,按照自己的配置改吧。
5 Nagios安装
yum install nagios nagios-plugins
安装完后有几个地方需要进行配置
1 还是httpd的访问权限,安全起见还是生成一个passwd的吧
htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
这里需要说明一下用户名如果不是nagiosadmin的话,还需要修改cgi.cfg(yum 安装会将nagios的配置文件放在/etc/nagios下)
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
修改以上几个的nagiosadmin为自定义的用户名,否则你将没有权限看见服务器的信息。
2
nagios的安装到这里就完成了,至于详细的配置网上也有很多例子。nagios-3X支持模版继承,这个东西非常好,可以使今后的配置简单许多。
Nagios的配置很灵活,可以根据自己的想法来规整配置文件,可以将100个主机的信息写在一个配置文件里,也可以分开写在100个配置文件里。
Nagios的配置无非就是主机,服务,报警的配置,可以写成简单的脚本来实现快速添加。
6 ndoutils-1.4b安装
这个东东其实是将Nagios的配置及监控信息存储到数据库里,NPC通过调用ndo所存储的数据来展现Nagios的信息。
获取:
这个需要用到mysql的mysql-lib及mysql-inc,因此需要安装mysql-devel(yum install mysql-devel)
解压后,进入目录执行
./configure
--prefix=/usr/local/nagios/ --with-mysql-inc=/usr/include/mysql
--with-mysql-lib=/usr/lib64/mysql --enable-mysql --disable-pgsql
--with-ndo2db-user=nagios --with-ndo2db-group=nagios
依照自己安装的mysql-lib和mysql-inc指定它的目录,如果configure没有任何错误信息,就可以make一下,这里--prefix=/usr/local/nagios/其实要不要无所谓,并不实际安装它,make后我们仅需要它的部分文件。
执行make来进行编译
编译完成后(不需要make install)
进入 ndoutils-1.4b7/src目录<以下为ndo的执行文件>
cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/bin/
进入 ndoutils-1.4b7/config目录<以下为ndo的配置文件>
cp ndo2db.cfg ndomod.cfg /etc/nagios/
配置ndo2db.cfg
socket_name=/var/nagios/ndo.sock
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=xxxxx
debug_level=1
debug_file=/var/nagios/ndo2db.debug
以上为需要根据自己的实际情况配置的信息,其他配置可以根据自己需求来进行配置。
配置ndomod.cfg
output=/var/nagios/ndo.sock
buffer_file=/var/nagios/ndomod.tmp
以上是需要根据自己的实际情况修改的,yum安装和源码安装相关文件的位置可能不一样,根据自己的情况来写吧,ndo默认的配置是按照源码默认安装的文件配置的。
配置nagios.cfg文件
check_external_commands=1
command_check_interval = -1
event_broker_options = -1
broker_module = /usr/bin/ndomod-3x.o config_file=/etc/nagios/ndomod.cfg
process_performance_data=1
以上为需要更改的nagios.cfg的内容。
7 Npc的安装
解压,然后将整个文件夹cp至cacti/plugins/下
修改cacti/include/global.php
添加:
让cacti知道有这个插件
进入
在'User Management'中选择'admin',在下边'Realm Permissions'中钩选'Plugin
Management'。这时右侧会出现'Plugin
Management'连接,进去后在'uninstalled'中安装npc,然后在'intalled'中enable
npc,然后在回去admin的'Realm Permissions'中会出现'use npc',如果没有钩选就把它选中。
接着在右侧栏目中选择settings,点选npc的标签
钩选Remote Commands
Nagios Command File Path: /var/nagios/rw/nagios.cmd
<这个文件启动nagios后会产生,根据实际的位置写>
Nagios URL:
保存就可以了。
至此安装就完成了
启动mysql httpd ndo nagios
service mysqld start
service httpd start
/usr/bin/ndo2db-3x -c /etc/nagios/ndo2db.cfg
service nagios start
访问
选择npc标签就可以看到nagios所检测的主机信息,唯一不足的是我打开这个页面的速度有些慢,需要进一步寻找原因来进行优化.npc提供的这一套界面很好看(个人感觉)。
现能力却比较弱,虽然有类似PNP这样的插件可以对数据进行存储展现,但在看习惯Cacti的图后,PNP这样粗燥的图就很难接受了,因此以下
大体描述了一下如何整合Nagios和Cacti,将点状态和线状态都清晰的展现。
cacti本身的thold的插件也可以提供报警功能,并且也可以支持
msn,fetion,email,并且能够自己创建模版,例如可以定义流量比如在10M-100M之间是正常,超过这个区间就进行报警等等,这个是非常
不错的。那么为什么要引进nagios呢,可以这么讲cacti所获取的信息都是通过snmp协议进行的,我们通过snmp可以获取什么呢,磁盘信息,流
量信息,负载信息等等,那么我们需要探测一个http服务是否正常怎么办,Nagios就是最好的解决办法,并且nagios的检测插件非常丰富,可以直
接拿来简单配置一下command就可以用了。因此在监控报警方面,cacti和nagios结合起来是比较好的选择。下来我就简单介绍一下如何架设这两
个服务,并对他们进行结合。说结合其实只是表面的,cacti和nagios还是以他们原来的方式进行工作,ndo负责将nagios收集的数据存在数据
库中,cacti的npc插件会从数据库中取数据在cacti的npc标签中来展现。是否需要结合其实按照自己的需求来吧,对于不同的系统管理员可能关心
的东西不一样。
以下试验在Centos5.2系统下进行,并且需要yum支持(这个东西真是好啊)
需要安装的软件:
1 nagios-3.0.6
ndoutils-1.4b
2 cacti-0.8.7b
cacti-plugin-arch
settings-0.5
npc(nagios plugin for cacti)
thold(暂时放在这里以后再详细描述)
monitor(暂时放在这里)
3 支持软件
httpd mysql mysql-devel(ndoutils需要它的支持) php5.2(由于Npc需要Json的支持,php5.1不支持json),rrdtool,net-snmp,libtool
2 支持软件的安装:
yum install httpd mysql-server rrdtool net-snmp
由于yum源提供的php目前版本为5.1.6不能够支持json,因此需要一个php的扩展源。
在/etc/yum.repos.d生成utterramblings.repo,内容如下
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=
enabled=1
gpgcheck=1
gpgkey=
yum install php php-mysql php-gd php-pdo php-json php-snmp
3 Cacti安装
yum install cacti
安装完成后,需要简单配置一下
1 修改......httpd/conf.d/cacti.conf 修改一下访问权限(默认只能本机访问)
2 导入mysql的数据
建立一个名为cacti数据库
mysql>create database cacti;
mysql>grant all . cacti.* to cacti@localhost identified by 'XXXXXX';
mysql>flush privileges;
导入数据: mysql -ucacti -pXXXXXX cacti
3 进行一下cacti数据库相关配置
cacti/include/config.php
cacti/include/global.php
配置一下数据库的名称,用户及密码
4 启动apache,通过 就可以访问
第一次访问会检查一下配置,并安装,没有问题的话最后finish就ok了
5 在cacti用户的cron里添加,这样cacti将每5分钟收集一次数据,poller.php路径按照自己的来
*/5 * * * * php -f /var/www/cacti/poller.php >/dev/null 2>&1
4 cacti的插件安装
wget
解压,然后将cacti-plugin-0.8.7b-PA-v2.1.diff复制到cacti的目录,
执行patch -p1 -N < cacti-plugin-0.8.7b-PA-v2.1.diff
(如果没有patch就安装一个yum install patch,----yum真是方便)
安装文件中有一个pa.sql的数据库文件需要导入
mysql -ucacti -pxxxxxx cacti
修改cacti/include/global.php文件
$config['url_path'] = '/cacti/';
这个url需要修改,按照自己的配置改吧。
5 Nagios安装
yum install nagios nagios-plugins
安装完后有几个地方需要进行配置
1 还是httpd的访问权限,安全起见还是生成一个passwd的吧
htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
这里需要说明一下用户名如果不是nagiosadmin的话,还需要修改cgi.cfg(yum 安装会将nagios的配置文件放在/etc/nagios下)
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
修改以上几个的nagiosadmin为自定义的用户名,否则你将没有权限看见服务器的信息。
2
nagios的安装到这里就完成了,至于详细的配置网上也有很多例子。nagios-3X支持模版继承,这个东西非常好,可以使今后的配置简单许多。
Nagios的配置很灵活,可以根据自己的想法来规整配置文件,可以将100个主机的信息写在一个配置文件里,也可以分开写在100个配置文件里。
Nagios的配置无非就是主机,服务,报警的配置,可以写成简单的脚本来实现快速添加。
6 ndoutils-1.4b安装
这个东东其实是将Nagios的配置及监控信息存储到数据库里,NPC通过调用ndo所存储的数据来展现Nagios的信息。
获取:
这个需要用到mysql的mysql-lib及mysql-inc,因此需要安装mysql-devel(yum install mysql-devel)
解压后,进入目录执行
./configure
--prefix=/usr/local/nagios/ --with-mysql-inc=/usr/include/mysql
--with-mysql-lib=/usr/lib64/mysql --enable-mysql --disable-pgsql
--with-ndo2db-user=nagios --with-ndo2db-group=nagios
依照自己安装的mysql-lib和mysql-inc指定它的目录,如果configure没有任何错误信息,就可以make一下,这里--prefix=/usr/local/nagios/其实要不要无所谓,并不实际安装它,make后我们仅需要它的部分文件。
执行make来进行编译
编译完成后(不需要make install)
进入 ndoutils-1.4b7/src目录<以下为ndo的执行文件>
cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/bin/
进入 ndoutils-1.4b7/config目录<以下为ndo的配置文件>
cp ndo2db.cfg ndomod.cfg /etc/nagios/
配置ndo2db.cfg
socket_name=/var/nagios/ndo.sock
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=xxxxx
debug_level=1
debug_file=/var/nagios/ndo2db.debug
以上为需要根据自己的实际情况配置的信息,其他配置可以根据自己需求来进行配置。
配置ndomod.cfg
output=/var/nagios/ndo.sock
buffer_file=/var/nagios/ndomod.tmp
以上是需要根据自己的实际情况修改的,yum安装和源码安装相关文件的位置可能不一样,根据自己的情况来写吧,ndo默认的配置是按照源码默认安装的文件配置的。
配置nagios.cfg文件
check_external_commands=1
command_check_interval = -1
event_broker_options = -1
broker_module = /usr/bin/ndomod-3x.o config_file=/etc/nagios/ndomod.cfg
process_performance_data=1
以上为需要更改的nagios.cfg的内容。
7 Npc的安装
解压,然后将整个文件夹cp至cacti/plugins/下
修改cacti/include/global.php
添加:
让cacti知道有这个插件
进入
在'User Management'中选择'admin',在下边'Realm Permissions'中钩选'Plugin
Management'。这时右侧会出现'Plugin
Management'连接,进去后在'uninstalled'中安装npc,然后在'intalled'中enable
npc,然后在回去admin的'Realm Permissions'中会出现'use npc',如果没有钩选就把它选中。
接着在右侧栏目中选择settings,点选npc的标签
钩选Remote Commands
Nagios Command File Path: /var/nagios/rw/nagios.cmd
<这个文件启动nagios后会产生,根据实际的位置写>
Nagios URL:
保存就可以了。
至此安装就完成了
启动mysql httpd ndo nagios
service mysqld start
service httpd start
/usr/bin/ndo2db-3x -c /etc/nagios/ndo2db.cfg
service nagios start
访问
选择npc标签就可以看到nagios所检测的主机信息,唯一不足的是我打开这个页面的速度有些慢,需要进一步寻找原因来进行优化.npc提供的这一套界面很好看(个人感觉)。