Cacti 监控网络

转至:http://blog.sina.com.cn/s/blog_60470b340100tudv.html

一、概述及Cacti的工作流程
二、Cacti的安装
三、Cacti的使用
四、Cacti脚本及模板
五、Cacti插件
六、Cacti高级应用--打造自己的Cacti模板

一、概述

1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

2. Mysql配合PHP程序存储一些a变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。

3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。

二、Cacti的架构及工作流程

1. Cacti的架构

Cacti 监控网络 74fce28c37a6c58f

2. Cacti的工作流程

Cacti 监控网络 6cb9a22fca52b1bc

Cacti的安装

1.安装环境:RedHat AS 4

2.安装Apache、MySQL、PHP

(1).安装MySQL

下载地址:http://dev.mysql.com/downloads/mysql/5.0.html

//查看系统中是否已经安装了MySQL,如果是卸载所有以mysql开头的包。

# rpm –qa | grep mysql
# rpm –e mysql-*

//查找/etc/my.cnf(MySQL的选项配置文件),如果有请删除它,以免影响新安装版本的启动。

# rm –f /etc/my.cnf
# tar –zxvf mysql-standard-5.0.27-linux-i686-glibc23.tar.gz
# cp –rf mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/

//建立符号链接,如果以后有新版本的MySQL的话,你可以仅仅将源码解压到新的路径,然后重新做一个符号链接就可以了。这样非常方便,数据也更加安全。

# ln –s mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/mysql

//添加用于启动MySQL的用户及用户组(如果以前安装过MySQl,用户及用户组可能已存在)。

# useradd mysql
# groupadd mysql

//初始化授权表

# cd /usr/local/mysql
# scripts/mysql_install_db

//修改MySQl目录的所有权

# cd /usr/local
# chgrp –R mysql mysql-standard-5.0.27-linux-i686-glibc23
# chgrp –R mysql mysql
# chown –R mysql mysql-standard-5.0.27-linux-i686-glibc23/data
# chown –R mysql mysql/data
# ln –s /usr/local/mysql/bin5 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1

注意:首次执行poller.php时请使用cacti用户,否则生成的rrd文件cacti将没有写入权限。

4.安装Cactid

CACTID 的安装需要以下支持:

o net-snmp-devel (需要编译安装net-snmp时添加--enable-developer选项)
o mysql
o mysql-devel (mysql源文件编译安装后默认支持)
o openssl-devel (Redhat默认安装)

# tar -zxvf cacti-cactid-0.8.6i.tar.gz
# cd cacti-cactid-0.8.6i
# ./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp
# make

//这时你将在此目录下看到多出了cactid cactid.conf 两个文件

# mkdir /usr/local/cactid
# cp cactid cactid.conf /usr/local/cactid
# vi /usr/local/cactid/cactid.conf //修改cactid配置文件
DB_Host 127.0.0.1
DB_Database cacti
DB_User cacti
DB_Pass cacti

5.数据库配置

#mysql –uroot –p
Password:
mysql> create database cacti;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on cacti.* to cacti@localhost identified by “cacti”;
Query OK, 1 row affected (0.00 sec)

mysql>exit
# cd /usr/local/apache/htdocs/cacti
# mysql –uroot –p cacti < cacti.sql
Password:

6.完成cacti的安装

1).在浏览器中输入:http://www.yourdomain.com/cacti/
默认用户名:admin 密码:admin

2).更改密码

3).设置cacti用到的命令路径

snmpwalk Binary Path /usr/local/ bin/snmpwalk
snmpget Binary Path /usr/local/ bin/snmpget
RRDTool Binary Path /usr/local/ bin/rrdtool
PHP Binary Path /usr/local/bin/php
Cacti Log File Path /usr/local/apache/htdocs/cacti/log/cacti.log
Cactid Poller File Path /usr/local/cactid/cactid

4).进入cacti后需确认更改以下位置:(如下图)
Console>Settings>General
Console>Settings>Poller

Cacti的使用

1.界面介绍

