cacti 详解

摘要:平台信息: [root@LockLinux ~]# uname -a Linux LockLinux 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [root@LockLinux ~]# cat /etc/issue CentOS release 6.8 (Fina

平台信息:

[root@LockLinux ~]# uname -a Linux LockLinux 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [root@LockLinux ~]# cat /etc/issue CentOS release 6.8 (Final) Kernel r on an m 1.监控系统 流程概述

1 (56).jpg

2.SNMP 2.1 流程概述
2.11 MIB管理信息库

被监控主机-对象名称和OID信息关联表

2.12 监控内容

【Fault Management】故障管理

【Configuration Management】配置管理

【Accounting Management】计账管理

【Performance Management】性能管理

【Security Management】安全管理

2.13 community

Agent内置

【public】 只读

【private】读写

2.14 指令(报文)

【get】获取指令,单个具体对象

【getnext】节点下所有对象

【getbulk】节点下所有子节点下的所有对象

【set】操作指令

2.2 SNMP应用

【net-snmp】Agent (162端口)

【net-snmp-utils】NMS & trap (161端口)

2.21安装snmp

[Lock@LockLinux ~]$sudo yum install net-snmp net-snmp-utils # 安装 [Lock@LockLinux ~]$sudo service snmpd start # 启动服务 [Lock@LockLinux ~]$sudo netstat -unlp # 查看对应端口 [Lock@LockLinux ~]$sudo snmpwalk -v 2c -c public localhost host 获取节点下所有 -v 指定snmp版本 -c 指定comunity版本 指定主机 指定对象 2.22 监控命令

 

[Lock@LockLinux ~]$sudo snmpget -v 2c -c public localhost HOST-RESOURCES-MIB::hrSystemUptime.0 获取指定对象 树-节点-对象

 

2.23 查看mib库

[Lock@LockLinux mibs]$cd /usr/share/snmp/mibs/ 2.24 配置mib库

【修改监控tcp服务】

[Lock@LockLinux mibs]$sudo less TCP-MIB.txt # 在Mib库中找到TCP,记录标识

 

[Lock@LockLinux mibs]$sudo vim /etc/snmp/snmpd.conf # 修改配置文件,增加显示子树

 

[Lock@LockLinux mibs]$sudo service snmpd restart # 重启服务 [Lock@LockLinux mibs]$snmpwalk -v 2c -c public localhost tcp # 监控主机的tcp服务

【修改认证】

[Lock@LockLinux mibs]$sudo vim /etc/snmp/snmpd.conf

 

注释默认,允许127.0.0.1主机和192.168.195.0/16网段,通过my_public进行SNMP连接

[Lock@LockLinux mibs]$sudo service snmpd restart # 重启服务 [Lock@LockLinux mibs]$sudo snmpwalk -v 2c -c my_public localhost tcp # 新comunity认证 2.24 其他监控命令

[Lock@LockLinux mibs]$man snmpnetstat # 查看命令帮助

[Lock@LockLinux mibs]$snmpnetstat -v 2c -c my_public -Ca -Cp tcp localhost -Ca 指定默认配置 -Cp 制定协议tcp

[Lock@LockLinux mibs]$snmpnetstat -v 2c -c my_public -Can -Cp tcp localhost -Can 解析成数字

[Lock@LockLinux mibs]$sudo chkconfig snmpd on # 设置服务开机自动启动 3.RRDTool 3.1 流程概述

 

RRD:Round Robin Database 环状(轮转)数据库,数据库大小固定

RRA:Round Robin Archive 轮转归档信息

PDP:Primary Data Point 主数据节点

CDP:Consolidation Data Point 聚合数据节点

DS:Data Source 数据源

DST:Datat Source Type 数据源类型

【数据->PDP】

在设置start time时以固定时间间隔获取n种时间序列数据,按DST数据源类型存储n种数据源,这一节点数据称为PDP,把PDP存储到RRD对应时间槽

【PDP->CDP-RRA】

按解析度根据不同聚合函数CF聚合成不同数据节点,这一节点数据成为CDP,把CDP存储到RRD对应时间槽,这个RRD称为轮转归档信息RRA

【RRA->图形】

3.2 RRDTool应用 3.21 安装RRDTool

