部署Cacti监控平台

1 部署Cacti监控平台

1.1 问题

本案例要求部署一台Cacti监控主机,并安装相关监控组件,为进一步执行具体的监控任务做准备:

  • 安装net-snmp、net-snmp-utils
  • 安装LAMP及相关依赖软件包
  • 部署Cacti监控平台
  • 初始化监控页面

1.2 方案

使用1台RHEL6虚拟机,安装部署LAMP环境、Cacti及相关的snmp组件包,配置数据库并对Cacti监控平台进行初始化操作。

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:准备基础软件包

1)安装LAMP环境

Cacti监控需要通过Web页面展示出来,并且还需要使用MySQL来存储一些变量数据,因此需要先为Cacti准备基础LAMP环境。因为Cacti监控其他主机数据时使用的是snmp协议,所以还需要安装net-snmp和net-snmp-utils软件包。

copytextpop-up

  1. [[email protected] ~]# yum -y install httpd php php-mysql php-ldap \
  2. >php-xml mysql mysql-server net-snmp net-snmp-utils lm_sensors
  3. [[email protected] ~]# service httpd start;chkconfig httpd on        //启动httpd服务
  4. [[email protected] ~]# service mysqld start;chkconfig mysqld on        //启动mysqld服务
  5. [[email protected] ~]# mysqladmin -u root password ‘111‘            //设置数据库管理员密码
[[email protected] ~]# yum -y install httpd php php-mysql php-ldap >php-xml mysql mysql-server net-snmp net-snmp-utils  lm_sensors
[[email protected] ~]# service httpd start;chkconfig httpd on		//启动httpd服务
[[email protected] ~]# service mysqld start;chkconfig mysqld on		//启动mysqld服务
[[email protected] ~]# mysqladmin -u root password ‘111‘			//设置数据库管理员密码

2)源码安装RRDTool

Cacti监控的数据存储和绘图功能主要依赖于该软件,如果没有该软件则Cacti无法存储监控数据并绘制出监控图像。

copytextpop-up

  1. [[email protected] ~]# tar zxf rrdtool-1.4.5.tar.gz
  2. [[email protected] ~]# cd rrdtool-1.4.5
  3. [[email protected]svr5 rrdtool-1.4.5]# ./configure --prefix=/usr/local
  4. [[email protected]svr5 rrdtool-1.4.5]# make && make install
[[email protected] ~]# tar zxf rrdtool-1.4.5.tar.gz
[[email protected] ~]# cd rrdtool-1.4.5
[[email protected] rrdtool-1.4.5]# ./configure --prefix=/usr/local
[[email protected] rrdtool-1.4.5]# make && make install

步骤二:部署Cacti套件

1)解压部署Cacti软件包

Cacti是由PHP开发的Web页面套件,PHP代码通过使用snmp协议来获得监控数据,并代用RRDTool存储数据和绘制监控图像,所以在安装完成基础LAMP环境后,首先需要做的就是将Cacti软件包解压放置在Web服务器的网页根路径下。

copytextpop-up

  1. [[email protected] ~]# tar zxf cacti-0.8.7g.tar.gz
  2. [[email protected] ~]# mv cacti-0.8.7g/ /var/www/html/cacti
  3. [[email protected] ~]# cd /var/www/html/cacti
  4. [[email protected]svr5 cacti]# useradd cactiuser
  5. [[email protected]svr5 cacti]# chown -R root.root ./
  6. [[email protected]svr5 cacti]# chown -R cactiuser.cactiuser rra/ log/
[[email protected] ~]# tar zxf cacti-0.8.7g.tar.gz
[[email protected] ~]# mv cacti-0.8.7g/ /var/www/html/cacti
[[email protected] ~]# cd /var/www/html/cacti
[[email protected] cacti]# useradd cactiuser
[[email protected] cacti]# chown -R root.root ./
[[email protected] cacti]# chown -R cactiuser.cactiuser rra/  log/

2)创建数据库并初始化

Cacti需要使用MySQL来存储部分动态数据,这里还需要给Cacti创建一个数据库,并使用Cacti提前准备好的数据文件,对数据库进行初始化。

copytextpop-up

  1. [[email protected]svr5 cacti]# mysql -u root -p
  2. Enter password:                                        //密码为前面初始化的密码
  3. mysql> CREATE DATABASE cactidb DEFAULT CHARACTER SET utf8; //创建数据库
  4. mysql> GRANT all ON cactidb.* TO ‘cactiuser‘@‘localhost‘ IDENTIFIED BY ‘pwd123‘;    //创建账户并赋权
  5. mysql> QUIT
  6. [[email protected]svr5 cacti]# mysql -u cactiuser -p cactidb < cacti.sql //初始化数据库
