服务器监控系统cacti

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器监控系统cacti相关的知识,希望对你有一定的参考价值。

工作原理
Cacti可以从逻辑上分为三个部分

  • 第一部分:被检测的对象,也就是客户端。
  • 第二部分:检测平台,也就是服务器端。
  • 第三部分:管理平台。

Cacti采用了两种结构实现功能,一种是C/S结构主要是实现服务器到客户端监控另外一种就是B/S主要完成对Cacti平台的管理,从下图我们可以看出,管理端是在Web上对Cacti进行管理。

Cacti的工作过程。
首先通过LAMP平台部署Cacti监控工具,之后通过客户端的web登录Cacti进行对其他客户端的设置,可以从下图看到Cacti采集数据时必须要使用SNMP协议来连接客户端进而能够采集数据,也就是说客户端必须支持SNMP协议,监控之后通过RRDtool来生成图表。
.

Cacti的工作结构
C/S模式,采集监测数据
B/S模式,管理监测平台

.
测试LAMP平台
cacti服务器监控系统与windows操作系统中的“性能监视器”属于同一类,都是为了监控cpu占用,内存使用,运行进程数,磁盘空间,网卡流量等各种数据。
但不同的是,cacti不仅可以监控linux,也可以监控windows服务器,路由器,交换机等网络设备,主要基于snmp协议来搜集数据。

Cacti本身是一个web界面的软件,通过调用net-snmp工具来采集检测数据,并结合RRDtool(轮询数据库工具)记录数据并绘制图片,最终以web页面展示给管理员用户。cacti需要运行在lamp平台上,配置简单,直观,而且支持插件和数据模板,可扩展其功能。
.
配置Cacti服务器

  • . 安装各种支持软件
    LAMP平台、Net-SNMP、RRDtool
  • 部署并配置cacti套件
    部署源码包、建立数据库表、调整
    配置文件
  • 完成初始化安装
    根据网页安装向导进行
  • 配置Cacti客户机
    Linux被控主机的设置
    安装net-snmp、lm_sensors包
    简单配置snmpd,并启动服务

使用Cacti的Web控制台

  1. 登录Web控制台
  2. 添加被控设备/主机,设置监控项目
  3. 生成监测图像
  4. 定期采集监测数据
  5. 查看监测结果

.
环境如下;
cacti:192.168.1.1
mysql:192.168.1.2
客户端:192.168.1.3

服务器的配置
配置cacti需要LAMP环境之前的文章有介绍,本篇不做解释

开启httpd服务开启mysql服务
[[email protected] /]#  service httpd start
[[email protected] /]# service mysqld start

.
需要开启例外

[[email protected] /]#  iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[[email protected] /]#  iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

.

为mysql设置一个密码
[[email protected] /]#  mysqladmin -u root -p password ‘pwd123‘

.

编写一个php测试页

[[email protected] /]#  vim /var/www/html/text.php
<?php
phpinfo();
?>

.
[[email protected] /]# service httpd restart
.
在浏览器访问测试

技术分享图片
.
安装net-snmp-utils软件包
Cacti平台通过snmp协议采集检测数据,这些工具程序由net-snmp-utils软件包提供,安装方法如下。

[[email protected] /]#  yum -y install net-snmp net-snmp-utils
.

[[email protected] /]#  service snmpd start
[[email protected] /]#  chkconfig snmpd on

.
安装rrdtool软件包
Rrdtool软件包主要用于数据记录和图表绘制。
首先安装依赖包:

[[email protected] /]#  umount /dev/cdrom /media/
[[email protected] /]#  mount /dev/cdrom /media/
[[email protected] /]#  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 perl per-devel

[[email protected] /]#  cd /media/

.
装rddtool源码包:

[[email protected] media]#  ls
[[email protected] media]#   tar zxf rrdtool-1.4.8.tar.gz -C /root/
[[email protected] /]#  cd /root/rrdtool-1.4.8/
[[email protected] rrdtool-1.4.8]#  ./configure --prefix=/usr/local/ && make && make install

.
部署cacti,设置数据库连接
部署cacti源码包(将下载的cacti源码包释放到web服务器的网页目录)

