恒晖瑶 发表于 2019-1-10 06:43:14

Linux监控软件之 Cacti

  

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

  2)Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
  3)snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobinArchive),它能够存储的数据笔数在创建时就已经定义。
  

  二、环境说明
  Cacti的运行是基于LAMP环境的首先我们来安装LAMP环境。LAMP环境安装有两种方法,第一种是源码安装,第二种是用yum安装。
  本次实验是在CentOS6.5系统中进行,全部软件都通过yum安装。
  服务端[ hostname:server   ip:192.168.0.112 ]
  客户端[ hostname:client   ip:192.168.0.113 ]
  

  三、安装配置
  1、服务端上执行以下操作:

  1)安装epel扩展源
  # yum install -y epel-release
  

  2)安装httpd、php、mysql(lamp)
  # yum install -yhttpd php php-mysql mysql mysql-server mysql-devel php-gd libjpeg libjpeg-devel libpng libpng-devel
  

  3)安装cacti、net-snmp、rrdtool
  # yum install -y cacti net-snmp net-snmp-utils rrdtool
  

  4)启动服务
  # /etc/init.d/mysqld start
  # /etc/init.d/httpd start
  # /etc/init.d/snmpd start
  

  5)编辑httpd配置文件
  # vim /etc/httpd/conf.d/cacti.conf
  找到第一个"Deny from all" 改为"Allow from all"
  # /etc/init.d/httpd restart
  

  6)导入数据并创建cacti库
  # mysql -uroot -e "create database cacti"    //创建数据库为cacti
  # mysql -uroot -e "grant all on cacti.* to 'cacti'@'127.0.0.1' identified by 'cacti';"      //授权并创建用户为cacti,密码为cacti
  # mysql -uroot cacti < /usr/share/doc/cacti-0.8.8b/cacti.sql//导入sql文件
  

  7)编辑cacti配置文件

  # vim /usr/share/cacti/include/config.php
  $database_type = "mysql";
$database_default = "cacti";
  $database_hostname = "127.0.0.1";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
$database_ssl = false;
  

  8)web访问cacti并安装
  浏览器输入http://192.168.0.112/cacti 会出现以下界面(要关闭iptables才行)
  http://s3.运维网.com/wyfs02/M02/74/5F/wKioL1YbrIah7ZVbAANHhheM5-E596.jpg
  安装时点两下“next”和一次“Finish”即可,安装完成后提示第一次输入用户密码,皆默认为admin
  http://s3.运维网.com/wyfs02/M00/74/63/wKiom1YbrQSxRYRqAAEwfBCWpGY953.jpg
  登入后会提示要更改密码,我们更改保存进入cacti首页,但是点击graphs后我们会发现没有图形。因为还需执行poller.php脚本。
  

  9)执行poller.php脚本, 生成图形,并加入到计划任务中

  # /usr/bin/php /usr/share/cacti/poller.php
  会提示waring,说未设置timezone,下面我们设置timezone
  # vim /etc/php.ini   //添加一行
  date.timezone='Asia/Chongqing'
  如图
  http://s3.运维网.com/wyfs02/M00/74/60/wKioL1YbsGDRcN0bAAHRhcSA8vE326.jpg
  再次执行脚本,则不会出现waring
  # /usr/bin/php /usr/share/cacti/poller.php
  然后我们可以看到graphs中出现了图形。如图
  http://s3.运维网.com/wyfs02/M01/74/64/wKiom1YbsReDoc4aAAUID6CyGrU768.jpg
  

  接着把脚本加入到计划任务中
  # crontab -e
  */5 * * * * /usr/bin/php /usr/share/cacti/poller.php   //每5分钟执行一次
  

  

  2、客户端上执行以下操作:

  1)安装snmp
  # yum install -y net-snmp
  

  2)修改snmpd.conf

  # vim /etc/snmp/snmpd.conf
  找到syslocation和syscontact Root,修改为
  syslocation 0.113               //可以写客户主机的ip,也可以写域名
  syscontact Root admin@admin.com      //管理员邮箱
  

  3)启动snmp
  # service snmpd start
  

  

  3、增加客户主机
  1)登录cacti管理后台,点console , 再点Device,在右上角点Add,填入以下参数后点右下角的create。
  http://s3.运维网.com/wyfs02/M02/74/61/wKioL1Ybt4vD7ExTAAbMf3dvsBo133.jpg
  
2)创建成功能后在点右上角的“Create Graphs for this Host”
  Graph Types:选择SNMP - Interface Statistics
在下面框中选择要监控的网卡,比如我选择eth0, 在最右侧小方块里打对勾,然后点右下角create
  Graph Types:再选择 Graph Template Based
在下面的框中,选择你要监控的项目,比如ucd/net - Load Average等,在右侧小方块中打对勾,然后点右下角的create
  http://s3.运维网.com/wyfs02/M01/74/64/wKiom1YbvPCQAmBhAAP6lsh8yYg805.jpg
  

  注:snmp error
  若选择SNMP - Interface Statistics后没有显示网卡,则编辑客户机配置文件
  # vim /etc/snmp/snmpd.conf
  找到:view systemview included .1.3.6.1.2.1.1
修改为:view systemview included .1.3.6.1.2.1
然后重启snmpd服务;
# /etc/init.d/snmpd restart
  再删除之前的,重新填入参数即可解决这个问题。
  

  3)加入到Graph Trees
  点左侧的Graph Trees ,选中 Default Tree,点右上角的Add,Tree Item Type 选择 “Host”
Host 选择我们刚刚增加的那个机器ip,点右下角的create

4)点左上角的Graphs
在左侧可以看到Defaut Tree下面已经增加了我们刚刚添加的主机,图形一开始不会那么快出来,要等一小会才可以。
  http://s3.运维网.com/wyfs02/M01/74/61/wKioL1YbwGrQCTOOAARK6FUmAa8897.jpg
  
  之后我们可在服务器端/usr/share/cacti/rra/文件夹看到生成了以13开头的文件
  # ls -l /usr/share/cacti/rra/
  总用量 860
  -rw-r--r-- 1 root root47840 10月 13 03:45 13_cpu_nice_8.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 13_cpu_system_9.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 13_cpu_user_10.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 13_load_15min_12.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 13_load_1min_11.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 13_load_5min_13.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 13_mem_buffers_14.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 13_mem_cache_15.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 13_mem_free_16.rrd
  -rw-r--r-- 1 root root94664 10月 13 03:45 13_traffic_in_17.rrd
  -rw-r--r-- 1 root root 141488 10月 13 03:45 localhost_load_1min_5.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 localhost_mem_buffers_3.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 localhost_mem_swap_4.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 localhost_proc_7.rrd
  -rw-r--r-- 1 root root47840 10月 13 03:45 localhost_users_6.rrd
  


  

  参考文章
  http://www.linuxfly.org/post/552/
  http://www.it165.net/admin/html/201310/1956.html
     
  




页: [1]
查看完整版本: Linux监控软件之 Cacti