Cacti与nagios结合所需插件的安装与报错处理

Cacti和Nagios安装这里就不做介绍了

我们这里介绍的是nagios与cacti的整合,首先需要安装php json模块和ndoutils,其中Ndoutils是nagios的一个插件,就是可以用来把nagios的获取的数据存入到mysql数据库中。也可以实现与cacti的插件npc的集成,这个工具的安装是个关键。还需要安装使用npc插件。下面我们来一一介绍安装的方法。

一、安装Php-json

tar xzf json-1.2.1 ;

cd json-1.2.1 ;

/usr/bin/phpize ;

./configure ;

make ;

make install

安装完后,然后执行如下语句添加json模块:

echo "extension=json.so" >/etc/php.d/json.ini

使用php -m|grep json应该可以显示json这个字符

如果没显示这个字符,证明模块没有安装正确

解决方法:yum remove php-common,然后重新安装php-common

二、安装Ndoutils

Ndoutils安装

1.DBI的安装

到官网http://www.cpan.org/modules/by-module/DBI/ 下载

这里下载的是DBI-1.633.tar.gz

tar -zxvf DBI-1.633.tar.gz

cd DBI-1.633

perl Makefile.PL

make

make test

这里出现test错误,不用管他,继续安装。

make install

2. DBD的安装

DBD-mysql-4.025

tar -zxvf DBD-mysql-4.025.tar.gz

cd DBD-mysql-4.025

perl  Makefile.PL --libs="-L/usr/lib64/mysql #mysql 使用yum装的,检查配置时系统一般能找到头文件和库文件的位置,不用过多配置一些选项

make

make test

make install

3.NDOUTILS安装

编译安装NDOUtils

tar -zxvf ndoutils-2.0.0

cd ndoutils-2.0.0

./configure --prefix=/usr/local/nagios --enable-mysql

make

4.拷贝文件
我的Nagios是3.5.1,所以拷贝的是ndomod-3x.o、ndo2db-3x,如果你的是2.X.x请拷贝ndomod-2x.o、ndo2db-2x

cd  ndoutils-2.0.0

cd src

cp ndo2db-3x ndomod-3x.o file2sock log2ndo /usr/local/nagios/bin

cd /usr/local/nagios/bin

mv ndo2db-3x ndo2db

cd config

cp ndo2db.cfg-sample ndomod.cfg-sample /usr/local/nagios/etc/

cd  /usr/local/nagios/etc

mv ndo2db.cfg-sample ndo2db.cfg

mv ndomod.cfg-sample ndomod.cfg

5.编辑ndo2db.cfg配置文件

vim /usr/local/nagios/etc/ndo2db.cfg

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=cactiuser#数据库使用者

db_pass=huaxia#数据库密码

max_timedevents_age=1440

max_systemcommands_age=10080

max_servicechecks_age=10080

max_hostchecks_age=10080

max_eventhandlers_age=44640

max_externalcommands_age=44640

debug_level=0

debug_verbosity=1

debug_file=/usr/local/nagios/var/ndo2db.debug

max_debug_file_size=1000000

6.配置ndomod.cfg文件

vim /usr/local/nagios/etc/ndomod.cfg

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

data_processing_options=-1

config_output_options=2

8.配置nagios.cfg文件

vi /usr/local/nagios/etc/nagios.cfg

# 修改下面参数的值为-1(一般默认如此)。

event_broker_options=-1

# 复制下面内容粘贴到#broker_module=...下面。

# 注意broker_module= 和config_file是在一行上

# Uncomment the line below if you‘re running Nagios 3.x

broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg

process_performance_data=1#注意该参数修改成启动状态

9.配置启动脚本

cd  /usr/local/src/ndoutils-1.5.2

cp daemon-init /etc/init.d/ndo2db

chmod +x ndo2db

10、启动ndo2db服务

Service ndo2db start

11.重启nagios

service nagios restart

12.查看启动日志信息

[[email protected] var]# tail -f nagios.log

[1468292167] Successfully shutdown... (PID=29500)

[1468292167] ndomod: Shutdown complete.

[1468292167] Event broker module ‘/usr/local/nagios/bin/ndomod-3x.o‘ deinitialized successfully.

