设为首页 收藏本站
查看: 1636|回复: 0

[经验分享] Cacti安装配置#

[复制链接]

尚未签到

发表于 2015-11-22 13:04:03 | 显示全部楼层 |阅读模式
  原文地址:http://www.iyunv.com/Linux/2012-07/66918.htm
  

  

  
一、Cacti 监控介绍
1、Cacti简介
  Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
  简单的说Cacti 就是一个PHP 程序。它通过使用SNMP 协议获取远端网络设备和相关信息,(其实就是使用Net-SNMP 软件包的snmpget 和snmpwalk 命令获取)并通过RRDTOOL 工具绘图,通过PHP 程序展现出来。我们使用它可以展现出监控对象一段时间内的状态或者性能趋势图。
2、Cacti 架构概述
DSC0000.png
  通过上图我们可以发现Cacti 有三大组件:MySQL 数据库、RRDtool 工具、Net-Snmp 程序。MySQL并不负责监控数据的存储,只保存模板和rra 文件与主机对应等信息,而真正的监控数据存储和图像展现都是rrdtool 来做的。而Net-SNMP 负责数据的采集。
3、SNMP协议
  SNMP(Simple Network Management Protocol)简单网络管理协议。是由互联网工程任务组(IETF:Internet Engineering Task Force )定义的一套网络管理协议。该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。SNMP 采用了Client/Server 模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP 从代理负责回答SNMP 管理工作站(主代理)关于MIB 定义信息的各种查询。
  Net-snmp 的安装包如下,前两个包net-snmp,net-snmp-libs是基本的net-snmp 的包,net-snmp-utils 是一些工具。
4、RRDTool工具
  RRDTool 是由Tobias Oetiker 开发的开源软件,它使用RRD(Round Rebin Databases)作为存储格式,Round robin 是一种处理定量数据以及当前元素指针的技术,RRDTool 主要用来跟踪对象的变化情况,生成改对象变化的趋势图。
二、安装配置cacti
  相关软件包:
  cacti-0.8.8a.tar.gz
  rrdtool-1.4.7.tar.gz
  cacti-spine-0.8.8a.tar.gz
  把以上这些软件包上传到 /data1目录下。
  相关下载网址:
  http://www.cacti.net/download_cacti.php
  http://www.cacti.net/spine_download.php
  http://www.cacti.net/downloads/pia/
  安装cacti环境:
  OS:RHEL Server 6.3
  IP:192.168.10.250
  web平台:LNMP
  web根目录:/data1/html
1、安装本机snmp相关服务
  [iyunv@test ~]# yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils
  [iyunv@test ~]# chkconfig –level 35 snmpd on
  [iyunv@test ~]# service snmpd start
  [iyunv@test ~]# vim /etc/snmp/snmpd.conf
  将default修改为127.0.0.1,如下图:
DSC0001.png
  将其中62行的systemview改为all即可,并启用85行:view all included .1 80,如下图:
DSC0002.png
DSC0003.png
2、安装rrdtool
(1)检查并安装相关依赖包
  [iyunv@test ~]# yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel pear pear-devel
(2)源码安装rrdtool
  [iyunv@test ~]# cd /data1
  [iyunv@test data1]# mkdir /usr/local/rrdtool
  [iyunv@test data1]# tar -xzf rrdtool-1.4.7.tar.gz
  [iyunv@test data1]# cd rrdtool-1.4.7
  [iyunv@test rrdtool-1.4.7]# ./configure –-prefix=/usr/local/rrdtool
  [iyunv@test rrdtool-1.4.7]# make && make install
3、解压cacti,并移动到web目录下
  [iyunv@test ~]# cd /data1
  [iyunv@test data1]# tar -xzf cacti-0.8.8a.tar.gz
  [iyunv@test data1]# mv cacti-0.8.8a /data1/html/cacti
4、在MySQL中创建数据库cacti
  建立数据库cacti,并增加对该数据库拥有所有权限的用户名cacti,该用户密码为:cacti。
  [iyunv@test data1]# mysql -uroot -p
  Enter 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, 0 rows affected (0.00 sec)
  mysql> grant all on cacti.* to cacti@127.0.0.1 identified by 'cacti';
  Query OK, 0 rows affected (0.00 sec)
  mysql> flush privileges;
  Query OK, 0 rows affected (0.00 sec)
