搭建Cacti监控

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。

   

Cacti三层架构:数据展现层、数据存储层、数据采集层,其具体如下:

        数据采集层:通过SNMP或自定义脚本进行数据采集

        数据存储层:通过cacti模板等数据存放至MYSQL中

        数据展现层:通过WEB方式呈现出来

Cacti应用场景

1)网络设备

(1)接口流量(进与出的带宽)

(2)监控CPU的负载、内存等等

(3)温度等等

2)主机系统

(1)网络接口流量(进与出的带宽)

(2)监控CPU的负载、内存等等

(3)监控磁盘的空间、进程数等等

3)cacti常见的监测对象

(1)服务器资源:CPU、内存、磁盘、进程、连接数等

(2)服务器类型:WEB、Mail、FTP、数据库、中间件

(3)网络接口:流量、转发速度、丢包率

(4)网络设备性能、配置文件(对比与备份)、路由数

(5)安全设备性能、连接数、攻击数

(6)设备运行状态:风扇、电源、温度

(7)机房运行环境:电流、电压、温湿度

nagios介绍

    cacti 和 nagios 是不同功用的系统, nagios 适合监视大量服务器上面的大批服务是否正常, 重点并不在图形化的监控, 其集成的很多功能例如报警,都是 cacti 没有或者很弱的. cacti 主要用途还是用来收集历史数据和画图, 所以界面比 nagios 漂亮很多.

    Nagios通常由一个主程序(Nagios)、一个插件程序(Nagios-plugins)和四个可选的附件(NRPE、NSCA、 NSClient++和NDOUtils)组成。


Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务器端工作所必须的组件。

    其它四个附件:

   (1)NRPE:用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控

   (2)NSCA:用来让 被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到)

   (3)NSClient++:用来监控 Windows主机时安装在Windows主机上的组件

   (4)NDOUtils:则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现 这些数据的快速检索和处理


    这四个ADDON(附件)中,

NRPE和NSClient++工作于客户端


NDOUtils工作于服务器端


而NSCA则需要同时安装在服务器端和客户端


nagios主要功能

网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)

主机资源监控(CPU load、disk usage、system logs),也包括Windows主机(使用NSClient++ plugin)

可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)

可以通过配置Nagios远程执行插件远程执行脚本

远程监控支持SSH或SSL加通道方式进行监控

简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)

包含很多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)

可并行服务检查

能够定义网络主机的层次, 允许逐级检查, 就是从父主机开始向下检查

当服务或主机出现问题时发出通告,可通过email, pager, sms 或任意用户自定义的plugin进行通知

能够自定义事件处理机制重新激活出问题的服务或主机

自动日志循环

支持冗余监控

包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等

3、结合实际应用选型软件

分析:

1)、 NRPE与SNMP协议

Cacti在LINUX下主要采用SNMP协议;snmp是简单网络管理协议,通过固定协议运行方式以OID格式提供系统运行状态的全面信息,然后通过snmp agent去获取这些信息并绘制流量。

NAGIOS在LINUX下主要采用NRPE插件,NRPE通过ssl方式在C/S结构下调用被监控主机的状态监测脚本,并将获得的信息实时提供到监控服务器。

2)、NAGIOS与CACTI区别

Cacti:在监控方面绘图比较不错,在流量与图型展现比较存在优势

Nagios:在故障分析比较不错,报警机制相对来说比较好,报警机制:邮箱、短信等,而且也比Cacti灵活;同时适用监控大量服务器以及服务器上面大批服务状态是否正常,重点不在图形化,而在状态故障的监控

综合所知:

cacti偏沉于收集流量画图,系统负载方面的。而nagios偏沉于系统状态正常与否方面的, nagios能够和短信发送机共同用来规模较大的网络,Cacti+Nagios 两者结合使用取长补短方为上上之策。


Cacti是一款使用PHP语言开打的性能与流量监测工具,监测的对象可以是linux或windows服务器,也可以是路由器,交换机等网络设备,主要基于SNMP(简单网络管理协议)搜集CPU占用,内存占用,运行进程数,磁盘空间,网卡流量等各种数据。


