服务器监控Cacti

服务器监控Cactiphp

简介

在企业网络运维过程当中,管理员必须时刻关注服务器的运行状态,如CPU、内存、磁盘空间使用状况等。为了可以及时的发现问题,尽可能减小故障的发生。当网络中的设备,服务器等数量较多时,能够部署一套监控系统来实时跟踪服务器,咱们一般会借助一些软件来实现html

今天咱们就以Cacti套件为例,介绍服务器集中监测体系的构建和使用mysql

1、Cacti基本监测体系概述

Cacti是一款使用PHP语言开发的性能与流量监测工具,监测的对象可使linux或windows服务器也能够是路由交换等网络设备,主要是基于SNMPSimple Network Management Protocol 简单网络管理协议)来搜集CPU、占用、内存使用、运行进程数以及磁盘使用空间、网卡流量等各类数据。说白了就是监控服务器状态。linux

实际上Cacti自己只是一个Web界面的管理套件,经过调用Net-SNMP工具来采集检测数据 并结合RRDtool(Round Robin Database tool 轮询数据库工具)记录数据并绘制图片。如图1所示web

clip_image002

图1sql

Cacti提供了优秀的整合和协调能力,充分利用LAMP技术平台、SNMP协议工具以及RRDtool数据引擎、不只配置简单、直观、并且支持插件和数据模板,使用时很是整洁,便于扩展。数据库

实际上Cacti能够从逻辑上分为三个部分、第一部分:被检测的对象,也就是客户端。第二部分:检测平台,也就是服务器端。第三部分:管理平台。Cacti采用了两种结构实现功能,一种是C/S结构主要是实现服务器到客户端监控另一种就是B/S主要完成对Cacti平台的管理。从图1咱们能够看出,管理端是在Web上对Cacti进行管理。vim

简单的整理一下Cacti的工做过程。windows

首先经过LAMP平台部署Cacti监控工具,以后经过客户端的web登陆Cacti进行多其余客户端的设置,能够从图1看到Cacti采集数据时必需要使用SNMP协议来链接客户端进而可以采集数据吗,也就是说客户端必须支持SNMP协议。监控以后经过RRDtool来生成图表,其实这个图表是静态的,通过频繁的数据采集,咱们也能够认为是动态的,也就是说Cacti是基于某段时间的监控。centos

2、服务器配置(控制端——client)

实验拓扑

clip_image004

主机

操做系统

IP地址

主要软件

centos1

CentOS 6.5 x86_64

192.168.1.1

Cacti-0.8.8b.tar.gz

Rrdtool-1.4.8.tar.gz

centos2

CentOS 6.5 x86_64

192.168.1.102

Mysql.5.5.tar.gz

构建Cacti集中监测平台的服务器端时,应提早安装好LAMP或者是LNMP平台,以及Net-SNMP和RRDtool等软件支持,而后下载Cacti源码包

一、安装Net-SNMP、RRDtool软件支持

(1)构建数据库及Web平台

前面已经学习过了如何部署源码包的LAMP或LNMP平台,为了方便演示这里直接以RPM包的LAMP平台为基础搭建Cacti。所需安装包以下所述。若还提示缺乏一些包请在以YUM的方式进行安装便可。

[root@centos1 ~]# yum -y install httpd

[root@centos1 ~]# yum -y install mysql mysql-server mysql-devel

[root@centos1 ~]# yum -y install zlib freetype libjpeg fontconfig gd libxml2 libxml2-devel php-gd //安装PHP须要的库文件

[root@centos1 ~]# yum -y install php php-mysql

[root@centos1 ~]# service httpd start

[root@centos1 ~]# chkconfig httpd on

[root@centos1 ~]# service mysqld start

[root@centos1 ~]# chkconfig mysqld on