登陆Cacti后,可以看到左上角是两个选项卡,“console”和“graphs”。console表示控制台,在此进行所有的配置等操作;而graphs则是用来查看所有服务器的性能图像的界面。

Cacti 监控网络 7486ada10b9051ac

2.console菜单

Create:

New Graphs——创建新图像的快捷方式;

Management:

Graph Management——图像管理。可以在此删除、复制图像,Cacti会自动创建图像。不过如果我们有特殊的需要,比如将几张图上的数据合并在一张图像上的话也可以在此手工新建图像;

Graph Trees——图像树。在graphs界面里,图像或devices是树状结构显示的,可以在此设置树的结构;

Cacti 监控网络 cc917981daad22ad

Data Sources——管理rrd文件。一般无需修改,Cacti会自己创建rrd文件;

Cacti 监控网络 b72311be581312a8

Devices——设备管理。这是我们最经常需要修改的地方,可以在此创建新的设备或修改其名称等信息。

Collection Methods

Data Queries 和Data Input Methods是采集数据的方式,一般我们无需对这两项进行修改;

Templates

Graph Templates 、Host Templates和Data Templates 分别是图像模板、主机类型模板和数据模板。这些模板可以导出、导入也可以自己编写,一般无需修改。

Import/Export

Import Templates 和Export Templates,对上述模板的导入、导出。我们可以在Cacti的官方网站上找到这些模板,不过需要注意模板对于的Cacti的版本。

Configuration

Settings ——Cacti的主要配置菜单;

可以在此重新设置对应的程序的路径、版本等信息。也可以设置图像的输出方式(允许ftp)、显示效果、登陆方式(允许使用LDAP)等。

Utilities

System Utilities ——显示Cacti系统的一些cache和log信息,如果log文件太大建议直接到后台查看;

User Management ——用户管理。可以在此添加、删除用户,并对每个用户设置详细的权限;

Logout User ——注销用户。

3.创建监测点

假设被监测的服务器名叫“Test Host”,IP为192.168.100.110,SNMP的community为public。

进入Cacti的console面板->

点击“Devices”进入设备面板->

Cacti 监控网络 e7605b3397ac5d3f

点击“Add”添加新设备->

Cacti 监控网络 d992448fbe2efd43

填写要监测服务器的各种信息,其中Host Template请选择“Local Linux Machine”或“ucd/net SNMP Host”(选择一个合适的主机模板)->

点击“Create”保存信息,如果SNMP连接没有问题,左上角会出现该服务器的信息,否则会出现“SNMP error”的红色字样->

Cacti 监控网络 eab07dba8e482509 thumb

点击上部的“Create Graphs for this Host ”为该设备创建需监测的内容。监测的内容分两种,“Graph Templates”和“Data Query”,区别在于“Data Query”能根据SNMP信息列出监测项目的信息。例如Data Query里的“Interface Statistics”可以看到该主机所有网卡的信息,这样我们可以选择需要监测的网卡。点击右侧的正方形选择框勾选上要监测的项目->

Cacti 监控网络 cc26696e3e948d0f

点击“Create”创建选择的监测内容,已经选择创建的内容会自动变成灰色并且不能再点选。Cacti会自动创建该监测点的rrd文件(在rra文件夹中)、“Data Source”和“graph”条目。

Cacti 监控网络 79764e88e27fff35

Cacti 监控网络 3584827a8f97780a

创建监测点完毕。

4.查看监测点

点击“Graph Management”可以看到刚才创建的监测点对应的图像,注意由于Cacti默认每5分钟到监测服务器上取一次数据,所以刚创建的监测点会出现图像不能显示的现象,需要等几分钟查看才会正常显示。

Cacti 监控网络 d2a979e1bf349c71

为了方便查看,可以将刚才新创建的设备或图像加入到“图像树”上:

点击“Graph Tree”进入“图像树”面板->

Cacti 监控网络 8d4fcc5d3a5fed1c

点击分支名称或“Add”新的分支->