Cacti本身只是一个Web界面的管理软件,通过调用Net-SNMP工具来采集监测数据,并结合RRDtool(轮询数据库工具)记录数据并绘制图片。


注意:Cacti监测系统的搭建需要LAMP环境的支持,因此在搭建Cacti环境之前需要先将LAMP环境搭建好,还有本文的系统使用rhel6.0的系统,参考时注意自己系统的版本。


服务器端配置(主控端-Cacti)

1、构建支持Cacti的LAMP平台

在此使用系统光盘中的rpm格式的包,并使用yum进行安装,相关软件包如下。

[root@localhost/]#yum -y install httpd

[root@localhost/]#yum -y install mysql mysql-server mysql-connector*

[root@localhost/]#yum -y install php php-mysql php-pdo perl-DBD*unixODBC-*

上述分别是安装http mysql和php,也就是LAMP平台。

2、安装net-snmp-utils软件包

Cacti平台通过SNMP协议采集监测数据,因此需要用到snmpget,snmpwalk等SNMP数据采集工具,如下:使用yum一并安装。

[root@localhost/]#yum -y install net-snmp* lm_sensors

3、安装RRDtool软件包

[root@localhost/]# tar zxf rrdtool-1.4.5.tar.bz

[root@localhost/]# cd rrdtool-1.4.5

[root@localhostrrdtool-1.4.5]#./configure--prefix=/usr/local

[root@localhostrrdtool-1.4.5]# make&&make install

4、部署Cacti源码包

将下载好的Cacti源码包释放至Web服务器的网页目录。

[root@localhost/]# tar zxf cacti-0.8.7g.tar.bz

[root@localhost/]# mv cacti-0.8.7g/ /var/www/html/cacti

5、添加一个程序用户,用来读取检测的数据。

[root@localhost/]# useradd runct

[root@localhost/]# cd /var/www/html/cacti

[root@localhostcacti]# chown -R root:root./

[root@localhostcacti]# chown -R runct:runct rra/log/

6、建立数据库,并导入表。

先创建用于Cacti检测平台的数据库,并授权一个数据库用户,然后使用cacti源码目录下的cacti.sql脚本,导入预设的各种数据表。


如下图所示:


需要先启动mysqld服务,然后登陆mysq进行创建数据库操作。


[root@localhostcacti]# mysql-uroot -p

Mysql>create database cactidb default characterset utf8;

Mysql>grant all on cactidb.*  to  cactiuser@'localhost' identified  by'123.qwe';

Mysql>exit

[root@localhostcacti]# mysql-u cactiuser -p cactidb <cacti.sql


7、调整Cacti配置文件


Cacti的配置文件位于源码目录中的include/文件下,名为config.php。要使Cacti系统能够正确访问并使用数据库,必须修改config.php文件,确保数据库连接参数真确无误。修改如下:

[root@localhostcacti]#vim /var/www/html/cacti/include/config.php

$database_type="mysql";

$database_default="cactidb";

$database_hostname="lcoalhost";

$database_username="cactiuser";

$database_password="123.qwe";

$database_port="3306";

$database_ssl=false;

$url_path="/";

除此之外,为了在检测图像中正确显示中文,需要使用Cacti系统识别本机的中文语言环境

需要修改“/lib/functions.php”文件。修改如下:

[root@localhost/]#vim /var/www/html/cacti/lib/functions.php

<?php

Setlocale(LC_CTYPE,"zh_CN.UTF-8");

......//省略部分内容


8、修改httpd服务的主配置文件,设置好网站根目录,自动索引页,默认字符集等相关参数,然后启动http服务。修改如下:


[root@localhost/]#vim /etc/httpd/conf/httpd.conf

DocumentRoot"/var/www/html/cacti"

<Directory"/var/www/html/cacti">

OptionsIndexesFollowSymLinks

AllowOverrideNone

Orderallow,deny

Allowfromall

</Directory>