[1468292167] Nagios 3.5.1 starting... (PID=14197)

[1468292167] Local time is Tue Jul 12 10:56:07 CST 2016

[1468292167] LOG VERSION: 2.0

[1468292167] ndomod: NDOMOD 1.5.2 (06-08-2012) Copyright (c) 2009 Nagios Core Development Team and Community Contributors

[1468292167] ndomod: Could not open data sink!  I‘ll keep trying, but some output may get lost...

[1468292167] Event broker module ‘/usr/local/nagios/bin/ndomod-3x.o‘ initialized successfully.

[1468292167] Finished daemonizing... (New PID=14198)

[1468293079] ndomod: Still unable to connect to data sink.  721 items lost, 5000 queued items to flush.

查看到报错信息ndomod: Could not open data sink!  I‘ll keep trying, but some output may get lost...

[1468293079] ndomod: Still unable to connect to data sink.  721 items lost, 5000 queued items to flush.

从报错的信息可以看到ndomod没有把数据存到cacti数据库里,错误解决方法:

vim /usr/local/nagios/etc/ndo2db.cfg

ndo2db_group=apache#修改数据库的属组为apache

cd /usr/local/nagios/bin

chown nagios:apache ndo*#把两个主程序的属组改为apache

cd ../etc

chown nagios:apache ndo*#把两个配置文件的属组改为apache

13、重启相关服务

service ndo2db restart

service nagios restart

14、再次查看启动日志,发现启动成功,ndomod已经连接上cacti数据库

[[email protected] ~]# tail -f /var/log/messages
Mar 24 09:31:25 localhost nagios: ndomod registered for retention data‘
Mar 24 09:31:25 localhost nagios: ndomod registered for contact data‘
Mar 24 09:31:25 localhost nagios: ndomod registered for contact notification data‘
Mar 24 09:31:25 localhost nagios: ndomod registered for acknowledgement data‘
Mar 24 09:31:25 localhost nagios: ndomod registered for contact status data‘
Mar 24 09:31:25 localhost nagios: ndomod registered for adaptive contact data‘
Mar 24 09:31:25 localhost nagios: Event broker module ‘/usr/local/nagios/bin/ndomod-3x.o‘ initialized successfully.
Mar 24 09:31:25 localhost nagios: Finished daemonizing... (New PID=1828)
Mar 24 10:31:25 localhost nagios: Auto-save of retention data completed successfully.
Mar 24 10:47:35 localhost kernel: hrtimer: interrupt took 3738538 ns

三、安装npc软件

tar  -vxzf  npc-2.0.4.tar.gz ;

mv  npc  /var/www/html/cacti/plugins/

1、通过界面启动npc

2、在Cacti的"console"的"Settings"里设置好nagios命令文件的主路径和nagios的URL的路径,注意勾上"Romote Commands"项,点击"Save"按钮

3、再cacti数据库里,执行下面的sql语句

mysql里面执行如下sql即可:

mysql> use cacti;

alter table npc_eventhandlers add long_output TEXT NOT NULL default ‘‘ after output;

alter table npc_hostchecks add long_output TEXT NOT NULL default ‘‘ after output;

alter table npc_hoststatus add long_output TEXT NOT NULL default ‘‘ after output;

alter table npc_notifications add long_output TEXT NOT NULL default ‘‘ after output;

alter table npc_servicechecks add long_output TEXT NOT NULL default ‘‘ after output;

alter table npc_servicestatus add long_output TEXT NOT NULL default ‘‘ after output;

alter table npc_statehistory add long_output TEXT NOT NULL default ‘‘ after output;

alter table npc_systemcommands add long_output TEXT NOT NULL default ‘‘ after output;

4、执行成功后,重启nagios和ndo2db,下面界面是nagios与cacti的整合效果图:

遇到的问题

1)、假如这里的Nagios的状态是off

我也曾遇到,主要是检查ndo2db连cacti库是否正常,可以查看/var/log/messages

里的日志信息,看不到信息可能是你的ndomod.cfg和ndo2db.cfg配置有错误!建议检查配置文件。同时在cacti数据库里执行上面提示的几条sql语句。