5、创建系统用户cacti(根据情况决定是否创建用户)
  [iyunv@test data1]# useradd cacti
  [iyunv@test data1]# echo "cacti" | passwd --stdin cacti
  Changing password for user cacti.
  passwd: all authentication tokens updated successfully.
6、例行性排程设置
  [iyunv@test data1]# crontab –e –u nginx
  */1 * * * * /usr/local/php/bin/php /data1/html/cacti/poller.php > /dev/null
注意:
  实际应用中5分钟比较合适。
  这里用户可以是运行Web的用户,例如我的LNMP环境中运行nginx的用户:nginx;也可以是专为cacti创建的用户:cacti,这也决定是否要创建cacti专用用户(上面第5步)。
  在BSD中,> /dev/nul 2>&1 有可能会导致不能在rra/目录下生成文件(即使这个目录权限正确);手动生成,会出现有图无数据的情况;如果出现以上两种情况,请删除2>&1;而在Linux中,理论上是不需要的,但是如果出现,也可以试试,然后再改回去看看。要保证运行Web的用户或cacti专用用户对scripts/目录下的脚本具有可读可执行权限。这些共同决定了下一步(下面第7步)对目录权限的限定。
7、修改cacti目录权限
  [iyunv@test ~]# cd /data1/html/
  [iyunv@test html]# chown -R root:root cacti/
  [iyunv@test html]# chown –R nginx:nginx cacti/rra/
  [iyunv@test html]# chown –R nginx:nginx cacti/log/
  [iyunv@test html]# chown -R nginx:nginx cacti/scripts/
8、导入数据库到MySQL
  [iyunv@test html]# cd cacti/
  [iyunv@test cacti]# mysql -ucacti -pcacti cacti
9、修改cacti的配置脚本
  [iyunv@test cacti]# cd ..
  [iyunv@test html]# vim cacti/include/config.php
  $database_type = "mysql";
  $database_default = "cacti";
  $database_hostname = "localhost";
  $database_username = "cacti";
  $database_password = "cacti";
  $database_port = "3306";
10、cacti初始化配置
(1)初始化cacti
  在Windows 7 客户端IE浏览器中输入网址:http://192.168.10.250/cacti/;回车即可以看到cacti初始化界面。
DSC0004.png
  点击“Next(下一步)”。
DSC0005.png
  选择“New Install(全新安装)”,点击“Next(下一步)”。
DSC0006.png
  手工填写正确的路径。点击“Finish(结束)”。
DSC0007.png
  cacti默认管理员用户是:admin,密码:admin;这里输入点击“login(登陆)”。
DSC0008.png
  admin用户初次登陆,会被要求强制修改密码,这里我修改密码为:123456,点击“Save(保存)”。
DSC0009.png
  这是第一次登陆cacti界面。
  
(2)cacti全局配置
DSC00010.png
  修改poller时间,以便于快速看到效果。这里设置为一分钟,实际环境中五分钟最为合适。
DSC00011.png
  默认已经监控本机:
DSC00012.png
  
监控Windows 7客户端
一、Windows 7客户端配置
1、在windows 7客户端安装snmp服务
  在“控制面板”—> ”程序和功能” —> “打开或关闭Windows功能” —> 勾选“简单网络管理协议(SNMP)”—>确定
DSC00013.png
2、配置Windows 7的SNMP服务
  打开“计算机管理” —> 点击左下面的“服务” —> 在右则找到“SNMP Service”并双击 —> 打开该服务的“属性”—>切换到“安全”选项卡。作如下修改。
DSC00014.png
二、cacti配置
1、添加受监控的主机
  登陆cacti,点击“Devices”—> 点击“Add”。
DSC00015.png
  填写所添加主机的信息。
DSC00016.png
  信息填写完成后,点击“Create”。
DSC00017.png
  为该主机进行画图,点击“Create Graphs for this Host”。
DSC00018.png
  勾选信息后,并点击“Create”。进入为画图选择颜色界面。
DSC00019.png
  选好颜色,点击“Create”。完成。
2、将被监控的主机添加到图形树
  点击左侧“Device”—> 选择主机 —> 选择action“Place on a Tree(Windows Desktop)”—>点击“Go”。
