cacti 与 nagios 一些总结 【六】

可参考

http://www.cacti.net/

http://blog.chinaunix.net/uid-24727220-id-3025015.html

http://blog.fity.cn/post/369/

cacti 问题汇总 总有你遇见的

1、cacti简介

1)、cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

2)、mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。

3)、snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。

2、软件包准备

cacti-0.8.8b.tar.gz

httpd-2.2.23.tar.gz

php-5.4.10.tar.gz

cmake-2.8.11.2.tar.gz

mysql-5.5.28.tar.gz

rrdtool-1.4.8.tar.gz

net-snmp-5.7.2.1.tar.gz

Python-2.7.6.tgz

libxml2-2.9.1.tar.gz

zlib-1.2.8.tar.gz

jpegsrc.v9a.tar.gz

libpng-1.6.12.tar.gz

freetype-2.5.3.tar.gz

libart_lgpl-2.3.21.tar.gz

gettext-0.19.2.tar.xz

libgd-2.1.0.tar.gz

curl-7.37.1.tar.gz

3、apache安装配置

# tar zxvf httpd-2.2.23.tar.gz

# cd httpd-2.2.23

# ./configure --prefix=/usr/local/apache2 --enable-so

# make && make install

# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

4、mysql安装配置

# tar zxvf cmake-2.8.11.2.tar.gz

# cd cmake-2.8.11.2

# ./configure

# make && make install

# groupadd mysql

# useradd mysql

# tar zxvf mysql-5.5.28.tar.gz

# cd mysql-5.5.28

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/  -DMYSQL_DATADIR=/usr/local/mysql/data  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock  -DMYSQL_USER=mysql  -DWITH_DEBUG=0

# make && make install

# vim /root/.bashrc

PATH=/usr/local/mysql/bin:${PATH}

export PATH

# source /root/.bashrc

# cp support-files/my-medium.cnf /etc/my.cnf

# cp support-files/mysql.server /etc/init.d/mysqld

# chmod 755 /etc/init.d/mysqld

# chmod 755 /usr/local/src/mysql-5.5.28/scripts/mysql_install_db

# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

# chown -R mysql.mysql /usr/local/mysql/data

# service mysqld start

# mysqladmin -uroot password 123456

# mysqladmin --user=root -p create cacti

# mysql -uroot -p cacti<cacti.sql

mysql>GRANT ALL ON cacti.* TO [email protected] IDENTIFIED BY ‘cactipassword‘;

mysql>flush privileges;

5、GD安装配置

1)、安装libxml2

# tar zxvf Python-2.7.6.tgz #貌似只能是这个版本,否则编译libxml2时会报错

# cd Python-2.7.6

# ./configure --prefix=/usr/local/python

# make && make install

# tar zxvf libxml2-2.9.1.tar.gz

# cd libxml2-2.9.1

# ./configure --prefix=/usr/local/libxml2

# make && make install

2)、安装zlib

# tar zxvf zlib-1.2.8.tar.gz

# cd zlib-1.2.8

# ./configure --prefix=/usr/local/zlib2

# make && make install

# yum install -y zlib-devel

3)、安装jpegsrc

# tar zxvf jpegsrc.v9a.tar.gz

# cd jpeg-9a

# ./configure --prefix=/usr/local/jpegsrc9

# make && make install

4)、安装libpng

# tar zxvf libpng-1.6.12.tar.gz

# cd libpng-1.6.12

# ./configure --prefix=/usr/local/libpng2

# make && make install

5)、安装freetype

# tar zxvf freetype-2.5.3.tar.gz

# cd freetype-2.5.3

# ./configure --prefix=/usr/local/freetype2

# make && make install

6)、安装libart_lgpl

# tar zxvf libart_lgpl-2.3.21.tar.gz

# cd libart_lgpl-2.3.21

# ./configure --prefix=/usr/local/libart

# make && make install

7)、安装gettext

# xz -d gettext-0.19.2.tar.xz

# tar xvf gettext-0.19.2.tar

# cd gettext-0.19.2

# ./configure --prefix=/usr/local/gettext

# make && make install

8)、安装GD

# tar zxvf libgd-2.1.0.tar.gz

# cd libgd-2.1.0

9)、安装curl

# tar zxvf curl-7.37.1.tar.gz

# cd curl-7.37.1

# ./configure --prefix=/usr/local/curl

# make && make install

6、php安装配置

# yum install -y libxml2-devel freetype-devel