DirectoryIndexindex.phpindex.html

AddDefaultCharsetUTF-8

[root@localhost/]#service httpd start

9、初始化安装Cacti系统

在浏览器中访问Cacti服务器的Web服务,根据提示进行cacti初始化的安装操作。如下图所示:在浏览器中输入“http://cacti服务器的地址”根据提示选择“next”进行下一步安装,Cacti初始化安装时会检测安装环境,安装完成后,会出现Cacti登陆界面,默认用户名,密码都是“admin”,初次登陆会提示更改密码。


客户端配置(被控端-SNMPD)

无论是交换机,路由器,还是Linux系统或windows系统,只要正确支持SNMP协议,并允许Cacti服务器采集数据,就能够进行集中检测了。作者在此分别使用Linux系统和Windows系统来演示客户端的配置操作。

1、Linux客户端

在linux客户端,需要安装net-snmp、lm_sensors等软件包,并修改snmpd.conf配置文件,启动snmpd服务即可。

snmpd.conf配置文件修改如下:

[root@localhost\]#vim /etc/snmp/snmpd.conf

......//省略部分内容

41com2secnot Configuser 192.168.1.1 Public

62accessnotConfigGroup""anynoauthexactallnonenone

85viewallincluded.1

2、windows客户端

windows客户端需要安装SNMP服务

安装完成以后,通过“服务器管理器”修改“SNMPService”服务的属性,指定授权地址(即cacti服务器的地址),共同体名等(即Public)。

使用Cacti检测客户端主机

1、添加被监控端主机

单击导航栏中“Management”下的“Devices”链接,可以管理被控制端设备或主机。通过右上角的“Add”链接,可以打开添加新设备的页面。

创建新的被监控设备以后,将自动连接目标执行SNMP查询,若查询成功则可以继续后面的检测项目设置,否则应检测被控端的SNMP设置,网络连接,防火墙限制,共同体名等相关因素以排除故障。成功连接被控端后会看到“SaveSucessful”的提示信息,页面下方可看到默认检测项目,管理员可根据需要检测的项目进行勾选。

2、生成检测图像

单击导航栏中“Create”下的“NewGraphs”链接,进入图像创建页面,选择指定被监控主机或设备,并选择其中最需要的图像条目。

单击导航栏中“Management”下的“GraphTrees”链接,在单击“DefaultTree”,可以对默认的图像检测树进行管理。我们可以单击右边的“Add”链接,将刚才创建的图像添加至检测树汇总。

3、定期采集检测数据

Cacti系统通过“poller.php”页面来采集检测数据,需要使用php程序解释执行。为了获得持续稳定的数据,应结合计划任务定期进行采集。

[root@localhost/]#su - runct//切换为数据采集账户

[runct@localhost/]# php /var/www/html/cacti/poller.php//手动执行数据采集

[runct@localhost/]# crontab -e //设置计划任务

*/5****/usr/bin/php /var/www/html/cacti/poller.php&>/dev/null

[runct@localhost/]#exit

[root@localhost/]#service crond start

[root@localhost/]#chkconfig crond on

4、查看检测结果

单击Cacti管理控制台左上方的“graphs”标签,然后展开左侧栏的“DefaultTree”树,选择被监控主机后即可看到个项检测图像。

添加Monitor、Thold插件

Cacti检测系统支持插件扩展,允许自定义图像模板和数据查询,从而能够灵活满足更加多样化的检测需求。下面通过安装及使用Monitor、Thold插件,介绍扩展Cacti检测系统功能的基本方法。


1、安装Monitor和Thold插件

将下载好的插件包解压到/var/www/html/cacti/plugins目录下即可。


[root@localhost/]#tar zxf monitor-0.8.2.tar.gz  -C /var/www/html/cacti/plugins

[root@localhost/]#tar zxf thold-0.4.3.tar.gz -C /var/www/html/cacti/plugins


2、调整cacti配置以识别插件


在cacti系统的web控制台中,单击导航栏中的“Utilites”下的“UserManagement”链接,修改admin用户的属性,选中“PluginManagement”项,单击“Save”保存即可。


