linux完全卸载cacti,CentOS 搭建Cacti监控以及常见故障解决方案-程序员宅基地

技术标签: linux完全卸载cacti  

准备环境:

一、配置防火墙,开启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

#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

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

#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 的下载地址:请点这里

相关阅读:

0b1331709591d260c1c78e86d0c51c18.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36289742/article/details/116809198

智能推荐

对每个边缘求最小外接矩形,通过最小矩形提取每个边缘_边缘的最小外接矩形-程序员宅基地

文章浏览阅读4.9k次。#include #include using namespace std;using namespace cv;int main(){Mat src; //源图像Mat tmp; //临时图像Mat dst_bw; //去掉背景后的目标二值图像Mat dst_contours;//轮廓图像src=imread("E:\\单板图片\\求孔洞数_边缘的最小外接矩形

【设计模式】中介者-程序员宅基地

文章浏览阅读865次。中介者,说白了跟市面上黑中介类似。当然这个中介,开发者是可以控制其行为的。也是在一定的信任关系上建立的。该模式要解决的问题是,一堆对象之间交叉耦合问题。网上看过群聊的例子。如果没有任何一个平台,多人之间的会话会是什么样的呢?不举多人,就三个吧A想把一句话说给BC,那么他首先要知道B和C在哪儿,然后分别告诉对方,自己想说的事情。如果再加一个人呢?问题很明显,此时各种群聊工具应运而生。我写

Mysql列自增是怎么实现的_mysql 自增序列生成原理-程序员宅基地

文章浏览阅读1.8k次。AUTO_INCREMENT两种情况1、在载入语句执行前,已经不确定要插入多少条记录。在执行插入语句时在表级别加一个auto-inc锁,然后为每条待插入记录的auto-increment修饰的列分配递增的值,语句执行结束后,再把auto-inc锁释放掉。一个事务再持有auto-inc锁的过程中,其他事务的插入语句都要被阻塞,可以保证一个语句中分配的递增值是连续的。AUTO-INC锁的..._mysql 自增序列生成原理

半导体器件基础_掺杂半导体的带隙-程序员宅基地

文章浏览阅读3.5k次,点赞2次,收藏17次。半导体能带结构示意图:上方两条白色带为没有电子填充的带,下面三条灰色带为充满电子的带,其中最高一条灰色带为价带,它与最低一条白色带之间的空隙为能隙空穴又称电洞(Electron hole),在固体物理学中指共价键上流失一个电子,最后在共价键上留下空位的现象导带(英语:conduction band),又名传导带,是指半导体或是绝缘体材料中,一种电子所具有能量的范围。这个能量的范围高..._掺杂半导体的带隙

基于C++和OpenCV的中心线提取算法_图像中心线提取c++-程序员宅基地

文章浏览阅读3.5k次,点赞2次,收藏26次。基于C++和OpenCV的中心线提取算法加权平方灰度重心法介绍算法演示加权平方灰度重心法介绍详情见 https://blog.csdn.net/u010518385/article/details/101015604算法演示下面展示 函数-输入图像和阈值,输出点。void get_median_line(Mat& src, int thresh, vector<Point2d>& points){ if (src.empty()) return; // 一、_图像中心线提取c++

HTML/CSS 常用单词整理_css上下外边距单词-程序员宅基地

文章浏览阅读8.3k次,点赞27次,收藏93次。页面布局(layout)header 头部/页眉;index 首页/索引;logo 标志;nav/sub_nav 导航/子导航;banner 横幅广告;main/content 主体/内容;container/con 容器;wrapper/wrap 包裹(类似于container);menu 菜单;sub_menu/second_menu 子菜单/二级菜单;..._css上下外边距单词

随便推点

JAVA开发(保姆级微服务搭建过程)_java 微服务-程序员宅基地

文章浏览阅读4.4k次,点赞4次,收藏26次。现在的java后端基本都是通过微服务的方式进行搭建。当我们对需求进行分割时,可以通过横向或者纵向对服务进行划分。或者当某一块的业务我们希望通过一个单独的服务进行开发时,就需要新增新的服务,本文通过springtool suite工具介绍,微服务搭建过程。_java 微服务

SQL 性能调优-程序员宅基地

文章浏览阅读94次。[code="sql"]1. 概要说明数据库系统的显著特点需要保存大量历史记录,系统内存在许多历史记录表,因此常常出现系统运行一段时间,表记录数达到一定数量后,系统响应明显变慢的现象。为避免这种情况的出现,在有完备的数据库对象设计下,还在考虑到系统稳定情况下数据的变化情况,针对这种变化,在编写SQL语句必须遵循一定的优化规则,并制定完备的数据管理机制。2. 调优目的利用Or..._sql性能调优,一般读多少次算大

Tomcat源码学习--WebAppClassLoader类加载机制-程序员宅基地

文章浏览阅读1.4w次,点赞6次,收藏21次。上一篇博客JVM-类加载机制中我们已经对JVM的类加载机制有所了解, 这篇博客我们了解一下Tomcat的类加载机制。Tomcat的类加载器可以分为两部分,第一个是Tomcat自身所使用的类加载器,会加载jre的lib包及tomcat的lib包的类,遵循类加载的双亲委派机制;第二个是每个Web应用程序用的,每个web应用程序都有自己专用的WebappClassLoader,优先加载/web-inf_webappclassloader

Idea打包失败|Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.3.4.RELEASE-程序员宅基地

文章浏览阅读4.4k次,点赞2次,收藏5次。解决idea打包失败问题。_failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.3

Servlet.service() for servlet [dispatcherServlet] in context with path []-程序员宅基地

文章浏览阅读1.2k次。请看:(436条消息) JdbcTemplate空指针异常_刘贵庆的博客-程序员宅基地https://blog.csdn.net/xysxlgq/article/details/124323258_servlet.service() for servlet [dispatcherservlet] in context with path [/min

超全的莫队算法一遍过-程序员宅基地

文章浏览阅读3.6k次,点赞17次,收藏63次。莫队的基本思想、回滚莫队、树上莫队、二次离线,一文搞定。什么?你还不会莫队?看完这篇文章你就会了_莫队

推荐文章

热门文章

相关标签