[[email protected] cacti]# mysql -u root -p
Enter password:										//密码为前面初始化的密码
mysql> CREATE DATABASE cactidb DEFAULT CHARACTER SET utf8;  //创建数据库
mysql> GRANT all ON cactidb.* TO ‘cactiuser‘@‘localhost‘ IDENTIFIED BY ‘pwd123‘;	//创建账户并赋权
mysql> QUIT
[[email protected] cacti]# mysql -u cactiuser -p cactidb < cacti.sql  //初始化数据库

3)修改Cacti的PHP源码文件,制定数据库名称及相关账户信息。

copytextpop-up

  1. [[email protected] ~]# cd /var/www/html/cacti
  2. [[email protected]svr5 cacti]# vim include/config.php
  3. <?php
  4. $database_default = "cactidb";                     //设置数据库名称
  5. $database_username = "cactiuser";                     //设置账户名称
  6. $database_password = "pwd123";                     //设置密码
  7. ……
  8. ?>
  9. [[email protected]localhost cacti]# vi lib/functions.php
  10. <?php
  11. setlocale(LC_CTYPE,"zh_CN.UTF-8");                    //定义语言
  12. ……
[[email protected] ~]# cd /var/www/html/cacti
[[email protected] cacti]# vim include/config.php
<?php
$database_default = "cactidb"; 					//设置数据库名称
$database_username = "cactiuser"; 					//设置账户名称
$database_password = "pwd123"; 					//设置密码
……
?>
[[email protected] cacti]# vi lib/functions.php
<?php
setlocale(LC_CTYPE,"zh_CN.UTF-8");					//定义语言
……

4)调整http配置文件,重新定义根路径

httpd配置文件使用DocumentRoot "/var/www/html"语句来定义网站页面根路径,默认路径为/var/www/html/,这里需要修改为/var/www/html/cacti。

copytextpop-up

  1. [[email protected] ~]# vim /etc/httpd/conf/httpd.conf
  2. .. ..
  3. DocumentRoot "/var/www/html/cacti"
  4. .. ..
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf
.. ..
DocumentRoot "/var/www/html/cacti"
.. ..

5)访问Cacti监控页面,并进行初始化设置

第一次登陆Cacti需要进行一些简单的初始化操作,主要是设置几个主要的依赖程序的存储位置。

2 构建Cacti监测系统

2.1 问题

沿用练习一,为监控客户端主机安装net-snmp并设置监控权限,并通过调整Cacti服务端配置,实现以下目标:

  1. 主机192.168.1.200上搭建Cacti系统
  2. 监测网关、网站、邮件三台Linux服务器
  3. 监控被监控端的CPU负载、网络流量、磁盘空间
  4. 发邮件给[email protected]

2.2 方案

准备4台Linux虚拟机,1台部署Cacti监控系统,3台作为服务器同时也是被监控的对象,拓扑结构如图-1所示。

图-1

实验沿用练习一的成果,cacti监控平台已经部署完毕,目前需要给所有被监控节点安装net-snmp,并通过修改配置文件设置监控权限。

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:被监控主机设置

注意:由于所有被监控主机均允许cacti监控服务器从本机提取监控数据,因此所有被监控主机都需要做如下操作,下面以网关服务器为例。

1)安装net-snmp软件

Cacti监控其他主机是通过简单网络管理协议(SNMP)收集被监控端数据信息,因此被监控端服务器都需要安装net-snmp以及lm_sensors。lm_sensors软件可以帮助我们来监控硬件信息如CPU的工作电压等数据。

copytextpop-up

  1. [[email protected] ~]# yum -y install net-snmp lm_sensors
[[email protected] ~]# yum -y install net-snmp lm_sensors

2)修改snmp配置文件

SNMP配置文件主要包括四个部分内容需要修改,第一步映射通讯名称到安全用户名称,第二步将用户加入到组中,第三步为组创建systemvies视图,第四步创建all视图并赋予组只读访问权限。主配置文件设置完成后重启服务即可通过客户端访问该服务器获得系统信息,SNMP使用的端口号为UDP 161端口以及TCP 199端口。

copytextpop-up

  1. [[email protected] ~]# vim /etc/snmp/snmpd.conf
  2. ……
  3. com2sec notConfigUser 192.168.1.200 public //社区名称映射为安全名称
  4. group notConfigGroup v1 notConfigUser    //将账户加入组
  5. group notConfigGroup v2c notConfigUser
  6. access notConfigGroup "" any noauth exact all none none //赋予notConfigGroup组对all视图的访问权限
  7. view all included .1        80                //定义all视图及相关权限
  8. ……
  9. [[email protected] ~]# service snmpd start;chkconfig snmpd on