[root@centos1 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

[root@centos1 ~]# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

[root@centos1 ~]# mysqladmin -u root -p password '123.abc'

Enter password:

服务启动以后咱们能够编写测试页来验证LAMP平台的协同工做

[root@centos1 ~]# vim /var/www/html/test.php

<?php

$link=mysql_connect('localhost','root','123.abc');

if ($link) echo "mysql connect is ok!!";

mysql_close();

phpinfo();

?>

以后在客户端进行访问

clip_image006

图2

通过测试LAMP平台已经可以彻底的结合在一块儿并运行。

(2)安装net-snmp-utils软件包

Cacti平台经过SNMP协议采集检测数据,这些工具由net-snmp-utils软件包提供,所需安装的软件包以下所示。

[root@centos1 ~]# yum -y install net-snmp net-snmp-utils

(3)安装rrdtool软件包

n 下载rrdtool软件到/root目录下

n 经过YUM确认并安装相关软件包

[root@centos1 ~]# yum -y install cairo-devel zlib libxml2 libxml2-devel glib2 glib2-devel libpng libpng-devel freetype freetype-devel libart_lgpl pango pango-devel perl-CPAN

若是提示须要其余软件包,在另行安装。

n 安装rddtool源码包

[root@centos1 ~]# tar zxf rrdtool-1.4.8.tar.gz

[root@centos1 ~]# cd rrdtool-1.4.8

[root@centos1 rrdtool-1.4.8]# ./configure --prefix=/usr/local/ && make && make install

二、部署Cacti、设置数据库链接

(1)部署Cacti源码包

下载到root目录下

将下载的源码包解压到root下并移动到网页文档根目录下更名为cacti

[root@centos1~]#wget \

> http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz

[root@centos1 ~]# tar zxf cacti-0.8.8b.tar.gz

[root@centos1 ~]# mv cacti-0.8.8b /var/www/html/cacti

添加一个用户,用来读写检测数据的用户帐户(如cacti),并调整期目录的属主,以便正常读取以及写入数据

[root@centos1 ~]# useradd cacti

[root@centos1 ~]# chown cacti:cacti -R /var/www/html/cacti/

(2)创建数据库,表结构

先建立一个用于cacti检测平台的数据库,并受权一个用户cactiuser而后使用cacti源码目录下的cacti.sql脚本,导入预设的各类数据表

[root@centos1 ~]# mysql -u root -p123.abc

mysql> create database cacti default character set utf8;

mysql> grant all on cacti.* to cactiuser@'localhost' identified by '123.abc';

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

Enter password: //输入密码

[root@centos1 cacti]# mysql -u root -p123.abc

mysql> use cacti;

mysql> show tables; //验证是否导入表到cacti库中

上诉操做中,建立Cacti库时,指定默认的编码字符集为utf8,便于中文支持,导入预设库时最好是使用cactiuser导入。最后验证一下是否导入。

(3)调整cacti配置文件

cacti的配置文件位于源码目录下的include/目录下,名称为config.php,要使Cacti系统可以正常访问并使用数据库,必须修改config.php文件,却保数据库链接参数正确。

[root@centos1 cacti]# vim include/config.php

$database_type = "mysql"; //指定链接的类型

$database_default = "cacti"; //链接的库

$database_hostname = "localhost"; //登陆源

$database_username = "cactiuser";//用户名

$database_password = "123.abc";//用户密码

$database_port = "3306"; //链接的端口

$database_ssl = false; //不启用ssl

$url_path = "/"; //指定cacti的根目录,这个目录是cacti的文件目录下,咱们后面还须要修改httpd的主配置文件。

三、Cacti的初始化安装

(1)调整httpd配置

修改httpd的主配置文件,设置好网页文档根目录、自动索引页

[root@centos1 cacti]# vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html/cacti" //292

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

Options Indexes none //331

AllowOverride None //338

Order allow,deny //343

Allow from all //344

</Directory> //346

DirectoryIndex index.php index.html index.html.var //402

AddDefaultCharset UTF-8 //759

[root@centos1 cacti]# service httpd restart

(2)初始化Cacti系统

在游览器中访问Cacti服务器的Web服务,如http://192.168.1.1,除此访问时会自动跳转至安装指南界面如图3所示

clip_image008

图4

clip_image010

以上就是安装界面,内容是一些欢迎信息,直接点击下一步继续

图5

选择新的安装,点击Next继续

clip_image012

图6

以上信息必须所有都为绿色,若是出现红色,请检查相关步骤。点击Finish完成安装

clip_image014

图7

只要看到了这个登陆界面,那么咱们今天的Cacti就部署完成了,默认的用户名和密码都是admin,首次登陆以后须要修改密码。我的建议先不要进行登陆,先进行一下操做,以后在进行登陆。

3、客户端的配置

不管是路由器、交换机、仍是linux或windows服务器,只要正确支持SNMP协议,并容许Client服务器采集数据,就可以对其进行监测。下面仅介绍在linux服务器中启用SNMP支持并设置共同体名的简单方法

ps:共同体名,值的是一种验证机制,全部的client都必须使用同一个共同体名,就像咱们以前学习的hsrp的组同样,只有组号相同才能是一个组的,这里也是如此,只有共同体名相同的时候,Cacti才能经过这个共同体名对client进行监控。

须要安装net-snmp、lm_sensors软件包,而后经过修改其配置文件/etc/snmp/snmpd.conf,并启动snmpd服务,并创建规则,默认监听UDP的161号端口。

[root@centos2 ~]# yum -y install net-snmp lm_sensors

[root@centos2 ~]# vim /etc/snmp/snmpd.conf

com2sec notConfigUser 192.168.1.1 public //41

access notConfigGroup "" any noauth exact all none none //62

view all included .1 80 //85

41 192.168.1.1指的是Cacti的服务器IP(默认是default),表示容许其查询本机数据,public指的就是共同体名,用来识别及验证

62 all表示开放全部的SNMP查询权限(默认是 SystemView

85 去掉注释以后,以便支持各类查询。

[root@centos2 ~]# service snmpd restart

[root@centos2 ~]# iptables -I INPUT -p udp --dport 161 -j ACCEPT

4、使用Cacti的Web控制台

配置好Cacti的主控端、被控端以后,就能够设置集中监测任务了。下面讲学习在Cacti系统的Web控制台的基本操做,以及如何经过添加插件来扩展集中监测功能。

在游览器中访问Cacti系统,如http://192.168.1.1,输入用户和密码,便可登陆到Web控制台界面

clip_image016

图8

密码修改完成点击save保存,以后就能进入到管理界面。

clip_image018

图9

Cacti的管理界面是纯英文的界面,刚开始使用起来有点难度,反复的操做几遍以后至关简单。

一、添加被控端

(1)添加被控设备或主机

点击导航栏中“Management”下的"Devices"连接,在右上角有一个add连接,能够打开添加设备的界面

clip_image020

图10

clip_image022

图11

以上就是添加了被检测的设备,以后点击下拉链条,向下拉。,点击右下角的create建立。

(2)设置要检测的项目

成功连接以后会看到"Save Successful"的提示信息,页面下方也能够看到默认监控的项目如图12所示

clip_image024

图12

咱们通常在默认的状况下在添加一些监控项目,如图13所示

clip_image026

图13

想要添加一些项目首先须要肯定要添加的项目①,以后点击右侧的add②,就能够添加成功了,最后点击右下角的save进行保存。

二、生成检测图像

在Cacti管理控制台设置好被控端忠厚,须要为每一个监控项目生成直观的图像,而后再将图像添加到检测树、以便集中查看

(1)建立图像

点击导航栏的Create下的“Nwe Graphs”链接,进入图像建立页面后,选择被监控的主机或设备,并选择其中最须要的图像条目图图13所示,最后点击下方的“Create按钮”再出现页面以后在次点击create按钮完成图像的建立

clip_image028

图13

clip_image030

图14

(2)添加图像到检测树

被监控的各类图像在Cacti系统中以树形结构展现,所以对于新建立的图像对象,应该将其添加到“Graph Trees”中,以方便用户分类查看。单击导航栏中“Mangaement”下的“Graph Trees”连接,在点击“Default Tree”能够对默认的图像检测树进行管理,如图15所示

clip_image032

图15

默认只存在本机的127.0.0.1,因此须要添加其余设备,点击右上角的add

clip_image034

图16

将树的类型设置为host表名这是一台主机,点击右下角的create就能够添加完成了,以后点击最上面的导航Graphs

三、按期采集数据

Cacti系统经过poller.php页面来采集检测数据,须要使用php程序解释执行。为了得到持续稳定的数据,应结合计划任务按期来执行,如没5分钟执行一次(默认Cacti每5分钟刷新间隔)

[root@centos1 cacti]# /usr/bin/php /var/www/html/cacti/poller.php

执行完成以后,会出现不少的提示信息,如图17所示,通常状况下是指时区不正确,他建议你将时区改成亚洲的重庆

clip_image036

图17

因为是php报的错误,因此咱们经过php.ini这个主配置文件解决这个问题

[root@centos1 cacti]# vim /etc/php.ini

date.timezone = Asia/Chongqing //946行去掉注释

[root@centos1 cacti]# crontab -e

*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php

clip_image038

图18

以上所有部署完成以后,就能够看到这张图片,那么恭喜你,已经完成了整个的Cacti的监控系统,可是因为默认存在的监控项目实在是少的可怜,因此咱们还须要从官网下砸其余监控项目,这里咱们称之为添加插件。咱们以添加mysql为例

5、安装pecrona-mysql-monitor插件

一、下载插件

(1)安装插件

插件能够在http://www.percona.com/下载

[root@centos1 cacti]# cd

[root@centos1 ~]# tar zxf percona-monitoring-plugins-1.1.4.tar.gz

[root@centos1 ~]# cd percona-monitoring-plugins-1.1.4/cacti/scripts/

[root@centos1scripts]#cp ss_get_mysql_stats.php /var/www/html/cacti/scripts/

(2)在mysql数据库受权用户

[root@centos2 ~]# mysql -u root -p123.abc

mysql> grant process , super on *.* to cactiuser@'192.168.1.1' identified by 'cactiuser';

[root@centos2 ~]# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

(3)为设备添加项目

Cacti管理界面中进行添加,一次进入Consose——Import Templates——选择文件

将win7下的压缩目录解压到一个文件夹内,选择解压后的cacti\templat目录下的cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.4.xml而后点击import按钮导入到Cacti如图19

clip_image040

图19

clip_image042

图20 导入后的状况

以后就能够添加检测项目了。

clip_image044

图21

以后也是同样生成图表

clip_image046

图22

clip_image048

图23

(4)验证

图24

以上结果,就是最后的验证,若是没有出现上图结果时,不要着急,请将这个添加的管理设备删除以后,在从新添加一回就能够了

clip_image050

图25

以后从新进行检测

[root@centos1 scripts]# /usr/bin/php /var/www/html/cacti/poller.php

再次查看就能够看到结果了。

相关文章
相关标签/搜索