[root@LockLinux ~]# yum install rrdtool.x86_64 rrdtool-perl.x86_64 3.22创建RRD

rrdtool create filename [--start|-b] [--step|-s] [DS:ds-name:DST:dst_arguments] [RRA:CF:cf_arguments] filename 文件名 -b 存储时间 -s 时间间隔 DS:数据源名:DST数据源类型:数据源参数 RRA:CF聚合函数:聚合参数 可以创建多个DS,多个RRA

【create】

create创建了一个数据容器,存有在创建时,指定的n个DS和各个DS对应的n个RRA

【DST】

GAUGE:原始值

COUNTER:相对值(相对上一个)(必递增)

DERIVE:相对值(相对上一个)(不要求)

ABSOLUTE:相对值(相对初始值)

【dst_arguments】heartbeat:min:max

heartbeat:超时限制,超时标记为UNKNOWN

min:数据最小值 U无限制

max:数据最大值 U无限制

【CF】

AVERAGE:平均值

MIN:最小值

MAX:最大值

LAST:

【cf_arguments】xff:steps:rows

xff:PDP中UNKNOWN的比例,达到设为UNKNOWN

steps:聚合一次的PDP数,解析度

rows:聚合次数

[root@LockLinux ~]# rrdtool create test.rrd --step 5 DS:testds:GAUGE:8:0:U RRA:AVERAGE:0.5:1:17280 RRA:AVERAGE:0.5:10:3456 RRA:AVERAGE:0.5:100:1210

[root@LockLinux ~]# rrdtool info test.rrd # 查看rrd文件格式

3.23 向rrd文件提供数据

【update】

update向create已经创建的数据容器中,更新入指定的DS数据

rrdtool upadate|updatev filename [--template|-t ds-name[:ds-name]...] [--]N|timestamp"value[:value...] --template|-t ds-name[:ds-name]...

rrdtool create test.rrd DS:ds1 DS:ds2 # N 表示当前时间 rrdtool update test.rrd N:30:40 # 按照默认ds1 ds2顺序更新数据 rrdtool update test.rrd -t ds2:ds1 40:30 # 按照指定ds2 ds1顺序更新数据

[root@LockLinux ~]# rrdtool update test.rrd N:$RANDOM # 当前时间:DS1:随机值 3.24 从rrd文件提取数据

【fetch】

fetch从update更新入的数据容器中,提取CF聚合后的数据

[root@LockLinux ~]# rrdtool fetch -r 5 test.rrd AVERAGE # 指定聚合函数,从数据源中取得数据,-r指定解析度 3.25 应用例子

[root@LockLinux ~]# rrdtool create test2.rrd --step 5 DS:testds1:GAUGE:8:0:U DS:testds2:GAUGE:8:0:U RRA:AVERAGE:0.5:1:17280 RRA:MAX:0.5:2:17280

创建test2.rrd文件,指定获取DS间隔5秒,

指定第一个DS,DS名:testds1,DST:GAUGE,超时:8,允许最小:0,允许最大:U无限制

指定第二个DS,DS名:testds2,其他同DS1

指定第一个RRA,CF:AVERAGE,允许聚合比例:0.5,聚合单位:1个PDP,聚合次数:17280

指定第二个RRA,CF:MAX,聚合单位:2个PDP,其他同RRA1

注意:create后,rrd中已经存有2个空的DS数据容器,4个空的RRA数据容器

[root@LockLinux ~]# cat test2.sh #!/bin/bash # while true;do rrdtool update test2.rrd N:$RANDOM:$RANDOM sleep 5 done

向test2.rrd文件更新入,当前时间,第一个DS为随机值,第二个DS为随机值

注意:update后,rrd中已经存有2个有数据的DS数据容器,4个有数据的RRA数据容器

[root@LockLinux ~]# rrdtool fetch -r 5 test2.rrd AVERAGE [root@LockLinux ~]# rrdtool fetch -r 5 test2.rrd MAX

从test2.rrd文件提取所有DS,解析度5秒(不存在则取大),平均值和最大值聚合函数的数据

注意:fetch只是提取,并非运算

3.26 绘图