[[email protected] /]#  cd /media/
[[email protected] media]#  tar zxf cacti-0.8.8b.tar.gz -C /usr/src/
[[email protected] media]#  cd /usr/src/
[[email protected] src]#  mv cacti-0.8.8b/ /var/www/html/cacti

.
添加一个用来读写检测数据的用户账户,并调整目录的属主,以便正常读取及写入数据。

[[email protected] src]#  useradd cacti
[[email protected] src]#  chown -R cacti:cacti /var/www/html/cacti

.
建立数据库,表结构(创建用于cacti监测平台的数据库,并授权一个数据库用户cacti,然后使用cacti源码目录下的cacti.sql脚本,导入预设的各种数据表)

[[email protected] /]#  mysql -u root -p

mysql> CREATE DATABASE cacti DEFAULT CHARACTER SET utf8;

mysql> FRANT all ON cacti.* TO ‘cacti‘@‘localhost‘ IDENTIFDED BY ‘cacti‘;
[[email protected] /]#  cd /var/www/html/cacti/
[[email protected] /]#  mysql -u cacti -p cacti < cacti.sql 
[[email protected] /]#  mysql -u cacti -p
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cacti              |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)
mysql> use cacti;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_cacti           |
+---------------------------+
| cdef                      |
| cdef_items                |
| colors                    |
| data_input                |
| data_input_data           |
| data_input_fields         |
| data_local                |
| data_template             |
| data_template_data        |
| data_template_data_rra    |
| data_template_rrd         |
| graph_local               |
| graph_template_input      |
........
+---------------------------+
52 rows in set (0.00 sec)

.
调整cacti配置文件

[[email protected] /]#  vim include/config.php 

$database_type = "mysql";       //指定连接的类型
$database_default = "cacti";        //连接的库
$database_hostname = "localhost";   //登陆源
$database_username = "cacti";       //用户名
$database_password = "cacti";       //用户密码
$database_port = "3306";        /连接的端口
$database_ssl = false;          //不启用ssl

/*
   Edit this to point to the default URL of your Cacti install
   ex: if your cacti install as at http://serverip/cacti/ this
   would be set to /cacti/
*/
$url_path = "/";            //指定cacti的根目录这个目录是cacti的文件目录下,所以后面还需要修改httpd支配文件
[[email protected] /]#  vim /etc/httpd/conf/httpd.conf 

