cacti

snmp(simple network management protocol)简单网络管理协议
command
remote script

NMS:网络管理平台

RRDTool()

cacti(php):有强大的绘图功能
展示
时间序列数据

nagios:
on-》off
状态监测工具

snmp:有三种执行方式,read-only,read-write,trap(被监控端主动发出信息给监控端)

manager:监控端
agent:被监控端

agent:
MIB-II:管理信息库,是为了关联OID和各个组件名的功能
OID:对象标识符

IDS:***检测系统
IPS:***防御系统

community

net-snmp(agent)
net-snmp-utils(NMS:command)

yum install net-snmp net-snmp-utils

rpm -ql net-snmp | less

service snmpd start

snmpwalk -v 2c -c public localhost host

ls /usr/share/snmp/mibs(里面都是OID)

snmpget -v 2c -c public localhost HOST-RESOURCES-MIB::hrSystemUptime.0(是上条命令执行产生的结果)

vim /etc/snmp/snmp.conf
view systemview included .1.3.6.2.1.6(这是查看主机上面tcp状态的配置)

service snmpd restart

snmpwalk -v 2c -c public localhost tcp

vim /etc/snmp/snmp.conf
com2sec notConfiguser 127.0.0.1 mypublic(相当于访问控制)
com2sec notConfiguser 172.16.0.0/16 mypublic

service snmpd restart

snmpwalk -v 2c -c mypbulic 172.16.100.1 host

snmpnetstat -v 2c -c mypublic -Can -Cp tcp 172.16.100.1

rrdtool:存放这种获取被监控主机信息数据的地方
rra(round rodbin archive)
rrd文件:
ds(data source)数据源

PDP:primary data point,指一个收到的数据
RRA:把多少个数据信息归档成一组,把这组数据交给CDP进行聚合计算
CDP:通过聚合计算之后得出的结果

解析度:resolution,指的是时间跨度间隔的大小

time slot时间槽

5s,生成一个随机数-》
5s
50s
500s
DS:ds-name:DS:dst argume

1:
2369
GAUGE:2369
COMPUTE:2133
DERIVE:2133
ABSOLUTE:1258

yum install rrdtool rrdtool-devel rrdtool-perl

rrdtool create test.rrd --step 5(指的是每五秒接受一个数据) DS:testds:GAUGE(这是指数据类型):8:0:U RRA:AVERAGE:0.5(这是大于等于0.5的比例就是未知的数据):1(每一个数据就平均一下,这一个需要15=5秒):17280(864001(指一天时间)/5得到的结果)RRA:AVERAGE:0.5:10(每十个数据取一次平均值,这是十个总共需要105=50秒):3546(864002(指两天时间)/50) RRA:AVERAGE:0.5:100:1210(86400*7(指一个星期的时间)/500)

rrdtool update test.rrd N:$RANDOM
rrdtool fetch test.rrd AVERAGE

rrdtool create test.rrd DS:ds1 DS:ds2
rrdtool update test.rrd timestamp:32:24
rrdtool update test.rrd -t ds2:ds1 40:30

rrdtool create test.rrd --step 5 DS:testds:GAUCE:8:0:U RRA:AVERAGE:0.5:1:17280 (0.5表示一个PDP中有0.5个或者超过0.5个PDP的值是unknown,则该cpd就无法合成,默认每五分钟产生一个PDF)RRA:AVERAGE:0.5:10:3456(0.5表示一个PDP中有5个或者超过5个PDP的值是unknown,则该cpd就无法合成) RAA:AVERAGE:0.5:100:1210(0.5表示一个PDP中有50个或者超过50个PDP的值是unknown,则该cpd就无法合成)

vim genval.sh
#! /bin/bash
while true
do
rrdtool update test.rrd N:$RANDOM
sleep 5
done

rrdtool fetch -r 5 test.rrd AVERAGE
rrdtool fetch -r 10 test.rrd AVERAGE
rrdtool fetch -r 50 test.rrd AVERAGE

rrdtool graph a.png --step 5 -s 134567985 -t Test -v vtest DEF:vtest=/root/test.rrd:testds:AVERAVG LINE1:vtest#ff0000:testline

把两个不同跨度的时间绘制成一张图:
rrdtool graph a.png -s 1341664750 DEF:vartest=/root/test.rrd:testds:AVERAGE:step=5 DEF:vartest2=/root/test.rrd:testds:AVERAGE:step=50 LINE1:vartest#FF0000:"testline" LINE1:vartest2#00FF00:"testline2"

获取数据库的被查询次数的信息:
rrdtool create mysql.rrd --step 3 DS:myselect:COUNTER:5:0:U RRA:AVERAGE:0.5:1:28800 RRA:AVERAVG:0.5:10:2880 RRA:MAX:0.5:10:2880 RRA:LAST:0.5:10:2880