DSC00020.png
  点击“Continue”完成添加。
DSC00021.png
三、查看该主机监控信息
  等一会,点击“graphs”选项卡 —>“Windows Desktop”—>“Windows 7”,可以看到所监控的Windows 7主机情况。
DSC00022.png
  到此,使用cacti监控windows主机成功。

监控 Linux 服务器
一、被监控的Linux服务器设置
DSC00023.png
1、安装net-snmp
  [iyunv@rhel ~]# yum install net-snmp
2、配置snmpd.conf文件
  [iyunv@rhel ~]# vim /etc/snmp/snmpd.conf
DSC00024.png
DSC00025.png
3、启动snmpd服务
  [iyunv@rhel ~]# chkconfig --level 35 snmpd on
  [iyunv@rhel ~]# service snmpd start
二、cacti配置
1、添加被监控的Linux服务器
DSC00026.png
  填写完正确信息后,点击“Create”。
DSC00027.png
  为此台被监控的服务器添加画图,点击上图右上“Create Graphs for this Host”
DSC00028.png
  勾选要监控的Device,并点击“Create”,进入画片颜色选择界面。
DSC00029.png
  选择好颜色后,点击“Create”即可添加成功。
DSC00030.png
  将此台被监控的Linux服务器加入图形树Linux Server中。
  点击左侧“Device”—> 选择主机 —> 选择action“Place on a Tree(Linux Server)”—> 点击“Go”。
DSC00031.png
DSC00032.png
  点击“Continue”即可完成。
DSC00033.png
三、查看该主机监控信息
  等一会,点击“graphs”选项卡 —>“Linux Server”—>“RHEL Server 6.0”,可以看到刚才加入的Linux主机情况。
DSC00034.png
  至此,使用cacti监控Linux主机成功。
安装Spine
  Spine 前身是Cactid,是纯C 编写的,是cmd.php 的替代品,目的是为了加快SNMP 轮询。如果你发现你的cmd.php 运行超过300 秒的话,推荐使用Spine。
  Cacti数据采集方法:spine,cmd.php。cmd.php采集存在很大的延迟,执行效率太低了。两厢比较了一下,从添加device好到设备up,spine只需要不到一分钟,而cmd等的时间较长,超过10分钟。
一、安装Spine
  (1)安装Spine依赖包
  [iyunv@test ~]# yum install openssl-devel mysql-devel net-snmp-devel
  (2)源码安装Spine
  [iyunv@test ~]# cd /data1/
  [iyunv@test data1]# tar -xzf cacti-spine-0.8.8a.tar.gz
  [iyunv@test data1]# cd cacti-spine-0.8.8a
  [iyunv@test cacti-spine-0.8.8a]# ./configure --with-mysql=/usr/local/mysql/
  [iyunv@test cacti-spine-0.8.8a]# make && make instll
  (3)Spine的配置文件spine.conf
  [iyunv@test cacti-spine-0.8.8a]# cd /usr/local/spine/etc/
  [iyunv@test etc]# mv spine.conf.dist spine.conf
  [iyunv@test etc]# vim spine.conf
  DB_Host /tmp/mysql.sock
  DB_Database cacti
  DB_User cacti
  DB_Pass cacti
  DB_Port 3306
  注意:
  这个版本的spine默认使用/tmp/mysqld.sock登陆MySQL。而我的LNMP环境在编译MySQL时指定的为/tmp/mysql.sock。这时候可以用软链接的方法解决,也可以在spine.conf文件中指定sock文件,也就是修改DB_Host值为mysql.sock文件的位置。
  (4)执行spine命令,检查是否正确
  [iyunv@test bin]# pwd
  /usr/local/spine/bin
  [iyunv@test bin]# ./spine
  出现下面类似信息,说明没有问题:
  Poller[0] Time: 2.1460 s, Threads: 1, Hosts: 4
一、Spine配置
  “Setting”-->“Paths”-->“Spine Poller File Path”填写:/usr/local/spine/bin/spine;并“Save”。
DSC00035.png
  “Setting”-->“Poller”下修改Poller Type为Spine;并“Save”。
DSC00036.png
  至此,Spine功能完成。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142148-1-1.html 上篇帖子: Cacti安装配置的详细步骤 下篇帖子: Cacti如何监控Nginx运行状态
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表