刷新cacti控制台页面,左侧导航栏中“configuration”下将多出一个“PluginManagement”链接。单击此链接进入插件管理页面,通过“Actions”列的按钮可依次加载Monitor、Settings、Thold插件,并启用Thold插件。


使用状态监视插件——Monitor


单击导航栏中“configuration”下的“setings”链接,切换至“Misc”页面并选中“ShowlconLegend”以显示图例,将视图“View”设为“Tiles”。

若不希望某个设备被Monitor插件检测,则可以修改被监控主机属性,取消选中的“MonitorHost”即可。


使用阈值告警插件——Thold


1、设置接收告警邮件的邮箱地址


单击导航栏中的“ConfigUration”下的“Settings”链接,切换至“Thresholds”页面,选中“DeadHostNotifications”以便宕机或恢复时发送通知,同时应在“DeadhostsNotificationsEmail”外指定告警邮箱地址。


2、设置SMTP发信、DNS服务器等参数。


单击导航栏中的“ConfigUration”下的“Settings”链接,切换至“Mail/DNS”页面,将“MailServices”设为“SMTP”,并填写实际可用的发信地址,SMTP服务器,SMTP认证用户和密码,以及DNS服务器地址等信息。


3、设置需要报警的检测项目


单击导航栏中“Templates”下的“ThresholdTemplates”连接,切换至预警模板设置页面,单击“Add”可以添加预警项,数据模板应与被控设备使用的模板想匹配。

在设置各种检测模板时,告警阈值的默认计量单位如下:CPU使用率为百分比(不含%),网卡流量为Byte/S,硬盘空间为KB,内存占用为KB。


4、为被控主机启用阈值告警

单击导航栏中“Create”下的“NewGraphs”连接,选择指定的被控主机,然后单击右上方的“Auto-createthresholds”连接,将会自动创建可用的阈值告警项目。


5、查看,管理阈值警告。

单击导航栏中“Management”下的“Thresholds”连接,可以对以启用的阈值告警项进行管理(查看,添加,删除等);或者通过cacti管理页面上方的“Thold”选项卡,可以查看阈值告警情况,达到告警条件的检测项将以红色显示。



环境:

相关软件:

Linux AS4 up4

mysql-5.0.22.tar.gz

httpd-2.2.4.tar.gz

php-5.2.4.tar.gz

cgilib-0.5.tar.gz

phpMyAdmin-2.11.1-all-languages.tar.gz

rrdtool-1.2.11.tar.gz

net-snmp-5.2.4.tar.gz

cacti-0.8.6g.tar.gz


安装配置:

mysql安装

解压缩:tar –zvxf mysql-5.0.22.tar.gz

改变目录:cd mysql-5.0.22.tar.gz


添加组:groupadd –g 20000 mysql


把用户加入组中:useradd –u 20000 –g mysql mysql


编译前的配置:

./configure –prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql


编译:make

安装:make install


初始化数据库:/usr/local/mysql/bin/mysql_install_db


设置目录权限:Chown –R mysql /var/lib/mysql


复制配置文件:Cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf


启动数据库:/usr/local/mysql/bin/mysqld_safe –user=root &


修改root密码:/usr/local/mysql/bin /mysqladmin –u root password bobo365


测试数据库:/usr/local/mysql/bin/mysql –u root –p


Mysql>

添加到自动启动:

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


# chkconfig --add mysqld


#chkconfig –level 3 mysqld on


安装apache

Tar –zvxf httpd-2.2.4.tar.gz

Cd httpd-2.2.4

./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --with-included-apr  (--enable-module=so --enable-module=most --enable-shared=max)

Make

Make install


安全加固:


隐藏和伪装apache版本:找到关键字ServerSignature将其设定为

ServerSignature off

ServerTokens Pord


安装前编译ap_release.h文件,修改

“#define AP_SERVER_BASEPRODUCT\”Apache””为“#define AP_SERVER_BASEPRODUCT\”Microsoft-IIS/5.0\””