Cacti 监控网络 19b40fd3f6980e67

点击“Add”,添加新的“Tree Items”->

Cacti 监控网络 486240cab3dc3774

“Tree Item Type”中选择“Host”,“Tree Item Value”的“host”中选择刚才新添加的主机“Test Host”->

Cacti 监控网络 c103bfc6d04de359

点击“Create”。

Cacti 监控网络 94084cac1cee8310

直接在ViewTree中添加一个host节点进行监控无疑是一个简单的方法,但随监控图的增多,将所有的图像放到一个host节点上,当查看图像时图像 的显示速度会变慢,而且监控图的条理也不清除,所以通常可以根据监控图监控的功能和监控服务的类型等进行分类,整理出一棵有条理的图像树。可以按下面步骤 添加节点。

首先添加一个root节点,“Tree Item Type”中选择“Header”,“Title”中填写一个合适的描述性信息,如本例填写“Host Monitor”,Host Monitor节点的图像主要是和主机性能相关的一些图像,如CPU、内存、磁盘空间等;

Cacti 监控网络 ae2e5e3fe267e7f4

点击刚创建的root节点(Host Monitor)后面的Add链接来添加一个Graph;

Cacti 监控网络 1ae319f37adacd52

在“Tree Item Type”中选择“Graph”,在“graph”中选择加入想要加入的监控图,重复此过程加入所有你想加入的监控图。

Cacti 监控网络 0c927ac98e6ec3c8

Cacti 监控网络 bc00b9e36855caef

你还可以添加Tree Items,如MySQL Monitor,此节点用来监控与MySQL服务相关的信息,重复上面的过程直到一颗有条例的树创建完成。

Cacti 监控网络 e9e7dcf4e8e89b40

这样,我们就可以在“graphs”界面中查看“Test Host”的所有监测图像了。

Cacti 监控网络 d38a67a13fa7d783

5.为已有host添加新的监控图

在console控制台下点击“New Graphs”,选择要添加监控图的主机。在Graph Templates中选择一个Graph模板,本例选择SNMP - Ceneric OID Template,点击create按钮。

Cacti 监控网络 597b49f45fd294ff

填写以下信息,在“Title”文本框中填写Graph的名字,在“Vertical Lable”文本框中填写描述信息或是所绘图片使用的单位等,显示在所绘图片的左侧,在“name”文本框中填写此数据源的名字,在“LegendColor”中选择画图使用的颜色,在“Legend Text”填写图例的名字,在“OID”文本框中填写要监控的主机的OID信息,点击“create”按钮完成Graph的创建。

Cacti 监控网络 fb72a1dac968cd2c

完成后监控图如下:

Cacti 监控网络 5e75772b9a8d2c4d

6.合并多个数据源到一张图上

在console控制台下点击“Graph Management”,然后点击Add链接。

Cacti 监控网络 81013833f0b289fa thumb

在“Select Graph Template”下拉框中选择None,在“Host”下拉框中选择None,然后点击create按钮。

Cacti 监控网络 420a5b86bb8c921e

在“Title”文本框中输入Graph的名字。

Cacti 监控网络 1d643315e2359d72

点击Add链接,添加Graph Items。

Cacti 监控网络 113bd99ea60b3700

添加多个数据源,将所选的多个数据源画到一张监控图上。

Cacti 监控网络 3c246b7992a2ba71

Cacti 监控网络 ff0c511d538f7aca

Cacti 监控网络 03290cccfe32c027 thumb

Cacti 监控网络 960a4f8b238fb79b

完成后将所画的监控图放到Graph Trees中。

Cacti脚本及模板
Cacti脚本及模板论坛:http://forums.cacti.net/forum-12.html
一个完整的cacti脚本及模板列表:http://forums.cacti.net/about15067.html

1.Advance Ping 脚本及模板

下载地址:http://forums.cacti.net/about10049.html

注:要使用此模板,编译PHP时必须加上--enable-sockets选项来支持套接字。

