cacti整合nagios(centos)

花了近一天的时间整合了cacti和nagios,cacti用来检测运行状态nagios主要用来预警。期间参考了很多网友的文章,在此感谢下!在这里记录一下配置过程,以备后忘。。说整合其实只是表面的,cacti和nagios还是以他们原来的方式进行工作,ndo负责将nagios收集的数据存在数据库中,cacti的npc插件会从数据库中取数据在cacti的npc标签中来展现。 

环境是cenos5.1+最小化安装+development tools 
开始配置。。 

vi /etc/yum.repos.d/Dag.repo###定义第三方源 
[dag] 
name=Dag RPM Repository for Red Hat Enterprise Linux 
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag 
http://rh-
mirror.linux.iastate.edu/pub/dag/redhat/el$releasever/en/$basearch/dag 
http://wftp.tu-
chemnitz.de/pub/linux/dag/redhat/el$releasever/en/$basearch/dag 
http://archive.cs.uu.nl/mirror/dag.wieers/redhat/el$releasever/en/$basearch/dag 
http://apt.sw.be/redhat/el$releasever/en/$basearch/dag 
http://mirror.cpsc.ucalgary.ca/mirror/dag/redhat/el$releasever/en/$basearch/dag 
http://rpmfind.net/linux/dag/redhat/el$releasever/en/$basearch/dag 
http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag 
http://mirrors.ircam.fr/pub/dag/redhat/el$releasever/en/$basearch/dag 
gpgcheck=0 
enabled=1 
protect=0 
gpgcheck=1 
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
 
################################################## 

vi utterramblings.repo ###定义php独立源 

name=Jason's Utter Ramblings Repo 
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/     
enabled=1     
gpgcheck=1     
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka 
#########################################################################
 

一次性安装所需软件 
yum -y install httpd mysql-server rrdtool mysql-devel php-devel net-snmp php php-mysql php-gd php-pdo   php-snmp cacti nagios nagios-plugins 
或者也可以直接安装centos官方推荐软件库: 
下载rpm包 
wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
 
安装DAG的PGP Key 
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
 
验证下载包的完整性 
rpm -K rpmforge-release-0.3.6-1.el5.rf.*.rpm
 
安装包 
rpm -ivh rpmforge-release-0.3.6-1.el5.rf.*.rpm
 
参考网址: 
http://doc.linuxpk.com/58083.html
 

安装php-json 
wget http://www.aurore.net/projects/php-json/php-json-ext-1.2.0.tar.bz2 
tar xvjf php-json-ext-1.2.0.tar.bz2 
cd php-json-ext-1.2.0 
###初始化PHP环境 
phpize 
./configure 
make&&make install#####
 
