cacti远程监控原理及简单配置
来源:互联网 发布:ubuntu 修改系统语言 编辑:程序博客网 时间:2024/05/01 09:44
原理:
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.
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文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
原理图:
采集: crontab --> php --> snmp --> host(cacti主机)存储: rrdtool --> rra --> *.rrd(uodate)展示: web --> php --> mysql --> rrdtool --> rrd --> gd | php-mysql
准备及环境:
操作系统: redhat EL6.5
主机: server2 172.25.12.2 cacti mysql php httpd rrdtool net-snmp
server3 172.25.12.3 snmp
火墙及selinux: 关闭
配置:
server2配置:
#安装主要软件:yum install rrdtool php httpd mysql-server php-mysql php-snmp net-snmp-utils net-snmp -y#准备rpm包并安装rpm -ivh php-snmp-5.3.3-26.el6.x86_64.rpm#准备cacti安装包tar zxf cacti-0.8.8h.tar.gz -C /var/www/html/cd /var/www/html/ln -s cacti-0.8.8h/ cacti#切换到cacti目录下,查看有没有 cacti.sql 数据库模板文件cd cacti#数据库设置#启动数据库/etc/init.d/mysqld start#数据库初始化并添加数据库密码mysql_secure_installation #建立数据库cacti -u用户 -p密码 mysqladmin -uroot -predhat create cacti#将模板导入数据库mysql -uroot -predhat cacti < cacti.sql#登陆数据库并更改数据库权限,设定cacti数据库密码mysql -uroot -predhatmysql> grant all on cacti.* to cacti@localhost identified by 'redhat';
配置cacti:
cd /var/www/html/cacti/include
vim config.php
$database_type = "mysql";$database_default = "cacti";$database_hostname = "localhost";$database_username = "cacti"; #建立的数据库名字$database_password = "redhat"; #cacti数据库密码$database_port = "3306";$database_ssl = false;/* 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/"; #网页访问路径/* Default session name - Session name must contain alpha characters */$cacti_session_name = "Cacti";
useradd -u 1000 cacti ##创建用户,u为1000,则该目录下的文件对该用户都有权限,重点是rra目录存放收集的数据#crontab 脚本设置:crontab -e -u cacti*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1 ##每5分钟收集一次#查看crontab脚本:crontab -l -u cacti/etc/init.d/httpd start
server3(被监控主机):
yum install net-snmp -y
cd /etc/snmp/
vim snmpd.conf
# First, map the community name "public" into a "security name"首选是定义一个共同体名 (community) ,这里是 public ,及可以访问这个 public 的用户名( sec name ),这里是 mynetwork 。 Public 相当于用户 mynetwork 的密码:)# sec.name source communitycom2sec local localhost publiccom2sec mynetwork 172.25.12.0/24 public# Second, map the security name into a group name:#定义一个组名( groupName )这里是 MyRWGroup ,及组的安全级别,把 这个mynetwork用户加到这个组中。 # groupName securityModel securityNamegroup MyRWGroup v1 localgroup MyRWGroup v2c localgroup MyRWGroup usm localgroup MyROGroup v1 mynetworkgroup MyROGroup v2c mynetworkgroup MyROGroup usm mynetwork# Third, create a view for us to let the group have rights to:#定义一个可操作的范围 (view) 名, 这里是 all ,范围是 .1view systemview included .1.3.6.1.2.1view systemview included .1.3.6.1.2.1.25.1.1view all included .1 80# Finally, grant the group read-only access to the systemview view.#定义 MyRWGroup 这个组在 all 这个 view 范围内可做的操作,这时定义了 MyRWGroup 组的成员可对 .1 这个范围做只读操作access MyROGroup "" any noauth exact all none noneaccess MyRWGroup "" any noauth exact all all nonesyslocation RHEL6.5syscontact Root <root@server3.example.com>dontLogTCPWrappersConnects yes#检测根目录disk / 10000
更多snmpd.conf的详尽配置请看下面传送门:
snmpd.conf配置说明
启动snmp服务并检测
/etc/init.d/snmpd start
yum install net-snmp-utils -y
[root@server3 ~]# snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.9 ##获取本地磁盘信息UCD-SNMP-MIB::dskIndex.1 = INTEGER: 1UCD-SNMP-MIB::dskPath.1 = STRING: /UCD-SNMP-MIB::dskDevice.1 = STRING: /dev/mapper/VolGroup-lv_rootUCD-SNMP-MIB::dskMinimum.1 = INTEGER: 10000UCD-SNMP-MIB::dskMinPercent.1 = INTEGER: -1UCD-SNMP-MIB::dskTotal.1 = INTEGER: 18102140UCD-SNMP-MIB::dskAvail.1 = INTEGER: 15825092UCD-SNMP-MIB::dskUsed.1 = INTEGER: 1357496UCD-SNMP-MIB::dskPercent.1 = INTEGER: 8UCD-SNMP-MIB::dskPercentNode.1 = INTEGER: 3UCD-SNMP-MIB::dskTotalLow.1 = Gauge32: 18102140UCD-SNMP-MIB::dskTotalHigh.1 = Gauge32: 0UCD-SNMP-MIB::dskAvailLow.1 = Gauge32: 15825092UCD-SNMP-MIB::dskAvailHigh.1 = Gauge32: 0UCD-SNMP-MIB::dskUsedLow.1 = Gauge32: 1357496UCD-SNMP-MIB::dskUsedHigh.1 = Gauge32: 0UCD-SNMP-MIB::dskErrorFlag.1 = INTEGER: noError(0)UCD-SNMP-MIB::dskErrorMsg.1 = STRING:
server2测试:
[root@server2 snmp]# snmpwalk -v 1 172.25.12.3 -c public .1.3.6.1.4.1.2021.9UCD-SNMP-MIB::dskIndex.1 = INTEGER: 1UCD-SNMP-MIB::dskPath.1 = STRING: /UCD-SNMP-MIB::dskDevice.1 = STRING: /dev/mapper/VolGroup-lv_rootUCD-SNMP-MIB::dskMinimum.1 = INTEGER: 10000UCD-SNMP-MIB::dskMinPercent.1 = INTEGER: -1UCD-SNMP-MIB::dskTotal.1 = INTEGER: 18102140UCD-SNMP-MIB::dskAvail.1 = INTEGER: 15825092UCD-SNMP-MIB::dskUsed.1 = INTEGER: 1357496UCD-SNMP-MIB::dskPercent.1 = INTEGER: 8UCD-SNMP-MIB::dskPercentNode.1 = INTEGER: 3UCD-SNMP-MIB::dskTotalLow.1 = Gauge32: 18102140UCD-SNMP-MIB::dskTotalHigh.1 = Gauge32: 0UCD-SNMP-MIB::dskAvailLow.1 = Gauge32: 15825092UCD-SNMP-MIB::dskAvailHigh.1 = Gauge32: 0UCD-SNMP-MIB::dskUsedLow.1 = Gauge32: 1357496UCD-SNMP-MIB::dskUsedHigh.1 = Gauge32: 0UCD-SNMP-MIB::dskErrorFlag.1 = INTEGER: noError(0)UCD-SNMP-MIB::dskErrorMsg.1 = STRING:
如果两边测试结果一样,则说明snmp配置成功,server2可以通过snmp获取server3的主机信息
测试:
浏览器输入:http://172.25.12.2/cacti
初次登陆帐号密码都为 Admin
登陆后会强制你修改密码
一直点击下一步(或者install),就进入cacti页面
添加监控主机:
在cacti页面
点击左边的devivce —–> 右上角有个add
Description 写主机名
Hostname 写主机ip
Host Template 选择 ucd/net SNMP Host (因为我们是靠net-snmp去监控的)
下拉网页 点击create
我创建的server3:
创建server3的图形:
点击server3:
右上角create graphs for this host
进去之后,选择你要监控的项,打上对勾,由下角点击create,就创建成功
查看图形:
上面点击graphs
选择主机,以及查看项,查看时间,点击 Go
增加扩展包
扩展包: monitor
在cacti主机上:
server2:
tar zxf monitor-v1.3-1.tgz -C /var/www/html/cacti/plugins/
在浏览器上:
点击左边框中的Plugin Management—–>点击安装图标—–>点击运行图标
增加多线程:
server2:
tar zxf cacti-spine-0.8.8h.tar.gz yum install mysql-devel net-snmp-devel gcc -ycd cacti-spine-0.8.8h./configuremakemake installcd /usr/local/spine/etc/cp spine.conf.dist /etc/spine.confcd /usr/local/spine/bin/
vim /etc/spine.conf
33 DB_Host localhost 34 DB_Database cacti 35 DB_User cacti 36 DB_Pass redhat 37 DB_Port 3306
浏览器上操作:
console —–> settings—->paths—–>将/usr/local/spine/bin/spine复制到该条目下save—>poller
测试:
[root@server2 snmp]# su - cacti[cacti@server2 ~]$ /usr/local/spine/bin/spineSPINE: Using spine config file [/etc/spine.conf]SPINE: Version 0.8.8h startingSPINE: Time: 0.1084 s, Threads: 5, Hosts: 3
- cacti远程监控原理及简单配置
- cacti监控客户端配置
- 基于Nginx搭建的Cacti监控及配置
- cacti系列(一)之cacti的安装及配置监控mysql服务
- centos4.7 + cacti监控配置
- cacti监控搭建和配置
- cacti--------(2)添加远程监控主机
- cacti监控远程linux机器配置(被监控端)
- cacti监控系列之一:安装篇---含配置及模版,插件安装
- CentOS 5.6 X86上配置cacti流量监控及日志报警
- Cacti监控配置指南---Mysql(1)
- Cacti监控配置指南---Mysql(2)
- 配置 CACTI 监控 MySQL 数据库状态
- Cacti被监控机器 配置 snmp协议
- 监控cacti
- cacti监控
- 监控-cacti
- CentOS6.2安装cacti远程监控服务器小纪
- tools安装后无法使用
- node项目之express-winston , winston
- Linux进程通信之二元信号量
- Android进阶之路
- Eclipse 处理svn:ignore忽略文件同步管理
- cacti远程监控原理及简单配置
- 文件的上传与下载
- Android实现一个选择器-recycleview滚动中第一个item位置的获取
- EffectiveC++学习笔记-条款4
- replace用法案例
- Python基础(二)
- 牛腩--基础知识(二)
- jenkins自动化部署安装部署(Windows-SVN版)
- 简单的python代码改造为多线程案例