编辑os/unix/os.h,修改“define PLATFORM\”Unix””为“define PLATFORM\”Win32””


禁止显示动态目录索引:


Options –Indexes FollowSymLinks


在rc.local上加入一行/usr/local/apache/bin/apachectl –k start,系统启动时启动Apache服务



安装php

(安装libxml,RedHat AS 4默认安装libxml包,但版本太低,PHP5需要更高版本的libxml包

rpm -e libxml-devel

rpm -e libxml


http://xmlsoft.org/sources/old/

# tar –zxvf libxml2-2.6.25.tar.gz

# cd libxml2-2.6.25

# ./configure

# make

# make install

 

Tar –zvxf php-5.2.4.tar.gz


Cd php-5.2.4


./configure --prefix=/usr/local/php –with-mysql=/usr/local/mysql –with-apxs2=/usr/local/apache/bin/apxs --enable-sockets

(# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --with-freetype-dir=/usr/local/freetype –with-mail --with-jpeg-dir=/usr/local/libjpeg --with-png --with-zlib-dir=/usr/local/zlib --enable-xml --enable-mbstring --enable-sockets)

(./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php --enable-sockets --with-mysql=/usr/local/mysql

--with-zlib-dir=/usr/include --with-gd)

Make

Make install


Cp php.ini-dist /usr/local/lib/php/php.ini


修改httpd.conf文件


AddType application/x-httpd-php .php

AddType application/x-httpd-php –source .phps


测试:<? phpinfo(); ?>


4、设置mysql

[root@Bleach php-4.3.10]# /usr/local/mysql/bin/mysql -u root -pmysql

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('cactipw');


注:以上语句输出 Query OK, 0 rows affected (0.01 sec) 表示成功

mysql> exit

Mysql设置完毕


5、安装phpMyAdmin


Tar –zvxf phpMyAdmin-2.11.1-all-languages.tar.gz


Mv phpMyAdmin-2.11.1 /var/www/html/phpMyAdmin


Vi config.inc.php


$cfg['Servers'][$i]['user'] = 'root';


$cfg['Servers'][$i]['password'] = 'bobo365';


设置数据库连接。


http://ip/phpMyAdmin测试。


6、安装rrdtool


(1).安装cgilib

tar -zxf cgilib-0.5.tar.gz

cd cgilib-0.5

make CC=gcc CFLAGS="-O3 -fPIC –I."

cp cgi.h /usr/include/

cp libcgi.a /usr/local/bin/

 1).安装cgilib

 tar -zxf cgilib-0.5.tar.gz

 cd cgilib-0.5

 make CC=gcc CFLAGS="-O3 -fPIC -I."

 mkdir -p /usr/local/cgilib/include

 cp *.h /usr/local/cgilib/include

 mkdir -p /usr/local/cgilib/lib

 cp libcgi* /usr/local/cgilib/lib

(2)安装libart_lgpl

Rpm –ivh libart_lgpl-2.3.11-2.i386.rpm

Rpm –ivh libart_lgpl-devel-2.3.11-2.i386.rpm

(3)安装rrdtool

tar -zxf rrdtool-1.2.11.tar.gz

cd rrdtool-1.2.11

./configure --prefix=/usr/local/rrdtool --disable-python --disable-tcl

make

make install


ln –s /usr/local/rrdtool/bin5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti /poller.php > /dev/null 2>&1


保存退出:wq

全部设置完毕。

打开浏览器 http://ip/cacti 进入cacti的初始设置页面


第一次默认登陆账号:admin 密码 admin

登陆后在新改个密码就OK

需要说明的还有路径

[Copy to clipboard]CODE:

snmpwalk Binary Path : /usr/bin/snmpwalk

snmpget Binary Path: /usr/bin/snmpget

RRDTool Binary Path: /usr/rrdtool-1.0.50/src/rrdtool

PHP Binary Path: /www/php/bin/php

Cacti Log File Path: /www/htdocs/cacti/log/cacti.log

Cactid Poller File Path: /www/htdocs/cacti/poller.php

注:此时graphs还不能显示图形,需要将服务重新启动一下

[Copy to clipboard]CODE:

[root@Bleach scripts]# service snmpd restart

[root@Bleach scripts]# service mysql restart

[root@Bleach scripts]# service httpd restart

 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

如果您是Linux主機的話請先確定你的snmpd.conf有無下面字串


view systemview included .1.3.6.1.2.1.2

如果沒有請自行加入

 

此字串是偵測Interfaces

 

請先確定您的Devices的Data Query有新增SNMP - Interface Statistics

 

到Create → New Graphs → 選擇您要偵測的Host

 

在Data Query [SNMP - Interface Statistics]裡面勾選您要偵測的網卡介面

選擇右下角的Select a graph type:In/Out Bits或者您想要的單位

好了之後點選右下方的create送出新增 

再到Graph Trees把剛剛的Host或者Graphs新增進去即可查詢  

cacti-0.8.7.tar.gz

cacti-plugin-arch.tar.gz

cacti-spine-0.8.7.tar.gz

 

CACTI的安装涵盖了LAMP各个方面,实际环境中完全可以使用成型的CactiEZ中文版直接安装。

 

安装完CactiEZ中文版后,授权其他设备有MYSQL管理权限:



[root@CactiEZ init.d]#service mysqld stop

[root@CactiEZ init.d]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

[root@CactiEZ init.d]# mysql -u root mysql

mysql> update mysql.user set password=password("bobo365") where user="root";

Query OK, 0 rows affected (0.00 sec)

Rows matched: 3  Changed: 0  Warnings: 0

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit

Bye


[root@CactiEZ init.d]# ./mysqld start

Starting mysqld:                                           [  OK  ]


[root@CactiEZ init.d]# mysql -uroot -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.1.47 Source distribution

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| cacti              |

| mysql              |

| test               |

+--------------------+

4 rows in set (0.00 sec)


mysql> 


mysql> GRANT ALL PRIVILEGES ON *.* TO root@192.168.2.243 IDENTIFIED BY 'bobo365' WITH GRANT OPTION; 

Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)