[[email protected] 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行
[[email protected] /]#  service httpd restart
[[email protected] /]#  netstat -anpt | grep 80
tcp 0   0 0.0.0.0:58052
tcp 0   0 :::80

.

服务器配置完成
.
(客户端)
初始化cacti系统
在浏览器中输入http://192.168.1.1,然后根据提示安装。

技术分享图片
.
技术分享图片
111
.
技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.

.

到此为止服务器配置完成了,下面开始配置一台linux客户端(mysql主192.168.1.2),然后使用cacti监控客户端。

配置客户端(被控端snmpd)
无论是路由器、交换机、还是linux或windows服务器,只要正确支持SNMP协议,并允许Client服务器采集数据,就能够对其进行监测。下面仅介绍在linux服务器中启用SNMP支持并设置共同体名的简单方法。
ps:共同体名,值的是一种验证机制,所有的client都必须使用同一个共同体名,就像我们之前学习的hsrp的组一样,只有组号相同才能是一个组的,这里也是如此,只有共同体名相同的时候,Cacti才能通过这个共同体名对client进行监控。
需要安装net-snmp、lm_sensors软件包,然后通过修改其配置文件/etc/snmp/snmpd.conf,并启动snmpd服务,并建立规则,默认监听UDP的161号端口。

.
(mysql主)
.

[[email protected] /]#   yum -y install net-snmp lm_sensors
[[email protected] /]#  vim /etc/yum.repos.d/index.repo

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行 去掉注释之后,以便支持各种查询。
启动服务

[[email protected] /]#  service snmpd start
[[email protected] /]#  netstat -anpt | grep "snmpd"
[[email protected] /]#  netstat -anpu | grep "snmpd"

.

开例外
[[email protected] /]#  iptables -I INPUT -p udp --dport 161 -j ACCEPT

.
使用cacti的web控制台(下面以5个部分说明)

  • 登录Web控制台
  • 添加被控设备/主机,设置监控项目
  • 生成监测图像
  • 定期采集监测数据
  • 查看监测结果
    .
    登录web控制台
    在浏览器中输入http://192.168.1.1,输入用户名和密码登录,默认都是admin

.
技术分享图片
.
技术分享图片

添加被控设备/主机,设置监控项目
单击导航栏中的“management(管理)”下的“devices(设备)”,可以管理被控设备或主机。点击devices---Add

技术分享图片

技术分享图片

.
技术分享图片
.

然后单击右下角的“create”创建,将自动连接目标执行snmp查询

设置要监测的项目
成功连接被控端后会看到save successful提示,如下图:

技术分享图片
.
技术分享图片
.
技术分享图片
.
生成检测图像
创建图像
单击导航栏中create下的new graphs(图表),选择被控端,选中最需要的图像条目,最后单击下方的create按钮完成创建。
技术分享图片
.
技术分享图片
.
技术分享图片

添加图像至监测树
单击导航栏中的management下的graph trees,在单击default tree就可以对默认的图像监测树进行管理。单击右侧的add,可以向监测树种添加“树项目”,完成之后点击create,并点击save保存。

技术分享图片
.
技术分享图片
.
技术分享图片

定期采集监测数据
Cacti系统通过poller.php页面采集监测数据,可以结合计划任务定期采集(默认的刷新间隔是5分钟)
执行完成之后,会出现很多的提示信息,一般情况下是指时区不正确,建议将时区改为Asia/Chongqing
由于是php报的错误,所以通过php.ini主配置文件解决这个问题

[[email protected] cacti]# vim /etc/php.ini
date.timezone = Asia/Chongqing   //946行去掉注释
[[email protected] /]#  crontab -e
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php 
.
[[email protected] /]#  crontab -u cacti -e
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null

.

刷新
[[email protected] /]#  /usr/bin/php /var/www/html/cacti/poller.php 

查看监测结果
单击cacti管理控制台左上方的graphs标签,然后展开左侧的default tree树,选择被控主机后即可看到各监测图像。

技术分享图片

安装percona-mysql-monitor插件
Cacti工具默认的模板只能监控机器的cpu,内存和磁盘等信息,如果想要监控mysql,就需要安装插件,操作如下。
解压缩软件到目标位置

[[email protected] /]#  umount /dev/cdrom /media/
[[email protected] /]#  mount /dev/cdrom /media/
[[email protected] /]#  cd /media/
[[email protected] /]#  ls
[[email protected] /]#  tar zxf percona-monitoring-plugins-1.1.4.tar.gz -C /usr/src/
[[email protected] /]#  cd /usr/src/percona-monitoring-plugins-1.1.4/
[[email protected] /]#  ls
[[email protected] /]#  cd cacti/scripts/
[[email protected] /]#  cp ss_get_mysql_stats.php /var/www/html/cacti/script

.
在mysql数据库授权用户

[[email protected] /]# mysql -u root -p
mysql> grant process , super on *.* to [email protected]‘192.168.1.1‘ identified by ‘cactiuser‘;
.
[[email protected] /]# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
.

为设备添加项目
在Cacti管理界面中进行添加,点击Consose——Import Templates——选择文件, 将宿主机下的压缩目录解压到一个文件夹内,选择解压后的cacti\templat目录下的cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.4.xml,最后单击import导入。

技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.
技术分享图片
.

技术分享图片

[[email protected] /]#  /usr/bin/php /var/www/html/cacti/poller.php 
[[email protected] /]#  /usr/bin/php /var/www/html/cacti/poller.php --force

以上是关于服务器监控系统cacti的主要内容,如果未能解决你的问题,请参考以下文章

05: Cacti监控服务 Cacti监控实战

服务器监控系统cacti

CAS客户端整合-- Cacti

服务器监控cacti

服务器监控cacti

服务器监控——Cacti(全新版)