[[email protected] ~]# vim /etc/snmp/snmpd.conf
……
com2sec notConfigUser  192.168.1.200    public    //社区名称映射为安全名称
group   notConfigGroup v1           notConfigUser	//将账户加入组
group   notConfigGroup v2c           notConfigUser
access  notConfigGroup ""  any   noauth   exact  all none none  //赋予notConfigGroup组对all视图的访问权限
view all    included  .1		80				//定义all视图及相关权限
……
[[email protected] ~]# service snmpd start;chkconfig snmpd on

3)查看SNMP服务运行状态,设置防火墙

默认SNMP监听udp的161端口和tcp的199端口,通过netstat命令可以查看该端口的监听状态,设置防火墙规则允许这两个端口的入站数据。

copytextpop-up

  1. [[email protected] ~]# netstat -anpu | grep "snmpd"
  2. udp 0 0 0.0.0.0:161 0.0.0.0:* 16452/snmpd
  3. [[email protected] ~]# iptables -I INPUT -p udp --dport 161 -j ACCEPT
  4. [[email protected] ~]# iptables -I INPUT -p tcp --dport 199 -j ACCEPT
  5. [[email protected] ~]# service iptables save
[[email protected] ~]# netstat -anpu | grep "snmpd"
udp       0      0  0.0.0.0:161      0.0.0.0:*        16452/snmpd
[[email protected] ~]# iptables -I INPUT -p udp --dport 161 -j ACCEPT
[[email protected] ~]# iptables -I INPUT -p tcp --dport 199 -j ACCEPT
[[email protected] ~]# service iptables save

步骤二:设置Cacti监控服务器

注意:本练习案例要求将3台被监控端主机均加入到Cacti系统,这里以Web服务器为例添加监控对象并生成监控图像。其它监控节点做相关操作即可。

1)添加监控主机

登陆Web控制台(http://192.168.1.200),默认的管理账号、密码为 admin,首次登录时强制重设密码。添加被监控端主机时需要设置目标地址,并正确选择主机模板、设置社区名称。

登陆Web控制台后,进入Devices菜单后点击Add添加被监控主机,如图-2所示。此时系统会要求填写相关表单信息,需要填写的项目参数描述见表-1,填写完所需项目表单后点击右下角的Create即可创建新的设备主机,同时在下方会出现图形模版以及数据查询模版,管理员可以根据实际需要继续添加需要监控的参数对象,确定后点击Save保存所有设置,效果如图-3所示。

/

图-2

表-1 项目参数描述表

图-3

2)创建监控图像

通过以上操作,设备主机以及需要监控的性能指标已经创建完成,下面需要通过New Graphs菜单为Web服务器创建图形。进入新建图形界面后在Host列表中选择上一步添加的设备主机,并在需要监控的性能模版后点选对勾,设置完成后选择Create为被监控设备添加图形,如图-4所示。

图-4

3)创建监控图像树

Cacti监控系统最终通过树状列表来查看被监控主机性能图形,我们可以创建多棵图形树,在每棵图形树下可以插入多个设备主机的图形信息。Cacti初始状态有一个名为Default的图形树,本案例中我们将创建一棵新的图形树,并将被监控端主机的图形添加进来。通过点击Graph Trees菜单打开图形树的设置界面。选择Add可以添加新的图形树,如图-5所示,提示输入Name(图形树名称)后点击Create(创建),本案例设置名称为Web,此时在Graph Trees界面中会出现Default与Web两棵图形树。点击进入Web树中,选择Add按钮添加上一步操作中创建的图形,如图-6所示。

图-5

图-6

4)监控服务器定期收集被监控端主机信息

Cacti监控服务器需要通过SNMP收集数据信息并最终生成图形窗口,在Cacti软件包中已经自带了这么一个用于收集数据的PHP脚本,默认Cacti系统需要每五分钟收集一次数据,管理员可以通过计划任务实现每五分钟执行该脚本,也可以手动执行该脚本立即同步数据。

5)查看监控页面效果

最后,通过Cacti平台的graphs选项卡进入图形窗口,该窗口将以树状显示,案例中我们创建了一棵名为Web的图形树,并在Web树下添加了3台被监控主机的图形,最终查看效果如图-7所示。

copytextpop-up

  1. [[email protected] ~]# crontab -e
  2. */5 * * * * /usr/local/php5/bin/php /usr/local/apache2/htdocs/cacti/poller.php