1).功能:此模板用来监控一个TCP/UDP端口、ICMP的延时情况和丢包情况。

2).下载ss_fping.php脚本并放到/usr/local/apache/htdocs/cacti/scripts/目录下,下载 cacti_graph_template_ping_advanced_ping_v1_3.xml模板,用cacti的模板导入页将此模板导入。

Cacti 监控网络 919a75ff1db306f3
3).在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。在Associated Graph Templates 中添加Advanced Pingv1.3 模板。并点击最上面的Create Graphs for this Host 链接。Cacti 监控网络 6572e8fa5c47b4ed

Graph Templates 的选择框中选择PING - Advanced Ping v1.3 ,然后点击Create按钮,出现以下WEB页。

Cacti 监控网络 07ec781b36bfa464

第一项意思是一次向要监控的端口发送多少个探测包(默认20个),第二项是使用的协议,可以是ICMP、TCP、UDP,第三项是要监控的端口号(只有第二项为TCP或是UDP时使用),填写完成后点击create按钮。

在Console控制台选项卡下的左侧菜单中选择Date Sources,选择以上新建的数据源可以修改以上填写的信息。

Cacti 监控网络 df73462215664b03
在控制台选项卡下左侧菜单中选择Graph Trees可以组织一个树状视图。

Cacti 监控网络 73e8f2160131d4d3

在graphs选项卡下浏览创建的Advanced Ping监控图。

Cacti 监控网络 618b44c12906ba6a
TCP3360端口(MySQL)

Cacti 监控网络 b1c9ea06ec2ce4b2

TCP80端口(HTTP)

Pkt Loss:丢包数量/20 * 100%(每次ping 20个包)
Avg Loss:平均丢包情况
Latency:延时情况
Avg Latency:平均延时情况

1.MySQL stats模板

论坛讨论:http://forums.cacti.net/about11010.html

下载地址:http://www.faemalia.net/mysqlUtils/

功能:用来监控MySQL状态,其中包括索引使用情况、查询、排序、锁定情况等。

1).将mysql_stats.php 和 dumpMemcachedStats.php脚本放到cacti脚本目录下(/usr/local/apache/htdocs/cacti /scripts/),导入模板时注意选择cacti_host_template_temysql_host-step300- heartbeat600.xml和cacti_host_template_memcached_host-step300- heartbeat600.xml模板(默认cacti 5分钟取一次数据)。

2).配置MySQL服务器,让cacti所在机器能够访问MySQL服务器的状态信息,必须拥有"process"权限。如果要监控InnoDB状态,还必须有"SUPER"权限。

GRANT PROCESS ON *.* TO cacti@'cactimachine' IDENTIFIED by 'cacti';

GRANT SUPER ON *.* TO cacti@'cactimachine' IDENTIFIED BY 'cacti';

3).创建Graph。在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。在Associated Graph Templates 中添加想要监控MySQL状态的Graph Templates (如teMySQL – Index Usage模板,此套模板是以teMySQL开头的一系列模板)。并点击最上面的Create Graphs for this Host 链接,在Graph Templates的选择框中选择teMySQL – Index Usage,然后点击Create按钮,出现以下WEB页。

Cacti 监控网络 bd097ce36f1334f1

在上面填写有权限访问MySQL数据库的用户名及密码,然后点击create按钮。

选中刚添加的Graph Templates,点击create按钮来创建Graph。

在控制台选项卡下左侧菜单中选择Graph Trees可以组织一个树状视图。

Cacti 监控网络 ccb78664edd31d21

在graphs选项卡下浏览创建的MySQL监控图。

Cacti 监控网络 e2a8bc2ce5318a52

Cacti 监控网络 e38bd234413998c3

Cacti 监控网络 c476f20a4a615500

Cacti 监控网络 e21b8c9af27a83e9

缩略图:

Cacti 监控网络 088da3cf8f75dd8e

3.其他模板

其他模板在以后慢慢加入,敬请期待。如果各网友有什么好的模板,也请不吝赐教,大家一同提高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值