rrdtool graph|graphv filename [option...] [data definition...] [data calculation...] [variable definition...] [graph element...] [print element...] filename 绘制的图片文件,默认PNG文件 data definition 数据来源 data calculation 数据再运算 variable definition 变量 graph element 最终指定图形的元素 print element 显示图形 option: 基本参数: -s|--start -e|--end 时间跨度 -S|--step 解析度 -t|--title 标题 -v|--vertical-label 竖向标签 -w|--width -h|--height 宽度高度 -j|--only-graph 只绘制图像 -D|--full-size-mode 自动缩放(根据数据值) 坐标轴:自定义,不自动缩放 -u|--upper-limit DS最大值 -l|--lower-limit DS最小值 -r|--rigid 固定最大最小(不会自动缩放) -A|--alt-autoscale 不固定最大最小(允许自动缩放) -J|--alt-autoscale-min 只自动缩放最小值 -M|--alt-autoscale-max 只自动缩放最大值 -N|--no-gridfit 不显示网格 X-Axis: -x|--x-grid GTM:GST:MTM:MST:LTM:LST:LPR:LFM GTM:GST 灰色基网格线(单位:值) MTM:MST 红色主网格线(单位:值) LTM:LST 横轴标签多久显示(单位:值) LPR:LFM 标签显示格式 -x|--x-grid none e.g --x-grid MINUTE:10:HOUR:1:HOUR:4:0:%X Y-Axis: -y|--y-grid grid step:label factor 竖轴标签多久显示:标志 -y|--y-grid none -Y|--alt-y-grid Miscellaneous: -c|--color COLORTAG#rrggbb[aa] 线条颜色 模块#颜色 BACK CANVAS 画布颜色 #SHADEA 左上边际线颜色 #SHADEB 右下 #GRID,MGRID 网格线颜色 #FONT 字体颜色 #AXIS 坐标轴颜色 #FRAME 边框颜色 #ARROW 轴箭头颜色 #-n|--font FONTTAG:size:[font] 字体:大小:路径 #-R|--font-render-mode {normal,light,mono} 正常,高亮 -a|--imgformat PNG|SVG|EPS|PDF 图片格式 #-W|--watermark 水印

data defintion: DEF:vname=rrdfile:ds-name:CF[:step=step][:start=time][:end=time] # vanem变量名=rrd文件:数据源名:聚合函数[默认300s/] #CDEF:vname=RPN expression #VDEF:vname=RPN expression