[[email protected] ~]# crontab -e
*/5 * * * * /usr/local/php5/bin/php /usr/local/apache2/htdocs/cacti/poller.php

图-7

步骤三:实现邮件报警机制

1)安装插件补丁

copytextpop-up

  1. [[email protected] ~]# tar -xzf cacti-plugin-0.8.7g-PA-v2.9.tar.gz
  2. [[email protected] ~]# mv cacti-plugin-arch /var/www/html/cacti/
  3. [[email protected] ~]# cd /var/www/html/cacti
  4. [[email protected]cacti cacti]# patch \
  5. > -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.9.diff //打补丁
  6. [[email protected]cacti cacti-plugin-arch]# pwd
  7. /var/www/html/cacti/cacti-plugin-arch
  8. [[email protected]cacti cacti-plugin-arch]# mysql –u cactiuser –ppwd123 cactidb <pa.sql //插入数据库
[[email protected] ~]# tar -xzf cacti-plugin-0.8.7g-PA-v2.9.tar.gz
[[email protected] ~]# mv cacti-plugin-arch /var/www/html/cacti/
[[email protected] ~]# cd /var/www/html/cacti
[[email protected] cacti]# patch > -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.9.diff  //打补丁
[[email protected] cacti-plugin-arch]# pwd
/var/www/html/cacti/cacti-plugin-arch
[[email protected] cacti-plugin-arch]# mysql –u cactiuser –ppwd123 cactidb <pa.sql //插入数据库

2)修改配置文件,正确设置数据库信息

copytextpop-up

  1. [[email protected]cacti cacti]# vim /var/www/html/cacti/include/global.php
  2. $database_type = "mysql"
  3. $database_default = "cactidb"
  4. $database_hostname = "localhost"
  5. $database_username = "cactiuser"
  6. $database_password = "pwd123"
  7. $database_port = "3306"
  8. [[email protected]cacti cacti]# vim /var/www/html/cacti/include/config.php
  9. $url_path = "/cacti/"
[[email protected] cacti]# vim /var/www/html/cacti/include/global.php
$database_type = "mysql"
$database_default = "cactidb"
$database_hostname = "localhost"
$database_username = "cactiuser"
$database_password = "pwd123"
$database_port = "3306"
[[email protected] cacti]# vim /var/www/html/cacti/include/config.php
$url_path = "/cacti/"

3)修改权限

默认admin账户并没有开启插件功能,需要点击"User Management"菜单,在刷新出来的页面中找到"admin"账户,如图-8所示。点击进入admin账户设置页面。在"Realm Permissions"选项卡下找到"Plugin Management"并点选对勾赋予账户插件管理权限,如图-9所示。

图-8

图-9

4)安装邮件报警插件

插件即是PHP源代码文件,解压后复制到Cacti目录下即可。

copytextpop-up

  1. [[email protected] ~]# tar -xzf thold-v0.4.9-3.tgz
  2. [[email protected] ~]# tar -xzf setting-v0.71-1.tgz
  3. [[email protected] ~]# tar –xzf monior-v1.3-1.tgz
  4. [[email protected] ~]# mv monitor settings thold /var/www/html/cacti/plugins
[[email protected] ~]# tar -xzf thold-v0.4.9-3.tgz
[[email protected] ~]# tar -xzf setting-v0.71-1.tgz
[[email protected] ~]# tar –xzf monior-v1.3-1.tgz
[[email protected] ~]# mv monitor settings thold /var/www/html/cacti/plugins

刷新Web控制台查看Plugin Management页面内容如图-10所示。下一步还需要点击插件名称左边的图标(向下的箭头)进行安装。

图-10

5)启用Thold插件

首先需要定义报警邮件列表,点击"Notification Lists",在刷新出的页面中点击“Add"按钮,在弹出的页面中填写报警通知的邮件账户列表,如图-11所示。

图-11

其次,还需要设置发送邮件的服务器,效果如图-12所示。

图-12

6)使用Thold监控具体对象参数

监控web服务器的/boot空间,如果该分区的已用空间已达到80M以上,那么将发送邮件报警。

点击"Thresholds",在弹出的页面中选择"Add"按钮添加被监控主机及监控图像,具体报警参数设置如图-13至图-15所示。

图-14

图-15

7)验证

在web服务上向/boot分区写入较大的文件,使得该分区已用空间超过80%,测试报警是否正确工作。

时间: 2024-10-01 08:04:24

部署Cacti监控平台的相关文章

Security基础(五):部署Cacti监控平台、构建Cacti监测系统