mysql> quit


[root@CactiEZ init.d]# ./mysqld restart

120731 12:07:58 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

Stopping mysqld:                                           [  OK  ]

Starting mysqld:                                           [  OK  ]

[1]+  Done                    mysqld_safe --user=mysql --skip-grant-tables --skip-networking


放行80、3306端口

# iptables -I INPUT  -p tcp --dport 80 -jACCEPT ; iptables -I INPUT  -p tcp--dport 3306 -j ACCEPT ;

#service iptables save

 

1安装cacti依赖的软件,安装过程全选Y

#yum  install httpd php php-process php-ldap php-mbstringphp-gd php-pdo php-snmp php-mysql lm_sensors net-snmp net-snmp-utilsnet-snmp-libs rrdtool rrdtool-devel  perl-DBI perl-rrdtool perl-DBD-MySQL wqy-zenhei-fonts


2装好依赖软件之后,snmp有3个地方需要配置一下


3 #vim /etc/snmp/snmpd.conf    


第41行:将 com2secnotConfigUser default public 中的 "default" 改为 "127.0.0.1"


提示 :41可直接跳到41行,下面同理


第62行:

将 accessnotConfigGroup "" any noauth exact systemview none none 中的 "systemview" 改为

 "all"


第85行:将 #viewall include .1 80 这一行前面的 # 号去掉


4 配置好snmp以后我们来启动2个重要的服务


#s

ervice snmpd start ; 

service httpdstart ; 

chkconfig snmpd on ; 

chkconfig httpd on


5安装并配置cacti


#wget http://www.cacti.net/downloads/cacti-1.0.1.tar.gz


#tar xzvf cacti-1.0.1.tar.gz


#mv cacti-1.0.1 /var/www/html/cacti


6下载和设置mysql数据库


#wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm  //下载mysql的yum源,以安装mysql5.7,默认的版本和cacti不兼容