2)、假如nagios状态栏无信息

在cacti的数据库中找到表npc_programstatus,从表中选取programstatus_id、instance_id、status_update_time、last_command_check、last_log_rotation等几个字段并删除前面的一条记录,刷新一会,应该就可以出图。如下图所示:

时间: 2024-11-05 06:01:54

Cacti与nagios结合所需插件的安装与报错处理的相关文章

Eclipse 插件之间互相依赖, 导出Jar包安装, 报错“java.lang.NoClassDefFoundError”

在开发 插件A 与 插件 B 过程中, Plugin A 需要使用到 Plugin B 的某一个类 ClassB, 假设ClassB 位于 Plugin B  的PackageB 中, 那么需要在Plugin B 的manifest.mf 文件中添加: Export-Package: PackageB 并在Plugin B 的manifest.mf 文件中添加: Import-Package: PackageB 以此声明依赖关系. 分别导出两个插件的Jar包后,拷贝到Eclipse的/plugi

Archlinux/Manjaro使用makepkg安装软件 报错:未找到strip分割所需的二进制文件 的解决方法

使用archlinux或manjaro安装aurman时遇到如下报错 错误:未找到strip分割所需的二进制文件 原因:未安装gcc编译器 解决: sudo pacman -S gcc 原文地址:https://www.cnblogs.com/renren-study-notes/p/10229774.html

java.lang.NoSuchMethodError,jenkins插件升级导致问题报错

Started by user test java.lang.NoSuchMethodError: org.eclipse.jgit.lib.Repository.getRef(Ljava/lang/String;)Lorg/eclipse/jgit/lib/Ref; at jenkins.plugins.git.GitSCMFileSystem$1.invoke(GitSCMFileSystem.java:117) at jenkins.plugins.git.GitSCMFileSystem

解决使用mybatis分页插件PageHelper的一个报错问题

在项目中使用PageHelper进行分页,启动运行时报错,报错如下: 27-Aug-2017 09:58:48.017 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete li

myeclipse中使用maven插件的时候,报错-Dmaven.multiModuleProjectDirectory system propery is not set.

-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match. 直接的解决方法:使用低版本的maven 可以设一个环境变量M2_HOME指向你的maven安装目录 M2_HOME=D:\maven\apache-maven-3.3.9 然后在Window->Preference->Java->Installed

「Unity」使用TexturePacker的插件TexturePackerImporter.dll 编译报错解决方案

原创文章,转载请注明出处 http://www.cnblogs.com/777777-716/p/5064079.html 错误如下: ArgumentException: The Assembly UnityEditor is referenced by TexturePackerImporter ('Assets/Plugins/TexturePacker/TexturePackerImporter.dll'). But the dll is not allowed to be includ

antd中按需加载使用react-app-rewired报错

[描述] 按照antd官网步骤 https://ant.design/docs/react/use-with-create-react-app-cn 最后yarn start会报错 [解决方法] 原因是react-scripts 升级到 2.1.2 以后破坏了 react-app-rewired 解决方法,对react-scripts进行降级处理 yarn add [email protected] 参考: https://blog.csdn.net/weixin_39836173/articl

Nagios监控MySQL报错:NRPE: Unable to read output的详细解决过程

前言:nagios界面上,看到监控mysql服务报错如下: Warning:NRPE: Unable to read output 1,去nagios监控服务器上check下 1.1,执行check_nrpe命令远程调用 在监控端nagios服务器上执行check_nrpe检查mysql状态报错如下: [[email protected] ~]# /usr/lib/nagios/plugins/check_nrpe  -H192.xx.180.xx -c check_mysql_status N

vim插件command-t安装

vim插件command-t应用频率很高,网上介绍的文章也很多,这篇博文主要记录一下安装需要注意的细节问题.vim插件管理器使用vundle. command-t依赖的linux组件主要有gcc.ruby.ruby-devel.任何一个没有安装都会报错.在安装之前最好检查一下.centos主要用命令rpm -qa|grep命令,比如rpm -qa|grep gcc 具体安装步骤 安装vundle.vundle的安装步骤详见https://github.com/gmarik/Vundle.vim.