(如果提示没有这个命令则首先要 
yum -y install php-devel 
如果还不行,说明你的编译工具有问题,安装一下就可以了 
yum -y install autoconf 
yum -y install automake 
yum -y install libtool 
 
查看有没有安装成功 
find / -name '*json.so' 
./usr/lib/php/modules/json.so 
说明已经有了 
vi /etc/php.ini 
添加 include ('/etc/php.d/json.ini')
 
vi /etc/php.d/json.ini 
内容如下: 
extension=json.so 
重启httpd 
apachectl graceful 

到此所需要的软件都安装完毕 

开始配置cacti 
修改cacti访问权限 
vi /etc/httpd/conf.d/cacti.conf 
如下: 
<Directory /var/www/cacti/> 
     DirectoryIndex index.php 
     Options -Indexes 
     AllowOverride all 
     order deny,allow 
     #deny from all 
     #allow from 127.0.0.1 
     allow from all 
     AddType application/x-httpd-php .php 
     php_flag magic_quotes_gpc on 
     php_flag track_vars on 
</Directory>
 
建立cacti数据库和授权 
mysqladmin create cacti 
mysql>grant all privileges on cacti.* to cacti@localhost identified by 'cacti'; 
mysql>flush privileges; 
mysql>exit;
 
导入数据: 
cd /var/www/cacti 
mysql -ucacti -p   cacti<cacti.sql
 
更改配置: 
vi /var/www/cacti/include/config.php 
$database_username = "cacti"; 
$database_password = "cacti";
 
vi /var/www/cacti/include/globle.php 
$database_username = "cacti"; 
$database_password = "cacti";
 
制定任务计划: 
crontab -e -u cacti
 
*/5 * * * * php -f /var/www/cacti/poller.php >/dev/null 2>&1 
重新启动apache 
service httpd restart
 
访问http://yourserver/cacti/ 进行安装,用户名密码都是admin 
下载cacti插件管理器 
wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7d-PA-v2.4.zip 
unzip cacti-plugin-0.8.7d-PA-v2.4.zip 
cd files-0.8.7d 
cp -rf * /var/www/cacti/
 
导入数据: 
cd .. 
mysql -ucacti -pcacti cacti<pa.sql####也可以使用root
 
更改访问路径: 
vi /var/www/cacti/include/globle.php 
$config['url_path'] = '/cacti/';
 

配置nagios 
我这里面没有更进一步配置nagios,npc安装完后nagios会自动启动本机的一些监控项目,如果想要监控其他的主机,则需要单独配置nagios,npc会予以展示 
更改apache访问权限使nagios可以正常使用 
htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
 
安装ndoutils 
wget http://sourceforge.net/project/downloading.php?group_id=26589&filename=ndoutils-1.4b7.tar.gz 
tar zxvf ndoutils-1.4b7.tar.gz 
cd ndoutils-1.4b7 
./configure   --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios 
make clean 
make 
复制文件 
cd src 
cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/bin/ 
cd ../config 
cp ndo2db.cfg ndomod.cfg /etc/nagios/ 
配置文件 
vi /etc/nagios/ndo2db.cfg
 
socket_name=/var/nagios/ndo.sock 
db_name=cacti 
db_prefix=npc_ 
db_user=cacti 
db_pass=cacti 
debug_level=1 
debug_file=/var/nagios/ndo2db.debug
 
vi /etc/nagios/ndomod.cfg 
output=/var/nagios/ndo.sock 
buffer_file=/var/nagios/ndomod.tmp
 
vi /etc/nagios/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 


安装npc 
wget http://www.assembla.com/spaces/npc/documents/aUjAwmdW8r3BuPab7jnrAJ/download?filename=npc-2.0.0b.166.tar.gz 
tar zxvf npc-2.0.0b.166.tar.gz 
cd npc 
拷贝内容到cacti plugins文件夹 
cp npc /var/www/cacti/plugins/ 
添加插件识别 
vi /var/www/cacti/include/globle.php 
$plugins[] = 'npc'; 
到此 所有需要安装的东西完毕
 
使用npc 
进入你的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 URL:                    http://yourserver/nagios/ 
save一下
 
 
可能出现的问题 
1.npc页面空白或者提示无法访问npc.php 
确认安装并配置php-jsion正确 
2.cacti无图或者没有数据 
这个问题很多 
参考http://www.youyongming.cn/blog/article.asp?id=790
3.出现类似Error: Missing Dependency: mysql = 5.0.45-7.el5 is needed by package mysql-server的情况
请删除系统中已经安装的包,例如已经安装不同版本的mysql则出现上述问题
4.使用root登陆时候提示:Access denied for user 'root'@'localhost' (using password: NO/YES)
默认使用yum安装mysql后,root密码为空,出现这个问题从下面两个点入手,以下部分内容参考网络,感谢网友;
如果此方法行不通,那么参考我如下的方法(偶弄了半天,毕竟是菜鸟。。)
service mysqld stop
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -uroot mysql
select user();查看返回的内容,如果如下所示:
+--------+
| user() |
+--------+
| root@ | 
+--------+
则需更改root登陆主机,参考如下命令:
mysql> UPDATE mysql.user SET Host='%' WHERE Host=' ' ;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%";
mysql> FLUSH PRIVILEGES ;
mysql>exit
service mysqld restart

 


本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/325434


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值