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

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

417次阅读
没有评论

共计 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、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7976346
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...