Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 1569|回复: 1

linux-监控-nagios和cacti整合

[复制链接]

22

主题

69

帖子

2157

积分

金牌会员

Rank: 6Rank: 6

积分
2157
发表于 2015-4-23 22:33:08 | 显示全部楼层 |阅读模式
本帖最后由 kongzi68 于 2015-4-23 22:45 编辑

阅读提示,从笔记里面粘贴过来产生了很多错误,请下载附件作参考。

安装前了解

Nagios安装部署与Cacti整合文档:http://blog.chinaunix.net/uid-7589639-id-349130.html
Nagios与Cacti整合:http://mengsir.blog.51cto.com/2992083/1253825/
NPC插件官方介绍页:http://forums.cacti.net/viewtopic.php?f=14&t=26540
npc是cacti的插件,下载链接:ftp://sourceforge.nchc.org.tw/g/gi/gibtmirdas/npc-2.0.4.tar.gz
ndoutils是nagios的插件,下载链接:http://cznic.dl.sourceforge.net/project/nagios/ndoutils-2.x/ndoutils-2.0.0/ndoutils-2.0.0.tar.gz
-------------------
从php5.2版本开始,默认开启json支持,因此并不需要安装:
http://pecl.php.net/package/json
http://pecl.php.net/get/json-1.2.1.tgz
整合cacti和nagios是利用了cacti的一个插件nagios for cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios的结果展示出来。


安装环境准备:通过yum搭建的LAMP环境,并且成功安装了cacti与nagios
ndoutils  →nagios的插件,写入查询的数据到mysql

1、ndoutils安装

[root@kongxl ndoutils-2.0.0]# rpm -qamysql*      //安装前请检查是否安装mysql-devel与mysql-libs
mysql-5.1.73-3.el6_5.x86_64
mysql-libs-5.1.73-3.el6_5.x86_64
mysql-devel-5.1.73-3.el6_5.x86_64
mysql-server-5.1.73-3.el6_5.x86_64

[root@kongxl nagios]# cd /soft/ ; tar-xf ndoutils-2.0.0.tar.gz  ; cd ndoutils-2.0.0
[root@kongxl ndoutils-2.0.0]# ./configure--prefix=/usr/local/nagios/ --with-mysql-lib=/usr/lib/mysql/ --enable-mysql--with-ndo2db-user=nagios --with-ndo2db-group=nagios
注意:第一步预编译非常重要,若有任何警告,都需要处理掉,否则后期nagios.log日志里面报错不能打开数据库啥的。
[root@kongxl ndoutils-2.0.0]# ./configure  --with-ndo2db-user=nagios --with-ndo2db-group=nagios
[root@kongxl ndoutils-2.0.0]# make -j4&& make -j4 install

[root@kongxl ndoutils-2.0.0]# cpconfig/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
[root@kongxl ndoutils-2.0.0]# cpconfig/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg   

2、修改ndo2db.cfg配置文件

修改以下主要内容:
[root@kongxl etc]# vi/usr/local/nagios/etc/ndo2db.cfg
socket_type=tcp
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=123456
debug_level=2
-----------------------
以下是这个配置的全部内容:
[root@kongxl ndoutils-2.0.0]# grep -v"^#" /usr/local/nagios/etc/ndo2db.cfg |grep -v "^$"
lock_file=/usr/local/nagios/var/ndo2db.lock
ndo2db_user=nagios
ndo2db_group=nagios
socket_type=tcp
socket_name=/usr/local/nagios/var/ndo.sock
tcp_port=5668
use_ssl=0
db_servertype=mysql
db_host=localhost
db_port=3306
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=123456
max_timedevents_age=1440
max_systemcommands_age=10080
max_servicechecks_age=10080
max_hostchecks_age=10080
max_eventhandlers_age=44640
max_externalcommands_age=44640
max_notifications_age=44640
max_contactnotifications=44640
max_contactnotificationmethods=44640
max_logentries_age=129600
max_acknowledgements_age=44640
debug_level=2
debug_verbosity=1
debug_file=/usr/local/nagios/var/ndo2db.debug
max_debug_file_size=1000000


3、修改ndomod.cfg配置文件

修改以下主要内容:
[root@kongxl etc]# vi/usr/local/nagios/etc/ndomod.cfg
output_type=tcpsocket
output=127.0.0.1
-----------------------
以下是这个配置的全部内容:
[root@kongxl etc]#  grep -v"^#" /usr/local/nagios/etc/ndomod.cfg |grep -v"^$"      
instance_name=default
output_type=tcpsocket
output=127.0.0.1
tcp_port=5668
use_ssl=0
output_buffer_items=5000
buffer_file=/usr/local/nagios/var/ndomod.tmp
file_rotation_interval=14400
file_rotation_timeout=60
reconnect_interval=15
reconnect_warning_interval=15
acknowledgement_data=1
adaptive_contact_data=1
adaptive_host_data=1
adaptive_program_data=1
adaptive_service_data=1
aggregated_status_data=1
comment_data=1
contact_status_data=1
downtime_data=1
event_handler_data=1
external_command_data=1
flapping_data=1
host_check_data=1
host_status_data=1
log_data=1
main_config_data=1
notification_data=1
object_config_data=1
process_data=1
program_status_data=1
retention_data=1
service_check_data=1
service_status_data=1
statechange_data=1
system_command_data=1
timed_event_data=1
config_output_options=2


4、在nagios.cfg文件最末尾添加如下语句:

