阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 搭建Cacti监控以及常见故障解决方案

138次阅读
没有评论

共计 10681 个字符,预计需要花费 27 分钟才能阅读完成。

准备环境:
一、配置防火墙,开启 80 端口、3306 端口
vi/etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp–dport 80 -j ACCEPT(允许 80 端口通过防火墙)
-A INPUT -m state –state NEW -m tcp -p tcp–dport 3306 -j ACCEPT(允许 3306 端口通过防火墙)
特别提示:很多哥们把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的 22 端口这条规则的下面
添加好之后防火墙规则如下所示:
*filter
:INPUT ACCEPT[0:0]
:FORWARD ACCEPT[0:0]
:OUTPUT ACCEPT[0:0]
-A INPUT -mstate –state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp-j ACCEPT
-A INPUT -i lo-j ACCEPT
-A INPUT -mstate –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -mstate –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -mstate –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
-A INPUT -jREJECT –reject-with icmp-host-prohibited
-A FORWARD -jREJECT –reject-with icmp-host-prohibited
COMMIT
/etc/init.d/iptablesrestart# 最后重启防火墙使配置生效
二、关闭 SELINUX
vi/etc/selinux/config
#SELINUX=enforcing# 注释掉
SELINUX=disabled# 增加
:wq 保存,关闭
shutdown -r now# 重启系统
三、系统约定
软件源代码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/ 软件名字
四、下载软件包
http://wwwNaNake.org/files/v2.8/cmake-2.8.7.tar.gz
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
http://mirror.bit.edu.cn/apache/apr/apr-1.4.6.tar.gz
http://mirror.bit.edu.cn/apache/apr/apr-util-1.4.1.tar.gz
五、安装编译工具及库文件(使用 CentOS yum 命令安装)
yum install make autoconfautomake gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gdkernel keyutilspatchperl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel pplcloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-develkrb5-devel zlib-devel libXpm* freetype libjpeg* libpng* php-common php-gdncurses* libtool* libxml2 libxml2-devel patch
安装步骤
以下是用 putty 工具远程登录到服务器,在命令行下面操作的
1)安装 libmcrypt
cdlibmcrypt-2.5.7./configuremake && make install
ldconfigcd libltdl/./configure–enable-ltdl-install make && make install
2)安装 cmake./configure –prefix=/usrmake && make install
3)安装 apryum-yremoveapr
./configure–prefix=/usr/local/webserver/aprmake && make install
4)安装 apr-util
./configure–prefix=/usr/local/webserver/apr-util–with-apr=/usr/local/webserver/apr/bin/apr-1-config
1、安装 mysql
#Nginxyum -yinstall pcre-develzlib-devel
第二步:添加 MYSQL 安装用户
groupaddmysql
useradd -gmysqlmysql -s /bin/false
第三步:编译和安装
cd mysql-5.5.21
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql\
-DMYSQL_DATADIR=/user/local/webserver/mysql/data\
-DSYSCONFDIR=/etc\
-DEXTRA_CHARSETS=all\
-DDEFAULT_CHARSET=utf8\
-DDEFAULT_COLLATION=utf8_general_ci\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_ARCHIVE_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
-DWITH_FEDERATED_STORAGE_ENGINE=1\
-DWITH_PARTITION_STORAGE_ENGINE=1\
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1\
-DMYSQL_UNIX_ADDR=/usr/local/webserver/mysql/tmp/mysqld.sock\
-DMYSQL_TCP_PORT=3306\
-DWITH_DEBUG=0 \
-DENABLED_LOCAL_INFILE=1
make&& make install
第四步:设置 mysql
# 在 support-files 目录中有五个配置信息文件 (这里很重要,一定要根据自己的内存复制对应的 cnf 文件,否则 mysql 始终起不来):
#my-small.cnf (内存 <=64M)#my-medium.cnf (内存 128M)#my-large.cnf (内存 512M)
#my-huge.cnf (内存 1G-2G)#my-innodb-heavy-4G.cnf (内存 4GB)
cp ./support-files/my-huge.cnf /etc/my.cnf
vi /etc/my.cnf
# 在 [mysqld] 段增加
datadir = /usr/local/webserver/mysql/data
wait-timeout =30
max_connections= 512
# 在 [mysqld] 段修改
max_allowed_packet= 16M
第五步:设置权限
chown -R root.mysql.
chown -Rmysql.mysql data
第六步:生成新的 mysql 授权表
// 利用 mysql_install_db 脚本生成新的 mysql 授权表
cd/usr/local/webserver/mysql/scripts
./mysql_install_db–user=mysql –basedir=/usr/local/webserver/mysql–datadir=/usr/local/webserver/mysql/data
第七步:添加 mysql server 到系统服务
cpsupport-files/mysql.server /etc/init.d/mysqld# 把 Mysql 加入系统启动
chmod 755/etc/init.d/mysqld# 增加执行权限
chkconfigmysqldon# 加入开机启动
vi/etc/init.d/mysqld #编辑
basedir =/usr/local/webserver/mysql#MySQL 程序安装路径
datadir =/usr/local/webserver/mysql/data#MySQl 数据库存放目录
service mysqldstart# 启动
第八步:mysql 服务加入系统环境变量
vi /etc/profile# 把 mysql 服务加入系统环境变量:在最后添加下面这一行
exportPATH=$PATH:/usr/local/webserver/mysql/bin
# 使环境变量立即生效:source /etc/profile
下面这两行把 myslq 的库文件链接到系统默认的位置,这样你在编译类似 PHP 等软件时可以不用指定 mysql 的库文件地址。
// 设置软连接使 mysql,mysqldump,mysqladmin 这三个 bin 命令能在 shell 中直接运行
ln -s/usr/local/webserver/mysql/include/mysql /usr/bin
ln -s/usr/local/webserver/mysql/bin/mysqldump /usr/bin
ln -s/usr/local/webserver/mysql/bin/mysqladmin /usr/bin
第九步:设置密码
mysqladmin-uroot password “ellisqin”
2、安装 apache2
./configure–prefix=/usr/local/webserver/apache–with-apr=/usr/local/webserver/apr –with-apr-util=/usr/local/webserver/apr-util–enable-static-support–enable-mods-shared=most–enable-speling–enable-forward –enable-ssl–with-ssl–enable-cache-disk –enable-cgid–enable-module=so –with-mysql=/usr/local/webserver/mysql–sysconfdir=/usr/local/lamp/etc
# /usr/local/webserver/apache/bin/apachectl-k start# 启动
# vi /usr/local/webserver/apache/conf/httpd.conf# 编辑配置文件
找到:#ServerNamewww.example.com:80 修改为:ServerName www.pphc.com:80
找到:DirectoryIndex index.html 修改为:DirectoryIndex index.html index.php
找到:Options Indexes FollowSymLinks 修改为:Options FollowSymLinks# 不显示目录结构
找到 AllowOverride None 修改为:AllowOverride All# 开启 apache 支持伪静态,有两处都做修改
LoadModulerewrite_modulemodules/mod_rewrite.so# 取消前面的注释,开启 apache 支持伪静态
vi/etc/profile# 添加 apache 服务系统环境变量
在最后添加下面这一行
exportPATH=$PATH:/usr/local/webserver/apache/bin
cp/usr/local/webserver/apache/bin/apachectl /etc/init.d/httpd# 把 apache 加入到系统启动
vi/etc/init.d/httpd# 编辑文件
在 #!/bin/sh 下面添加以下两行
#chkconfig:234510 90
#descrption:Activates/DeactivatesApache Web Server
chowndaemon.daemon-R /usr/local/webserver/apache/htdocs# 更改目录所有者
chmod700 /usr/local/webserver/apache/htdocs-R #更改 apache 网站目录权限
chkconfighttpdon# 设置开机启动
3、安装 php
yum install libjpeg-devel net-snmp net-snmp-devel net-snmp-utils gmpgmp-devel php-mysql* freetype* object* bzip2* gd-devel libpng-develfreetype-deve l libxml2-devel curl-devel
ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/
./configure–prefix=/usr/local/webserver/php–with-apxs2=/usr/local/webserver/apache/bin/apxs–with-mysql=/usr/local/webserver/mysql–with-gd–with-freetype-dir–with-jpeg-dir–with-png-dir –enable-sockets
#makemakeinstall
cpphp.ini-production /usr/local/webserver/php/etc/php.ini# 复制 php 配置文件到安装目录
ln -s/usr/local/webserver/php/bin/*/usr/local/bin# 创建配置文件软链接
vi /usr/local/webserver/php/etc/php.ini# 编辑
找到:;open_basedir =
修改为:open_basedir= .:/tmp/# 防止 php 木马跨站,重要!!
# 列出 PHP 可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone =’Asia/Shanghai'(* 重要 *)不修改会导致 PHP 文件打不开
找到:expose_php = On
修改为:expose_php = OFF# 禁止显示 php 版本的信息
找到:display_errors = On
修改为:display_errors = OFF# 关闭错误提示
8、配置 apache 支持 php
vi /usr/local/webserver/apache/conf/httpd.conf# 编辑 apache 配置文件
在 LoadModule php5_modulemodules/libphp5.so 这一行下面添加、
AddTypeapplication/x-httpd-php.php(注意:php .php 这个点前面有一个空格)
/usr/local/webserver/apache/bin/apachectl-k restart# 重启 apache
service mysqldrestart# 重启 mysql
至此,CentOS 6.2 编译安装 Apache2.4.2+MySQL5.5.25+PHP5.3.13 配置完成。
4、rrdtool 安装
yum install zib libpng freetype libjpeg fontconfiggd libxml2 cairo-devel libxml2-devel pango pango-devel
yum install libxml2-devellibpng-devel pkgconfig glib pixman pango pango-devel freetype freetype-develfontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel
#./configure–prefix=/usr/local/rrdtool
可能会报下面这个错误
configure: error: Please fix the library issues listed above and try again.
还要确定是否安装了 perl 和 perl-devel 如果没有安装在 make 的时候会报错。
解决方法 yum -y installpango-develpango*perlperl-devel
#make &&make install
#ln -s/usr/local/rrdtool/bin/* /usr/local/bin/
5、cacti 安装
#mvcacti-0.8.8a/usr/local/webserver/apache/htdocs/
#mysql -uroot -pellisqin
mysql> createdatabase cacti;
Query OK, 1 rowaffected (0.03 sec)
mysql> grantall privileges on cacti.* to cactiuser@localhost \
-> identified by “ellisqin”;
mysql> flushprivileges;
Query OK, 0 rowsaffected (0.02 sec)// 重载 MySQL 授权表
#mysql-ucactiuser -pellisqin cacti <cacti.sql// 导入 cacti 数据库
#viinclude/config.php
$database_default= “cacti”;
$database_hostname= “127.0.0.1”;
$database_username= “cactiuser”;
$database_password= “ellisqin”;
#crontab –e,加入如下内容,让 cacti 每五分钟采集一次数据
*/5 * * * * envLANG=C /usr/local/webserver/app/bin/php/usr/local/webserver/apache/htdocs/cacti/poller.php
#service crondstart
访问 http://ip/cacti
问题 1:Warning: strtotime() [function.strtotime]:
解决方法
1:改 php.ini
date.timezone =’Asia/Shanghai’
2:在程序代码中写入
#vi include/global.php
<?php
date_default_timezone_set(‘Asia/Shanghai’);// 添加这一行
/*
问题 2The following PHP extensions are missing: *sockets
原来是安装 php 时没有配置 socket 支持
哎,没办法只能重新编译下 php,添加 socket 支持
1. 不用停止 apache
2. 进入 apache 的模块目录, 备份一下 php 模块.
cd/usr/local/apache2/modules/
cp libphp5.solibphp5.so.bak
3. 进入 php 的源码目录下, 由于已经成功编译过, 会有一个成功的 config.nice 文件, 打开这个��件并重新配置, 增加 socket 支持
cd/usr/local/src/php-5.2.4
viconfig.nice
增加一行
‘–enable-sockets’
4. 重新生成配置文件
shconfig.nice
5. 重新编译
make && make install
6. 重启 apache
/usr/local/apache2/bin/apachectl restart
—————- 加载其他模块同 ————–
6、对 Centos Linux 机器进行监控采用两个版本
yum installnet-snmp net-snmp-devel net-snmp-utils
采用第一种版本 V3
在笔者的试验环境下,CentOS 下的 net-snmp 无法在 selinux 环境下正常使用 v3。如果您想使用 snmp v3,请先禁用 selinux。
net-snmp-config–create-snmpv3-user -ro -A hnjingpw -a MD5 qin
以上命令,创建一个 snmpv3 用户,只读,使用 MD5,用户名为 qin,密码为 hnjingpw
注意:运行之前请先停用 net-snmp 服务。
我们可以使用 snmpwalk 来检测 snmp 服务是否正常开启。
shell>snmpwalk-v 3 -u qin -a MD5 -A “hnjingpw” -l authNoPriv 127.0.0.1 sysDescr
#shell>service snmpd start
采用第二种版本 V2
编辑 snmp 配置文件 /etc/snmp/snmp.conf
修改:com2secnotConfigUserdefaultpublic
改为:com2sec notConfigUser127.0.0.1(允许哪台机器捕捉数据)public
修改:accessnotConfigGroup “”anynoauthexactsystemview none none
改为:accessnotConfigGroup “”anynoauthexactall none none
去掉这句的注释 #view allincluded .180
7、Plugin Architecture 安装 (不需要)
插件下载地址 http://cactiusers.org/
#mysql-ucactiuser -pellisqin cacti<pa.sql
#cpcacti-plugin-0.8.7h-PA-v3.0.diff /usr/local/webserver/apache/htdocs/cacti/
#patch -p1 -N< cacti-plugin-0.8.7h-PA-v3.0.diff
#viinclude/global.php
$database_password= “ellisqin”;
$url_path =”/cacti/”;
$config[‘url_path’]= $url_path;
8、net-snmp 安装
如果安装了 net-snmpnet-snmp-devel net-snmp-utils 就不需要安装第 8 步了
# yum -y installmysql-devel net-snmp-devel (* 重要 *) 不安装的话 net-snmp 完装不了
#./configure–prefix=/usr/local/net-snmp
#make &&make install
#cpEXAMPLE.conf/usr/local/net-snmp/share/snmp/snmpd.conf
#ln -s/usr/local/net-snmp/bin/* /usr/local/bin/
9、cacti-spine 安装
Cacti 在采集数据时使用的是 cmd.php 脚本,此脚本最短轮询时间为 5 分钟,也就说我们使用 cmd.php 是无法将 cacti 轮询时间设置为每分钟轮询一次,因此,我们需要安装额外的高效轮询工具 Spine
#./configure–prefix=/usr/local/cacti-spine–with-mysql=/usr/local/webserver/mysql–with-snmp=/usr/local/net-snmp(可不选,如果安装了 net-snmp 源码需要加上)
#make &&make install
#cd/usr/local/cacti-spine/etc/
#cpspine.conf.distspine.conf
#vispine.conf// 配置连接 cacti 数据库的信
报错:configure: error:Cannot find MySQL headers. Use –with-mysql= to specify
解决办法:# yum -y installmysql-devel
报错:configure: error:Cannot find SNMP headers
解决办法:# yum -y installnet-snmp-devel
#vispine.conf
DB_Host127.0.0.1
DB_Databasecacti
DB_Usercactiuser
DB_Passellisqin
cacti-spine 报日志错误
cat/var/spool/mail/root
/usr/local/spine/bin/spine:error while loading shared libraries: libmysqlclient_r.so.18: cannot openshared object file: No such file or directory
做个软链接,问题解决
ln -s/usr/local/webserver/mysql/lib/libmysqlclient.so.18 /usr/lib64

Cacti 的详细介绍:请点这里
Cacti 的下载地址:请点这里

相关阅读

RHEL6.4 中使用 Cacti+Spine 监控主机实现发送邮件报警 http://www.linuxidc.com/Linux/2013-11/92795.htm

RHEL6.4 中使用 Cacti+Spine 监控远程主机 http://www.linuxidc.com/Linux/2013-11/92796.htm

CentOS 5.5 完整安装 Cacti+Spine http://www.linuxidc.com/Linux/2011-12/49701.htm

CentOS 6 下 Cacti 搭建文档 http://www.linuxidc.com/Linux/2013-06/86595.htm

RHEL5.9 下 Cacti 监控部署详解 http://www.linuxidc.com/Linux/2013-06/85427.htm

CentOS 6.3 下 Cacti 安装详解 http://www.linuxidc.com/Linux/2013-05/84279.htm

CentOS Linux 下快速安装配置 Cacti 中文版 http://www.linuxidc.com/Linux/2013-03/81627.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计10681字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中