分享

Centos下稳步实现Cacti监控的详细配置

 Dead n Gone 2011-12-29
最近用cacti 实现了对几台服务器的监控,期间遇到很多问题,通过借鉴网友的方法都一个个的解决了,我把具体的配置过程发在这里,希望对大家有所帮助。
 
 
 

 
   安装用到的 源码包有 cacti-memcached-1.0.tar.gz  mysql-cacti-templates-1.1.3.tar.gz  php-5.2.10.tar.gz cgilib-0.5.tar.tar  httpd-2.2.14.tar.gz 
rrdtool-1.3.6 cacti-nginx.tar.gz cacti-0.8.7e.tar.gz
   RPM
   还需要一些 rpm包 我是用yum 安装的,如果你能连接公网的话最好找个快点的 yum源 用yum 把他们都装上(省心又省力)
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers pango-devel net-snmp-devel net-snmp net-snmp-utils net-snmp-libs php-snmp
上面这些就差不多了,呵呵该升级的升级该安装的安装
pango-devel 这个包是装rrdtool 用的,现在先把他装上省的一会儿出错。
  Mysql
  好了首先是mysql,我用的是二进制包,所以直接解压就能用了
tar zxvf mysql-5.1.38-linux-x86_64.tar.gz
mv mysql-5.1.38-linux-x86_64-icc-glibc23 /usr/local/mysql
cd /usr/local/mysql
groupadd mysql
useradd -g mysql mysql
scripts/mysql_install_db --user=mysql #初始化数据库
chown -R root .
chown -R mysql data
chgrp -R mysql .
./bin/mysqld_safe --user=mysql & #启动
./bin/mysqladmin -u root password admin #给root用户设置密码
cp ./support-files/mysql.server /etc/init.d/mysqld
# 使用ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql建立一个软连接,使得可以在命令行下直接使用mysql命令
# 使用ln -s /usr/local/mysql/bin/mysqladmin /usr/local/bin/mysqladmin建立一个软连接,使得可以在命令行下直接使用mysqladmin命令
# 使用ln -s /usr/local/mysql/bin/mysqldump /usr/local/bin/mysqldump建立一个软连接,使得可以在命令行下直接使用mysqldump命令
# 使用ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/local/lib/建立一个软连接,是其他软件可以找到编译和运行时的库
 
/usr/local/mysql/bin/mysql -u root -padmin
让我们进入数据库并给cacti建立一个专用的库cactidb 下面这段授权我从bleach的无废话弄过来的,他写的很好,就是缺东西太多了。
mysql> create database cactidb;
mysql> grant all on cactidb.* to root;
mysql> grant all on cactidb.* to root@localhost;
mysql> grant all on cactidb.* to cactiuser;
mysql> grant all on cactidb.* to cactiuser@localhost;
mysql> set password for cactiuser@localhost=password('admin');
mysql> exit
好了,到这里mysql的设置就告一段落,下面该apache了
Apache
tar zxvf httpd-2.2.14.tar.gz
cd httpd-2.2.14
./configure --prefix=/usr/local/apache --enable-so
make
make config
apache安装没什么好说的,下面就该php了,在编译php的时候经常会报错,不过因为上面yum安装那些包就有针对php的所以这里我没遇到任何错误
如果您遇到了一些错误,请参考博客里的文章《安装php、rrdtool、phpmyadmin时遇到的问题及解决办法》
 
PHP
cd ..
tar zxvf php-5.2.10.tar.gz
cd php-5.2.10
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs
 --enable-sockets --with-zlib-dir=/usr/include --with-gd