[root@kongxl etc]# vi/usr/local/nagios/etc/nagios.cfg
broker_module=/usr/local/nagios/bin/ndomod.oconfig_file=/usr/local/nagios/etc/ndomod.cfg
-------------------
[root@kongxl etc]# echo"broker_module=/usr/local/nagios/bin/ndomod.oconfig_file=/usr/local/nagios/etc/ndomod.cfg"  >>/usr/local/nagios/etc/nagios.cfg   


npc  →cacti的插件,NagiosPlugin for Cacti

cacti的插件安装方法:
[root@kongxl soft]# tar -xfnpc-2.0.4.tar.gz ; mv npc /var/www/html/cacti/plugins/

安装后的设置:
Console -> Plugin Management,启用npc插件。
Console -> Cacti Settings -> NPC
111.jpg
/usr/local/nagios/var/rw/nagios.cmd



npc与ndoutils的其它配置与启动

1、修改以npc开头的表

查看后台日志还需要在mysql里面执行如下sql语句,因为以npc开头的表里没有字段 `long_output`
根据nagios版本以及各插件版本的不同可编辑

nagios高于4.0(包括)
CREATE TABLE IF NOT EXISTS`npc_service_parentservices` (
  `service_parentservice_id` int(11)NOT NULL auto_increment,
  `instance_id` smallint(6) NOT NULLdefault '0',
  `service_id` int(11) NOT NULLdefault '0',
  `parent_service_object_id` int(11)NOT NULL default '0',
  PRIMARY KEY (`service_parentservice_id`),
  UNIQUE KEY `instance_id`(`service_id`,`parent_service_object_id`)
) ENGINE=MyISAM  COMMENT='Parentservices';
ALTER TABLE `npc_hostchecks` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_hoststatus` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_servicechecks` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_servicestatus` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_statehistory` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_eventhandlers` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_systemcommands` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_notifications` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_services` ADD COLUMN`importance` varchar(8192) NOT NULL default '' AFTER `icon_image_alt`;
ALTER TABLE `npc_contacts` ADD COLUMN`minimum_importance` varchar(8192) NOT NULL default '' AFTER`notify_host_downtime`;
ALTER TABLE `npc_hosts` ADD COLUMN`importance` varchar(8192) NOT NULL default '' AFTER `z_3d`;
--------------------------
nagios版本低于4.0
ALTER TABLE `npc_hostchecks` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_hoststatus` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_servicechecks` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_servicestatus` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_statehistory` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_eventhandlers` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_systemcommands` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_notifications` ADD COLUMN`long_output` varchar(8192) NOT NULL default '' AFTER `output`;
------------------------
把这个字段添加到cacti仓库
[root@kongxl nagios]# vi/usr/local/nagios/npcadd.sql
[root@kongxl nagios]# mysql
mysql> use cacti
mysql> source /usr/local/nagios/npcadd.sql;
------------------------
授权以cacti@localhost登陆
mysql> use mysql;
mysql> select user,host from user whereuser='cacti';
mysql> grant all on cacti.* tocacti@localhost identified by '123456' ; flush privileges;

2、重启nagios和ndo2db

[root@kongxl nagios]# chown -Rnagios:nagios  /usr/local/nagios/       //重要!!!前面安装之后,可能导致文件所有者不对,需修改权限。
[root@kongxl nagios]#/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
[root@kongxl nagios]# /etc/init.d/nagiosreload
执行成功后,重载nagios和ndo2db即可,通过页面刷新可以看到如下界面即代表整合成功。


3、其它内容

①把开启程序写到开机文件里
vim /etc/rc.local
/usr/local/nagios/bin/ndo2db  -c   /usr/local/nagios/etc/ndo2db.cfg
/usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg
/etc/init.d/nagios reload

②重新启动ndo2db
[root@kongxl nagios]# ps -ef |grep ndo
nagios   18958      1  0 23:12?        00:00:00/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
root     19019   1121  0 23:13 pts/0    00:00:00 grep ndo
[root@kongxl nagios]# kill -9 18958
[root@kongxl nagios]# /usr/local/nagios/bin/ndo2db-c /usr/local/nagios/etc/ndo2db.cfg

③查看nagios.log日志
[root@kongxl ~]# tail -fn 20/usr/local/nagios/var/nagios.log



可能出现的错误:

错误内容①:
[1429500851] ndomod: Could not open datasink!  I'll keep trying, but some output may get lost...
[1429500851] ndomod registered for contactdata'
[1429500851] ndomod registered for contactnotification data'
[1429500851] Event broker module'/usr/local/nagios/bin/ndomod.o' initialized successfully.
-------------------
错误原因:貌似库cacti没有授权用户cacti@localhost
mysql> use mysql;
mysql> select user,host from user whereuser='cacti';
mysql> grant all on cacti.* tocacti@localhost identified by '123456' ; flush privileges;
--------------------
按照上面的方法处理之后,还是报错,通过下面的命令,修改一下权限,ok了。
错误原因:cp的两个配置文件权限不对。
[root@kongxl nagios]# chown -Rnagios:nagios  /usr/local/nagios/

因从笔记里面粘贴过来,产生了很多错误,请看下面的pdf文件,要准确些!!!
linux-监控-nagios和cacti整合.pdf (311.92 KB, 下载次数: 4)
回复

使用道具 举报

63

主题

161

帖子

2628

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2628
发表于 2015-4-23 22:42:15 | 显示全部楼层
总结得非常好,不愧是京峰的学员。赞你一个。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2019-3-22 00:16 , Processed in 0.067259 second(s), 18 queries , Apc On.

快速回复 返回顶部 返回列表