mysql -e "show global status like 'com_select'"
mysql --batch -e "show global status like 'com_select'" | awk '/Com_select/{print $2}'

vim getselect.sh
#! /bin/bash
while true
do
SELECT=mysql --batch -e "show global status like com_select" | awk '/com_select/{print $2}'
rrdtool update mysql.rrd N:$RANDOM
sleep 3
done

vim insert.sh
#! /bin/bash
for i in {1..20000}
do
mysql -e "insert into testdb.tb1(name) values('stu$i')"
mysql -e "select * from testdb.tb1" &> /dev/null
done

mysql>create database testdb;
mysql>create table tb1 (id int unsigned not null auto_increment primary key,name char(50) not null)

rrdtool fetch -r 3 mysql.rrd AVERAGE

rrdtool fetch -r 30 mysql.rrd LAST

rrdtool graph mysql.png -s 1341667608 -t “mysql select” -v "selects/3" DEF:select3=mysql.rrd:myselect:AVERAGE:step=3 LINE1:select3#FF0000:"SELECT"

rrdtool graph mysql.png -s 1341667608 -t “mysql select” -v "selects/3" DEF:select30=mysql.rrd:myselect:AVERAGE:step=30 DEF:max30=mysql.rrd:myselect:MAX:step=30 DEF:last30=mysql.rrd.myselect:LAST:ste
p=30 LINE1:select3#FF0000:"SELECT" GRPINT:last30:LAST:"CURRENT\: %10.2lf" GRPINT:max:30:MAX:"MAXIMUM\: %6.2lf"

cacti:
rrdtool create
周期性执行能够取得数据的命令,并将取回的数据保存至rrd文件当中
利用rrdtool绘图并展示

php开发网页程序:
lamp,lnmp并且要启用--enable-sockets

插件机制:
thold:实现报警功能

模板:
图形模板
数据模板
主机模板

cacti-----》保存数据----》图形模板

收集方法:数据收集方法
数据查询:xml格式数据收集方法
数据输入方法:命令或者脚本
脚本:
只需要指定如何获取数据,并且获取到的数据经过处理后要按规定输出:
TAG:data TAG:data
input:30 output:40

安装配置cacti:
首先要搭建lamp平台

/var/www/html/cacti
http://172.16.100.1/cacti/

vim /etc/httpd/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerName cacti.magedu.com
DocumentRoot /web/vhosts/cacti
<Directory "/web/vhosts/cacti">
Options Indexes
AllowOverride node
Require all granted
</Diretory>
Errorlog "logs/cacti-error_log"
CustomLog "logs/cacti-access_log" common
</VirtualHost>

tar -zxvf cacti-0.8a.tar.gz -C /web/vhosts

cd /web/vhosts
ln -sv cacti-0.8.8a cacti

service httpd restart

cd cacti
mysqladmin create cactidb
mysql cactidb < cacti.sql
mysql -e "grant all on cactidb.* to cactiuser@localhost identified by 'cactiuser'"
mysqladmin flush-privileges
mysql -ucactiuser -p

cd /cacti/include
vim config.php
$url_path = "/";

useradd cactiuser
chown -R cactiuser:cactiuser rra/ log

http://cacti.mageud.com

echo "/5 * /usr/local/php/bin/php /web/vhosts/cacti/poller.php &> /dev/null" > /var/spool/cron/cactiuser

crontab -u cactiuser -e

snmpnetstat -v 2c -c mypublic -Can -Cp tcp localhost

vim tcpconn.sh
#! /bin/bash
SNMPNETSTAT=/usr/bin/snmpnetstat
TEMPFILE=mktemp /tmp/$1_tcpcpnn.XXXX
$SNMPNETSTAT -v 2c -c $2 -Can -Cp tcp $1 > $TEMPFILE
ESTABLISHED=grep -i "ESTABLISHED" $TEMPFILE | wc -l
TIMEWAIT=grep -i "TIMEWAIT" $TEMPFILE | wc -l
SYNRECEIVED=grep -i "SYNRECEIVED" $TEMPFILE | wc -l
echo -n "established:$ESTABLISHED timewait:$TIMEWAIT syncreived:$SYNCREIVED"

ab -c 2 -n 10000 http://172.16.100.1/index.php

./tcpconn.sh localhost mypublic

cp tcpconn.sh /web/vhost/cacti/scripts/

把自己写的脚本导入到cacti中:
data input methods-->data templates-->host templates-->graph templates-->data source-->graph management

使用插件:
tar -zxvf thold-v0.4.9-3.tgz -C /web/vhosts/cacti/plugins/
tar -zxvf settings-v0.71-1.1tgz -C /web/vhosts/cacti/plugins/

转载于:https://blog.51cto.com/12406012/2368183

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值