# rpm -ivh mysql57-community-release-el6-9.noarch.rpm


# yum install mysql-community-server


7修改MySQL的配置文件(默认为/etc/my.cnf),


在[mysqld]下添加一行

skip-grant-tables

#service mysqld start; 

chkconfig mysqld on

#mysql

mysql> update mysql.user setauthentication_string=password('新密码') where user='root' and Host ='localhost';

mysql> flush privileges;

mysql> quit;

8将/etc/my.cnf文件还原,重新启动mysql


#mysql -uroot -p     //输入刚才设置的密码


mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '数据库密码'; 


//再次执行修改密码的命令(和之前的密码相同),新版数据库的安全要求高


mysql>create database cacti;   //首先创建cacti数据库,注意别丢了分号

mysql>grant all privileges oncacti.* to cacti@localhost identified by '新密码' with grant option;    //创建cacti用户并授权

mysql>use cacti;

mysql>source /var/www/html/cacti/cacti.sql;    //导入cacti数据库文件

mysql>grant select on mysql.time_zone_nameto 'cacti'@'localhost' identified by '数据库密码'; //给cacti 对mysql.time_zone_name表的查询权限(这两个命令需执行,否则安装中途会报错)

mysql> flush privileges;

 

mysql>exit

 

9 #vim /var/www/html/cacti/include/config.php


$database_type = "mysql";

$database_default = "cacti";

$database_hostname ="localhost";

$database_username = "cacti";   

$database_password = " 数据库密码 ";  

$database_port = "3306";


执行命令,否则安装过程会报错


# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -p mysql


10修改mysql默认参数,以支持cacti版本要求(直接粘贴到最后一行)


#vim /etc/my.cnf

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

max_heap_table_size=400M

max_allowed_packet=16777216

tmp_table_size=64M

join_buffer_size=64M

innodb_buffer_pool_size=1912M

innodb_doublewrite=OFF

innodb_flush_log_at_timeout=3

innodb_read_io_threads=32

innodb_write_io_threads=16

# service mysqld restart


11修改目录的所有者为apache

 # cd /var/www/html/

 # chown -R apache:apache cacti


12:增加cacti 用户以用来写入rrd和log目录的数据,否则就会生成不了图片

 #useradd cacti

 #cd cacti

 #chown -R cacti rra/ log/

13:添加任务计划

具体多长时间让cacti生成一次监控图表自己决定,这里以cacti的默认时间5分钟生成一次为例

 #crontab -e

加入这一行保存即可

*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1

14在浏览器输入  http://ip/cacti

图片不太清晰,在倒数第三个图注意下,其它的默认下一步就行了


被监控服务器 需要查看网卡流量, 磁盘空间等信息。修改如下。


vi /etc/snmp/snmpd.conf

 

1、找到com2sec notConfigUser  default       public 

改为:com2sec notConfigUser   192.168.1.1(改成监控服务器的ip)       public 

 

2、找到access  notConfigGroup ""      any       noauth    exact  systemview  none none 

改 为:access  notConfigGroup ""      any       noauth    exact  all  none  none 

 

3、找到#view all    included  .1         80 

将前面的 # 注释 去掉。

 

#以下为访问项目,如果想监控磁盘空间,load等需把注释去掉

#编译安装默认已去掉,自带安装的需手动把注释去掉

#  Make sure mountd is running

proc mountd #去掉前面的"#"

#  Make sure there are no more than 4 ntalkds running, but 0 is oktoo.

proc ntalkd 4

#  Make sure at least one sendmail, but less than or equal to 10 arerunning.

proc sendmail 10 1

# Check the / partition and make sure it contains at least 10 megs.

disk / 10000

# Check for loads:

load 12 14 14










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1899453,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
监控 关系型数据库 PHP
|
监控 关系型数据库 开发工具
|
Web App开发 关系型数据库 测试技术
|
Web App开发 监控 关系型数据库
|
Web App开发 监控 测试技术
|
Web App开发 监控 关系型数据库