make
make install
cp php.ini-dist /usr/local/php/php.ini
vim /usr/local/apache/conf/httpd.conf #修改apache的配置文件加入下面几行 用来对php进行支持
<Directory />  #一些安全的设置
#    Options FollowSymLinks
    Options None
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
DirectoryIndex index.php index.html index.html.var
保存退出
启动 apache
/usr/local/apache/bin/apachectl start
lsof -i:80 #查看apache是否已经启动
好了,让我们做个测试页面来验证apache是否已经支持php
vim /usr/local/apache/htdocs/ceshi.php
<?php
phpinfo( );
?>
在网址里输入http://localhost/ceshi.php 看看是否有php的相关信息
SNMP
如果有的话我们就进行下一步,配置 snmp 。因为我在上面把需要的几个包都已经装好了(net-snmp-devel net-snmp net-snmp-utils net-snmp-libs)
所以直接修改配置文件即可
vim /etc/snmp/snmpd.conf
找到下面几行并修改
#com2sec notConfigUser  default       public
com2sec notConfigUser   127.0.0.1       public  #default 改为127.0.0.1
(注意这里:如果你以后想往cacti里添加其他机器,只要在被监控的主机上把127.0.0.1改为cacti服务器的地址就行了)
#access  notConfigGroup ""      any       noauth    exact  systemview  none none
access  notConfigGroup ""      any       noauth    exact  all  none  none  #systemview 改为all
#view all    included  .1         80
view all    included  .1         80 #去掉注释
好了保存退出后
service snmpd restart
让我们测试一下,看看snmp是否已经正常工作 ,下面的命令 应该会得到本机的ip地址信息
snmpwalk -c public -v 1 -m ALL 127.0.0.1 .1.3.6.1.2.1.4.20
如果你添加了远程主机就用下面的命令测试
snmpwalk -c public -v 1 -m ALL 192.168.1.118 .1.3.6.1.2.1.4.20
ok如果成功,咱们就进入下一步,安装rrdtool 这个东西以前装他的时候费了好多功夫,后来他装上后才发现一切竟然如此简单...
rrdtool
tar zxvf rrdtool-1.3.6.tar.tar
cd rrdtool-1.3.6
./configure
可能会报下面这个错误
configure: error: Please fix the library issues listed above and try again.
解决方法
ls /usr/lib/pkgconfig/freetype2.pc #查看freetype是否已装好,如果装好就直接装pango-devel这个包,我也不知道为什么,反正是解决问题了。
/usr/lib/pkgconfig/freetype2.pc
yum install pango-devel
现在再./configure
make
make install
应该就不会报错了
Cacti
最后我们来安装和配置 cacti
useradd cactiuser -s /sbin/nologin
tar zxvf cacti-0.8.7e.tar.gz
mv cacti-0.8.7e /usr/local/apache/htdocs/cacti
cd /usr/local/apache/htdocs/cacti
chown -R cactiuser rra/ log/
cd scripts
chown cactiuser:users *
这几步权限设置很重要,改完权限后修改配置文件
vim /usr/local/apache/htdocs/cacti/include/config.php
$database_type = “mysql”;
$database_default = “cactidb”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “admin”;
只需要修改上面几行即可。
对了,不要忘记把cacti目录下的cacti.sql 导入cactidb数据库
/usr/local/mysql/bin/mysql -u root -padmin cactidb < cacti.sql

好了,让我们测试一下吧
http://192.168.1.163/cacti/
选择全新安装,路径要数据绝对路径

/usr/local/rrdtool-1.3.6/bin/rrdtool
/usr/local/php/bin/php
这两个路径一般cacti找不到,要手动填进去。
还有要注意的是,在Settings 选项里有个rrdtool的版本选项,一定要选择你当前使用的版本,要不没有图像

现在进去应该是看不到图像的因为还要用php去执行脚本
现在以 cactiuser用户身份添加一条计划任务 ,最好让他每分钟执行一次
crontab -u cactiuser -e
*/1 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
先手动执行一下,看rrd目录是否生成图像
su cactiuser
/usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php
ls /usr/local/apache/htdocs/cacti/rra/
如果有文件生成表示执行成功了,再用浏览器打开http://192.168.1.163/cacti/ 看一下
OK,到这里安装就结束了。
 
Mysql 监控
至于 cacti的插件,我用了 mysql-cacti-templates 来监控mysql
需要注意的是数据库权限 ,要在被监控的mysql数据库里面给cacti授权
mysql> grant process,super on *.* to 'cactiuser'@'192.168.1.163' identified by 'admin';
mysql> grant all privileges on cacti.*  to cactiuser@"192.168.1.163" identified by "admin";
 
Nginx 监控
 用的是 cacti-nginx  这个插件 可以参考这篇文章
http:///2009/05/cacti_nginx_monitor.html
不过这篇文章有一点没有提 那就是添加模板最后一步
在 URL of nginx stub status这个里面一定要加上 完整URL,如http://192.168.1.163/NginxStatus
client 和socket 两个都要加,要不没有数据

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约