# tar zxvf php-5.4.10.tar.gz

# cd php-5.4.10

# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-jpeg-dir=/usr/local/jpeg9/ --with-png-dir=/usr/local/libpng2/ --with-gd --with-freetype-dir=/usr/local/freetype2/ --with-zlib-dir=/usr/local/zlib2/ --with-mysql=/usr/local/mysql --with-curl=/usr/local/curl --with-gettext=/usr/local/gettext --enable-sockets

# make && make install

# cp php.ini-development /usr/local/php/lib/php.ini

# ln -s /usr/local/php/bin/php /usr/bin

# vim /usr/local/apache2/conf/httpd.conf

在#AddType application/x-tar.tgz后追加:AddType application/x-httpd-php .php

在#LoadModule foo_module modules/mod_foo.so后追加:LoadModule php5_module  modules/libphp5.so

在DirectoryIndexindex.html后面追加index.php

7、rrdtool安装配置

# yum install -y freetype-devel libart_lgpl-devel gd-devel cairo cairo-devel pango pango-devel

# tar zxvf rrdtool-1.4.8.tar.gz

# cd rrdtool-1.4.8

# ./configure --prefix=/usr/local/rrdtool

# make && make install

# ln -s /usr/local/rrdtool/bin/rrdtool /usr/bin

8、net-snmp安装配置

# tar zxvf net-snmp-5.7.2.1.tar.gz

# cd net-snmp-5.7.2.1

# ./configure --prefix=/usr/local/net-snmp

# make && make install

# ln –s /usr/local/net-snmp/bin/* /usr/local/bin/

# cp /usr/local/src/net-snmp-5.7.2.1/EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf

# vim /usr/local/net-snmp/share/snmp/snmpd.conf

添加以下内容

view    all           included   .1

view    systemview    included   .1.3.6.1.2.1.2

# /usr/local/net-snmp/sbin/snmpd

# lsof -i:161

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

snmpd   41107 root    8u  IPv4 616363      0t0  UDP localhost:snmp

# snmpwalk -v 1 -c public localhost system

# vim /etc/rc.d/rc.local

追加以下内容,开机自启动

/usr/local/net-snmp/sbin/snmpd

# 关于snmpd.conf的内容还可以引用以下配置

com2sec notConfigUser  default       test

group   notConfigGroup v1           notConfigUser

group   notConfigGroup v2c           notConfigUser

view    all           included   .1

view    systemview    included   .1.3.6.1.2.1.1

view    systemview    included   .1.3.6.1.2.1.2

view    systemview    included   .1.3.6.1.2.1.25.1.1

access  notConfigGroup ""      any       noauth    exact  all none none

com2sec local     localhost        test

com2sec mynetwork 10.0.2.0/24      test

view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc

9、cacti安装配置

# tar zxvf cacti-0.8.8b.tar.gz

# mv cacti-0.8.8b /usr/local/cacti

# vim /usr/local/apache2/conf/httpd.conf

DocumentRoot "/usr/local/apache2/htdocs" => DocumentRoot "/usr/local/cacti"

<Directory "/usr/local/apache2/htdocs"> => <Directory "/usr/local/cacti">

# vim /usr/local/cacti/include/config.php

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "cactipassword";

$database_port = "3306";

$database_ssl = false;

/* load up old style plugins here */   #enable plugins

$plugins = array();

//$plugins[] = ‘thold‘;

# useradd cactiuser

# chown -R cactiuser.cactiuser ./rra ./log

# service httpd restart

# rrdtool fetch localhost_users_6.rrd AVERAGE|MAX#查看rrd文件是否有数据

10、被监控机安装snmp服务

# yum install -y net-snmp*

# vim /etc/snmp/snmpd.conf

view    all           included   .1

view    systemview    included   .1.3.6.1.2.1.2

# service snmpd start

# lsof -i:161

11、问题汇总

问题1:

Warning: strtotime(): It is not safe to rely on the system‘s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC‘ for now, but please set date.timezone to select your timezone. in /usr/local/apache2/htdocs/cacti/include/global_constants.php on line 165

解决方法:

# vim /usr/local/php/lib/php.ini

修改

date.timezone = PRC

并取消注释

问题2:

PHP Strict Standards:  Only variables should be passed by reference in /usr/local/nginx/html/cacti/lib/ping.php on line 382 

解决方法:

socket_select($r = array($this->socket), $w = NULL, $f = NULL, $to_sec, $to_usec){ 

=>修改为

$r = array($this->socket);

$w = NULL;

$f = NULL;

switch(socket_select($r, $w, $f, $to_sec, $to_usec)){ 

问题3:

WARNING: Cron is out of sync with the Poller Interval!  The Poller Interval is ‘300‘ seconds, with a maximum of a ‘300‘ second Cron, but 2135 seconds have passed since the last poll!

解决方法:

*/1     *       *       *       *       /usr/bin/php /usr/local/apache2/htdocs/cacti/poller.php  > /dev/null 2>&1

时间: 2024-10-30 09:45:01

cacti 与 nagios 一些总结 【六】的相关文章

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/p

关于cacti和nagios两款开源监控软件的一些比较

cacti在监控方面有良好的绘图,在流量和图形塑造方面要强于nagios,但是在故障分析方面有些略逊,而且报警机制也有待完善,这时候nagios就可以排上用场了. nagios适合监视服务器上面的大批服务有没有正常运行,重点并不在于图形化的监控.但是其本身集成的报警功能是cacti本身很弱的或者说是没有的.但是在绘图方面和图形化塑造方面的精细度比不上cacti. 所以,虽然cacti和nagios都是网络监控软件,二选其一会减少很多不必要的麻烦,但是还是建议结合两者使用,取其优点,这样可以最大限

cacti和nagios整合

需要的安装包下载地址http://down.51cto.com/data/1877296 整合cacti+nagios整合cacti和nagios是利用了cacti的一个插件nagiosfor cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios 的结果展示出来. 1.安装php-json扩展,因为NPC使用了ExtJS,如过没有json的扩展NPC界面无法出来. # tar xf php-json-ex

cacti与nagios的 主动,被动监控

我一直比较赞同的是主动请求式的监控模式,主要原因是被动探测会给监控结点带来很大的压力,就Cacti而言,用Spine轮询,共35个设备,每分钟轮询一次,能吃掉我35%的CPU.相比之下,通过客户机主动发送请求给监控机的Ganglia,占用资源就非常小.一台监控机估计挂200台客户机监控不是问题.区别就在于,主动请求式是客户机把自己的监控信息主动发送给监控机,监控机只要接收这些信息处理即可.被动探测式是监控机把监控请求发送到客户机,客户机接到请求把需要的监控信息返回给监控结点.所以,被动探测式会给

Cacti+Nagios监控系统(四):Cacti整合Nagios

一.原理 整合cacti和nagios是利用了cacti的一个插件nagios for cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios的结果展示出来. 二.cacti扩展模块 cacti扩展模块需要下载安装cacti-plugin,cacti-0.8.8a及以后版本已集成此扩展模块不需要再单独安装,如果使用的是老版本cacti,扩展模块安装如下: cd /root/download wget htt

盘点:zabbix、cacti、nagios,服务器监控哪个好?

目前使用比较多的服务器监控软件有这三款:zabbix.cacti.nagios,简单介绍一下这三个软件. 1.zabbixzabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. 2.cactiCacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形工具. 3.nagiosNagios是一款开源的免费网络监视工

cacti 与 nagios 一些总结 【七】

当我们在安装或者使用cacti的时候,我们会遇到很多的问题,那这里转载一篇写的非常好的文章,供大家参考和学习,非常感谢原创! 一.数据库相关的常见问题 1.在安装php时或者Cactid/Spine/Cacti时出现 checking for mysql_init in -lmysqlclient_r… no configure: error: MySQL libraries not found 解决办法:由于在编译php时没有加上–with-mysql=/usr/local/mysql 导致无

Centos7安裝cacti 和nagios

cacti 一.環境準備 0.設置主機名稱,SELINUX,防火墻以及時區 [[email protected] ~]# hostnamectl set-hostname nms01 [[email protected] ~]# getenforce Disabled [[email protected] ~]# timedatectl set-timezone Asia/Shanghai [[email protected] ~]# systemctl stop firewalld.servi

cacti结合nagios

使用系统ubuntu12.0.45 监控软件,cacti 使用的是源码安装系统自带的版本过低需要添加插件(我不会)so nagios采用的系统自带版本 安装nagios apt-get install nagios3 中间出现的密码最好都填写一致以免出错 apt-get install ndoutils 最后输入mysql的root密码 编辑ndoutils   vim /etc/default/ndoutils ENABLE_NDOUTILS=1 Vim  /etc/nagios3/ndo2d