一.部署Cacti监控平台 目标: 本案例要求部署一台Cacti监控主机,并安装相关监控组件,为进一步执行具体的监控任务做准备: 安装net-snmp.net-snmp-utils 安装LAMP及相关依赖软件包 部署Cacti监控平台 初始化监控页面 方案: 使用1台RHEL7虚拟机,安装部署LAMP环境.Cacti及相关的snmp组件包,配置数据库并对Cacti监控平台进行初始化操作. 步骤: 步骤一:准备基础软件包 1)安装LAMP环境 Cacti监控需要通过Web页面展示出来,并且还需要使

Cacti监控平台搭建

作为一名Linux SA,日常最重要的就是保证网站正常稳定的运行,我们需要实时监控网站.服务器的运行状态,这时需要借助开源软件(cacti.nagios.zabbix等)监控来实现. Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户.因此,snmp和rrdtool是cacti的关键. Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成.snmp抓到数据不是存

部署cacti监控windows

一.安装LAMP架构 本篇主要介绍cacti如何监控windows主机,cacti的搭建过程也很简单,同样,监控linux主机也不难.这里主要记录部署监控windows过程中遇到的两个问题1.LAMP #yum install -y httpd php mysql-server 2.插件  #yum install -y mysql-server  php-mysql net-snmp* zlib libpng freetype libjpeg  gd libxml2 3.安装rrdtool #

Cacti 监控平台搭建(基于Centos6.7)

作为一名 Linux SA,日常最重要的就是保证网站正常稳定的运行,我们需要实时监控网站.服务器的运行状态,这时需要借助开源软件(cacti.nagios.zabbix 等)监控来实现.Cacti 是用 php 语言实现的一个软件,它的主要功能是用 snmp 服务获取数据,然后用 rrdtool 储存和更新数据,当用户需要查看数据的时候用 rrdtool 生成图表呈现给用户.因此,snmp 和 rrdtool 是 cacti 的关键.Snmp 关系着数据的收集,rrdtool 关系着数据存储和图

cacti 监控乌班图服务器

因公司需求,部署cacti监控乌班图服务器,在网上查了好多资料终于整齐了,先将自己整理的分享下. 1.系统版本(服务器版本比较低) [email protected]:~# cat /etc/issue Ubuntu 8.04.3 LTS \n \l 2.安装snmpd snmp apt-get install snmpd snmp 3.修改配置文件 vim /etc/snmp/snmpd.conf 在最末行添加 agentADDress udp:161,udp6:[::1]:161     

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

搭建Cacti监控服务器 192.168.4.56查看监控信息和配置都是通过访问web页面完成的.配置信息存储在数据库服务器里. 一.部署Cacti监控服务运行环境 LAMP#rpm -q httpd mariadb-server php#yum -y install httpd mariadb-server php#rpm -q mariadb php-mysql#yum -y install mariadb php-mysql #systemctl start httpd ; systemc

Zabbix运维监控平台快速搭建实录

一.Zabbix运行架构 Zabbix是一个企业级的分布式开源监控解决方案.它能够监控各种服务器的健康型.网络的稳定性以及各种应用系统的可靠性.当监控出现异常时,Zabbix通过灵活i的告警策咯,可以为任何事件配置基于邮件.短信.微信等告警机制.而这所有的一切,都可以通过Zabbix提供的Web界面进行配置和操作,基于Web的前端页面还提供了出色的报告和数据可视化功能.这些功能和特性使运维人员可以非常轻松的搭建一套功能强大的运维监控管理平台. Zabbix的运行架构图如下: 从图中可以看出Zab

linux cacti监控部署

一.Cacti安装部署 搭建这个平台是在lamp的环境下,首先要确保 Apache,MySQL,php.安装成功.这里就不写那些了. 1.Cacti服务器端安装 官网下载cacti相关软件,一共需要三个软件,下载地址分别如下: http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz  http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz  http://www.cacti.net/downloa

zabbix监控平台部署详细文档

监控系统介绍 一:监控介绍 1.监控软件介绍:使用 SNMP 协议获取主机 CPU.内存.磁盘.网卡流量等数据.用脚本将获取到的 SNMP 数据存入数据库中,然后再使用一种名为 MRTG 的软件根据获取的数据绘制图表来分析数据的变化.MRTG(Multi Router Traffic Grapher),顾名思义,这款软件最初是设计用于监控网络链路流量负载的.它可以用过 SNMP 获取到设备的流量信息,并根据这些信息绘制成图表并保存为 PNG 格式的图片,再将这些 PNG 图片以HTML 页面的方