graph: LINE[width]:value[#color][:[legend][:STACK]][:dashes[=on_s[,0ff_s[,on_s,off_s]...]][:dash-offst=offset]] # 线状图 LINE格式:变量#曲线颜色:线条标签: AREA:value[:#color][:[legend][:STACK]] # 面积图

print: GPRINT:vame:CF:format # 打印字符串 COMMENT:text 3.27 绘图用例

【1】单曲线图

[root@LockLinux ~]# rrdtool graph a.png -s 1485870845 -t Test -v vtest DEF:vartest=test.rrd:testds:AVERAGE:step=5 LINE1:vartest#FF0000:testline

指定输出图片文件a.png,

指定时间跨度-s 到当前时间

指定图片标题-t Test

指定竖轴标题-v vtest

指定第一条曲线:DEF:变量名=数据来源rrd:数据源DS:聚合函数:解析度

指定第一条线条参数:线条格式LINE1:变量#线条颜色:线条标签

【2】多曲线图

[root@LockLinux ~]# rrdtool graph b.png -s 1485870845 -t Test -v vtest DEF:vartest=test.rrd:testds:AVERAGE:step=5 DEF:vartest2=test.rrd:testds:AVERAGE:step=50 LINE1:vartest#FF0000:testline LINE1:vartest2#0cff00:testline2

在【1】上增加:

指定第二条曲线:DEF:变量名2=数据来源rrd:数据源DS:聚合函数:解析度2

指定第二条线条参数:线条格式LINE1:变量2#线条颜色:线条标签2

【3】多标签

[root@LockLinux ~]# rrdtool graph c.png -s 1485870845 -e 1485871480 -t Test -v vtest DEF:vartest=test2.rrd:testds1:AVERAGE:step=5 DEF:vartest2=test2.rrd:testds1:AVERAGE:step=50 DEF:vartest3=test2.rrd:testds1:MAX:step=10 LINE1:vartest#FF0000:testline LINE1:vartest2#0cff00:testline2 GPRINT:vartest3:MAX:\'MAX:%6.2lf\'

在【2】上增加:

指定第三个变量vartest3

输出标签:GPRINT:变量:CF聚合函数:\'输出格式\'

注意:是L(小写),格式必须指定

4.cacti

cacti通过RRDTool绘图,展示出来。作为RRDTool的前段工具,简化了RRDTool复杂的操作。

【1】rrdtool create 创建rrd文件

【2】周期性执行能够取得数据的命令,并将取得的数据保存至rrd文件当中

rrdtool update:脚本|SNMP|ssh(密钥认证)

【3】利用rrdtool graph绘图并展示

cacti是php开发的网页程序,依赖于LAMP or LNMP,编译安装需要--enable-sockets

【 模板】:图像模板(graph),数据模板(create),主机模板

4.1 安装cacti 4.11 安装LNMP or LAMP

http://my.oschina.net/charlock/blog/831415

4.12 配置虚拟主机

[root@LockLinux ~]# vim /etc/httpd/conf/httpd.conf # 命令行模式下按"G",增加如下 <VirtualHost *:80> # ServerAdmin webmaster@dummy-host.example.com DocumentRoot /web/vhosts/cacti ServerName cacti.Lock.com ErrorLog "logs/cacti-error_log" CustomLog "logs/cacti-access_log" common <Directory "/web/vhosts/cacti"> Options Indexes AllowOverride none Require all granted </Directory> </VirtualHost> # 其他Apache主配置文件:/etc/httpd/extra/httpd-vhosts.conf # 或者httpd -V查看 4.13 安装cacti

# http://www.cacti.net/download_cacti.php 下载地址 [root@LockLinux ~]# tar xf cacti-1.0.0.tar.gz -C /web/vhosts # 解压到/web/vhosts文件夹 [root@LockLinux ~]# cd /web/vhosts/ [root@LockLinux vhosts]# ln -sv cacti-1.0.0 cacti # 创建链接 [root@LockLinux vhosts]# cd cacti 4.14 配置数据库

[root@LockLinux cacti]# mysqladmin -p create cactidb # 创建cacti数据库,123456 [root@LockLinux cacti]# mysql -p cactidb < cacti.sql # 导入库信息 [root@LockLinux cacti]# mysql -p -e "GRANT ALL ON cactidb.* TO cactiuser@localhost IDENTIFIED BY \'cactiuser\'" # 创建cacti数据库账号 [root@LockLinux cacti]# mysqladmin -p flush-privileges # 账号生效 [root@LockLinux cacti]# mysql -ucactiuser -p # 测试账号

[root@LockLinux cacti]# vim include/config.php # 设置cacti链接mysql #修改: $database_default = \'cactidb\'; $url_path = \'/\'; 4.15 配置数据脚本用户

[root@LockLinux cacti]# useradd cactiuser # 新增用户 [root@LockLinux cacti]# pwd /web/vhosts/cacti [root@LockLinux cacti]# chown -R cactiuser:cactiuser rra/ log/ # 修改rra log文件夹属主属组 4.16 一些问题

http://chenhao6.blog.51cto.com/6228054/1346010

未设置虚拟主机,和url_path

[root@LockLinux ~]# vim /usr/local/nginx/html/cacti/include/config.php $database_hostname = "127.0.0.1"; # 算是解决了吧,web访问/cacti没有报错,调到/install也没有加载任何 # http://192.168.195.201/cacti/install/ # 得到结果,可过程不时期望的

4.2 配置cacti 4.21 图形界面初始化

初始默认用户名密码都是:admin,第一次登陆会提示修改密码(123456)

单击here

4.22 cacti界面

【console】 控制台,用于编辑配置

【Create】新建

New Graphs:创建新图像

【Management】管理

Graph Management

Graph Trees

Data Sources

Devices

【Collection Methods】数据收集方法

Data Queries数据查询:xml格式数据收集方法

Data Input Methods数据输入方法:命令或脚本

脚本:只需要指定如何获取数据,并且获取到的数据经过处理后要按规定输出(TAG:data TAG:data)poller.php用于控制脚本计划执行,可替换成多线程功能强大的spine

设置计划脚本

[root@LockLinux cacti]# echo \'*/5 * * * * /usr/local/php/bin/php /usr/local/nginx/html/cacti/poller.php a>/dev/null\' > /var/spool/cron/cactiuser # 设置poller计划执行 [root@LockLinux cacti]# su - cactiuser [cactiuser@LockLinux ~]$ /usr/local/php/bin/php /usr/local/nginx/html/cacti/poller.php # 测试运行

[root@LockLinux cacti]# vim /etc/php.ini # 根据报错,修改时区 date.timezone = Asia/Shanghai [root@LockLinux cacti]# tail /usr/local/nginx/html/cacti/log/cacti.log 09/15/2016 12:50:01 AM - SYSTEM STATS: Time:0.1586 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:0 RRDsProcessed:0 [root@LockLinux cacti]# date Thu Sep 15 09:08:48 CST 2016 [root@LockLinux cacti]# hwclock -s [root@LockLinux cacti]# date Fri Sep 16 21:40:19 CST 2016 [root@LockLinux cacti]# date # 修改为当前时间 Fri Sep 16 21:50:39 CST 2016 [root@LockLinux cacti]# date 0216101417 Tue Feb 16 10:14:00 CST 2017 [root@LockLinux cacti]# service nginx restart nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful Stopping nginx: [ OK ] Starting nginx: [ OK ]

[root@LockLinux log]# chmod u+w /etc/sudoers # 给cactiuser赋予sudo权限 [root@LockLinux log]# vim /etc/sudoers cactiuser ALL=(ALL) ALL [root@LockLinux ~]# chmod u-w /etc/sudoers [cactiuser@LockLinux ~]$ /usr/local/php/bin/php /usr/local/nginx/html/cacti/poller.php # 测试计划脚本 [cactiuser@LockLinux ~]$ cat /usr/local/nginx/html/cacti/log/cacti.log 09/15/2016 12:50:01 AM - SYSTEM STATS: Time:0.1586 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:0 RRDsProcessed:0

【Templates】模板

Graph Templates

Host Templates

Data Templates

【Import/Export】导入/导出

Import Templates

Export Templates

【Configuration】配置

Settings

Plugin Management

【Utilities】管理工具

System Utilities

User Management

Logout User

【graphs】显示监控主机树,图形

4.3 cacti用例 4.31 监控本地主机

设置设备

Save

设置数据源

默认五个数据源

模板+设备=数据源

查看图形

注意:默认有五个图形,如果没有图形加载,检查cactiuser是否有sudo权限执行脚本,检查直接运行poller.php是否成功

[root@LockLinux ~]# cd /usr/local/nginx/html/cacti/rra # 查看rra文件夹下,数据源 [root@LockLinux rra]# ls localhost_load_1min_5.rrd localhost_mem_swap_4.rrd localhost_users_6.rrd localhost_mem_buffers_3.rrd localhost_proc_7.rrd [root@LockLinux rra]# rrdtool fetch -r 300 localhost_mem_buffers_3.rrd AVERAGE 1486356900: -nan 1486357200: -nan 1486357500: -nan 1486357800: -nan [root@LockLinux rra]# date +%s # 当前时间戳距离时间槽 1486357579 [root@LockLinux rra]# date +%s 1486357813 [root@LockLinux rra]# rrdtool fetch -r 300 localhost_mem_buffers_3.rrd AVERAGE 1486357500: 7.0994906000e+05 1486357800: 7.0994906000e+05 # 获取数据 1486358100: -nan

一段时间后

4.32 增加监控内容

收集方法+数据模板+设备+数据源+图形定义

选择数据收集方法

选择数据模板

选择设备

新建图形

设置图形

保存

添加数据源

另开页面,参考其他数据源定义,关联图形

一些设置可能错的,没有数据

4.4 cacti设置
4.5 cacti导入模板

cacti官网 论坛 有各种模板和附带的使用说明

4.6 自定义 4.61 编写脚本(单DS)

【获取信息】

# 编写脚本,获取snmpnetstat信息 [root@LockLinux catic_work]# vim tcpconn.sh #!/bin/bash # # $1: hostname or IP # $2 snmp community SNMPNETSTAT=/usr/bin/snmpnetstat $SNMPNETSTAT -v 2c -c $2 -Can -Cp tcp $1 [root@LockLinux catic_work]# chmod +x tcpconn.sh [root@LockLinux catic_work]# ./tcpconn.sh localhost my_public Active Internet (tcp) Connections (including servers) Proto Local Address Remote Address (state) tcp *.22 *.* LISTEN tcp *.80 *.* LISTEN tcp *.111 *.* LISTEN tcp *.3306 *.* LISTEN tcp *.46593 *.* LISTEN tcp 127.0.0.1.25 *.* LISTEN tcp 127.0.0.1.199 *.* LISTEN tcp 127.0.0.1.3306 127.0.0.1.59204 ESTABLISHED tcp 127.0.0.1.3306 127.0.0.1.59209 ESTABLISHED tcp 127.0.0.1.3306 127.0.0.1.59210 ESTABLISHED tcp 127.0.0.1.3306 127.0.0.1.59211 ESTABLISHED tcp 127.0.0.1.3306 127.0.0.1.59212 ESTABLISHED

[root@LockLinux catic_work]# vim tcpconn.sh # 筛选 计数 [root@LockLinux catic_work]# ./tcpconn.sh localhost my_public 21 $SNMPNETSTAT -v 2c -c $2 -Can -Cp tcp $1 | grep -i \'established\' | wc -l

【格式输出】

[root@LockLinux catic_work]# vim tcpconn.sh #!/bin/bash # # $1: hostname or IP # $2 snmp community SNMPNETSTAT=/usr/bin/snmpnetstat ESTABLISHED=`$SNMPNETSTAT -v 2c -c $2 -Can -Cp tcp $1 | grep -i \'established\' | wc -l` echo -n "established:$ESTABLISHED" [root@LockLinux catic_work]# ./tcpconn.sh localhost my_public established:21[root@LockLinux catic_work]# # 复制脚本到cacti [root@LockLinux catic_work]# cp tcpconn.sh /usr/local/nginx/html/cacti/scripts/ 4.62 设置数据收集方法

编辑数据方法

编辑数据方法参数,

Friendly Name设置提示名

Special Type Code设置输入参数为空时,指定的默认

编辑数据方法输出

 

4.63 设置数据模板(参考已有数据模板)
4.64 添加数据源

[root@LockLinux catic_work]# cp tcpconn.sh /usr/local/nginx/html/cacti/scripts/ [root@LockLinux catic_work]# cd /usr/local/nginx/html/cacti/rra [root@LockLinux rra]# ls localhost_load_1min_5.rrd localhost_proc_7.rrd localhost_users_6.rrd localhost_mem_buffers_3.rrd localhost_snmp_oid_9.rrd localhost_mem_swap_4.rrd localhost_tcpestablished_11.rrd 4.65 创建图形

创建基本框架

设置图形参数

4.66 添加图形
4.67 效果图

[root@LockLinux rra]# ls # 已生成文件 localhost_load_1min_5.rrd localhost_proc_7.rrd localhost_tcpestablished_11.rrd localhost_mem_buffers_3.rrd localhost_snmp_oid_9.rrd localhost_users_6.rrd localhost_mem_swap_4.rrd localhost_tcpconn_1.rrd [root@LockLinux rra]# rrdtool fetch -r 300 localhost_tcpconn_1.rrd AVERAGE # 查看 1486364700: -nan 1486365000: -nan 1486365300: -nan 1486365600: -nan 1486365900: -nan 1486366200: -nan [root@LockLinux rra]# date +%s 1486365938 # 很久.. [root@LockLinux rra]# rrdtool fetch -r 300 localhost_tcpconn_1.rrd AVERAGE # 取得数据 1486367100: 2.5000000000e+01 1486367400: -nan

添加

4.68 多数据源

脚本

[root@LockLinux scripts]# vim tcpconn2.sh #!/bin/bash # # $1: hostname or IP # $2 snmp community SNMPNETSTAT=/usr/bin/snmpnetstat TEMPFILE=`mktemp /tmp/$1_tcpconn.XXXXX` $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 synreceived:$SYNRECEIVED" [root@LockLinux scripts]# ./tcpconn2.sh localhost my_public established:21 timewait:2 synreceived:0[root@LockLinux scripts]#

数据源模板

图形模板

效果图