bgey 发表于 2019-1-9 10:50:10

cacti运维手册

cacti运维手册
  
  1      前言
  1.1系统功能概述
  cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
  2      系统架构
  2.1服务器架构图
  l这里是使用nginx+cacti架构,图如下(图1):
http://note.youdao.com/yws/res/79/1B4B36DF4D574EF98519AB3766FA13BB
  图1
  l架构图解析
  1 cacti是通过web访问的监控程序,所以需要依赖web服务,这里使用nginx来做web服务。
  2 cacti是拿取被监控机的snmp协议端口的信息数据来画图监控。
  3 cacti模板和rra 文件存入mysql数据库中。
  2.2cacti架构图
  lcacti工作流程架构图如下(图2):
http://note.youdao.com/yws/res/20/908E3743026E491B8A734B203744D274
  图2
  l架构图解析
  通过上图我们可以发现Cacti 有三大组件:MySQL 数据库、RRDtool 工具、Net-Snmp 程序。MySQL并不负责监控数据的存储,只保存模板和rra 文件与主机对应等信息,而真正的监控数据存储和图像展现都是rrdtool 来做的。而Net-SNMP 负责数据的采集。
  cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
  Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
  snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
  3      安装配置
  3.1安装配置nginx
  3.1.1      安装依赖程序
  lyum安装部分
  yum install -y pcrepcre-develgdgd-develGeoIPGeoIP-develgcc-c++
  l编译安装部分
  安装libunwind和google-perftools
  #wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-beta.tar.gz
  #tar -xzvf libunwind-0.99-beta.tar.gz
  #cd libunwind-0.99-beta
  #./configure
  #make
  #make install
  #echo "/usr/local/lib" >> /etc/ld.so.conf
  #ldconfig
  #wget http://down1.chinaunix.net/distfiles/google-perftools-1.9.tar.gz
  #tar -xzvf google-perftools-1.9.tar.gz
  #cd google-perftools-1.9
  #./configure
  #make
  #make install
  #ldconfig
  3.1.2      创建用户和组
  # useradd -g users -s /bin/false -M webuser
  # mkdir -p /opt/nginx/temp/client_body_temp
  3.1.3      编译安装nginx
  # tar -xzvf nginx-1.6.0.tar.gz
  # cd nginx-1.6.0
  #./configure --prefix=/opt/nginx \
  --user=webuser \
  --group=users \
  --with-poll_module \
  --with-http_ssl_module \
  --with-http_realip_module \
  --with-http_addition_module \
  --with-http_geoip_module \
  --with-http_flv_module \
  --with-http_gzip_static_module \
  --with-http_secure_link_module \
  --with-http_stub_status_module \
  --http-client-body-temp-path=/opt/nginx/temp/client_body_temp \
  --http-proxy-temp-path=/opt/nginx/temp/proxy_temp \
  --http-fastcgi-temp-path=/opt/nginx/temp/fastcgi_temp \
  --http-uwsgi-temp-path=/opt/nginx/temp/uwsgi_temp \
  --http-scgi-temp-path=/opt/nginx/temp/scgi_temp \
  --with-google_perftools_module
  make
  makeinstall
  3.1.4      配置nginx
  l修改nginx配置文件
  vi /opt/nginx/conf/nginx.conf(红色为修改部分)
userwebuser users;
worker_processes1;

#error_loglogs/error.log;
error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;

pid      logs/nginx.pid;


events {
    worker_connections1024;
}

http {
    include       mime.types;
    default_typeapplication/octet-stream;

    #log_formatmain'$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_loglogs/access.logmain;

    sendfile      on;
    #tcp_nopush   on;

    #keepalive_timeout0;
    keepalive_timeout65;

#gzipon;
    server {
      listen       80;
      server_name10.0.112.100;

      #charset koi8-r;

      #access_loglogs/host.access.logmain;

      location / {
            root   html;
            indexindex.html index.htm index.php;
      }

      #error_page404            /404.html;

      # redirect server error pages to the static page /50x.html
      #
      error_page   500 502 503 504/50x.html;
      location = /50x.html {
            root   html;
      }

      location ~ \.php$ {
            root         html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_indexindex.php;
            fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
            include      fastcgi.conf;
            fastcgi_ignore_client_abort on;
      }
   }
}  3.1.5      启动,关闭,重新加载nginx
  l启动nginx
  # /opt/nginx/sbin/nginx
  l关闭停止nginx
  # /opt/nginx/sbin/nginx -s stop
  l重新加载nginx配置
  # /usr/sbin/nginx -s reload
  至此,已经完成了nginx的安装部署。
  3.2安装配置PHP
  3.2.1      安装依赖程序
  lyum安装部分
  yum install libxml2-devel bzip2-devel libcurl-devel freetype-devel libpng-devel mysql-devel
  l编译安装部分
  tar zxvf libmcrypt-2.5.7.tar.gz
  cd libmcrypt-2.5.7
  ./configure --prefix=/usr/local/libmcrytp
  make
  make install
  tar zxvf freetds-0.95rc3.tar.gz
  cd freetds-0.95rc3
  ./configure
  make
  make install
  l库文件软连接
  ln -s /usr/lib64/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so
  3.2.2      编译安装php
  ./configure --prefix=/opt/php5 \
  --sysconfdir=/opt/php5/etc \
  --enable-soap \
  --enable-fpm \
  --enable-ftp \
  --enable-gd-native-ttf \
  --enable-mbstring \
  --enable-shmop=shared \
  --enable-sockets \
  --enable-sysvsem=shared \
  --enable-zip \
  --disable-ctype \
  --disable-ipv6 \
  --disable-mbregex \
  --disable-mbregex-backtrack \
  --disable-posix \
  --disable-tokenizer \
  --with-bz2=shared \
  --with-config-file-path=/opt/php5/etc \
  --with-curl \
  --with-curlwrappers \
  --with-freetype-dir=/usr \
  --with-fpm-group=users \
  --with-fpm-user=webuser \
  --with-gd \
  --with-iconv-dir=shared \
  --with-ldap-sasl=shared,/usr \
  --with-mcrypt=/usr/local/libmcrytp \
  --with-mhash=shared \
  --with-mssql=shared \
  --with-mysql=/usr \
  --with-mysqli=/usr/bin/mysql_config \
  --with-openssl \
  --with-pdo-mysql=shared \
  --with-zlib \
  --without-cdb \
  --without-pdo-sqlite \
  --with-png-dir=/usr --without-sqlite3
  make
  make install
  3.2.3      配置php
  l拷贝配置文件
  cp /opt/php5/etc/php-fpm.conf.default/opt/php5/etc/php-fpm.conf
  cp /usr/local/src/php-5.4.28/php.ini-production /opt/php5/etc/php.ini
  l修改php.ini
  # vi /opt/php5/etc/php.ini
  在Dynamic Extensions 段下添加以下内容:
  extension=eaccelerator.so
  extension=memcache.so
  extension=mongo.so
  extension=redis.so
  extension=pdo_dblib.so
  extension=pdo_mysql.so
  在末尾增加以下关于eaccelerator的配置:
  short_open_tag="On"
  eaccelerator.cache_dir="/opt/php5/var/tmp/eaccelerator_cache"
  eaccelerator.debug="0"
  eaccelerator.shm_only="1"
  eaccelerator.shm_size="256"
  修改以下配置:
  default_charset = "UTF-8"
  error_log = /opt/php5/var/log/php_errors.log
  html_errors = off
  upload_max_filesize = 32M
  upload_tmp_dir = /opt/php5/var/tmp
  date.timezone="Asia/Shanghai"
  include_path = ".:/opt/php5/include/php:/opt/php5/lib/php"
  short_open_tag = On
  l配置php-fpm服务
  # cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  其中. /sapi/fpm/init.d.php-fpm为存放在源码包中的文件
  # chmod 755 /etc/init.d/php-fpm
  # chkconfig --add php-fpm
  # cp /opt/php5/etc/php-fpm.conf.default /opt/php5/etc/php-fpm.conf
  3.2.4      启动,关闭,重新加载php
  l运行php
  # service php-fpm start
  l停止php
  # service php-fpm stop
  l重新加载php
  # service php-fpm restart
  3.3安装配置mysql
  3.3.1      yum安装mysql
  yum install mysql-server mysql
  3.3.2      启动mysql
  /etc/ini.d/mysqld start
  3.3.3      设置用户密码
  mysqladmin -u root -p password "123456"
  3.4安装配置cacti
  3.4.1      下载cacti
  这里下载的版本是0.8.8c
  http://www.cacti.net/downloads/cacti-0.8.8c.tar.gz
  http://www.cacti.net/downloads/ (里面可以自己选择相应版本)
  3.4.2      安装cacti
  l解压cacti
  tar zxvfcacti-0.8.8c.tar.gz
  l拷贝cacti
  cp –rf cacti-0.8.8c /opt/nginx/html
  3.4.3      数据库设置
  l导入cacti数据库
  mysql –uroot –p
  mysql> create database cacti
  mysql> quit
  tar zxvf
  mysql –uroot –p cacti < cacti.sql
  注:cacti.sql文件位置:/opt/nginx/html/cacti/cacti.sql
  l创建cacti数据库用户
  useradd cacti
  vi /etc/passwd
  cacti:x:501:501::/home/cacti:/sbin/nologin             #设置cacti用户不可登陆,增加安全性
  mysql –uroot –p
  mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cacti123';
  3.4.4      配置修改
  vi /opt/nginx/html/cacti/include/config.php
  $database_type = "mysql";
  $database_default = "cacti";
  $database_hostname = "127.0.0.1";
  $database_username = "cacti";
  $database_password = "cacti123";
  $database_port = "3306";
  $database_ssl = false;
  3.4.5      增加crontab
  crontab –e
  */5 * * * * /opt/php5/bin/php /opt/nginx/html/cacti/poller.php
  3.5网页安装cacti
  注意:如果出现网页图片为x,nginx错误日志报错为这样类似:FastCGI sent in stderr: "Access to the script '/var/www/html//phpmyadmin/setup/styles.css' has been denied (see security.limit_extensions)"
  从5.3.9开始,php官方加入了一个配置"security.limit_extensions",默认状态下只允许执行扩展名为".php"的文件,造成了其他类型的文件不支持的问题。
  修改php-fpm.conf,找到security.limit_extensions把他修改为:
  security.limit_extensions=.php .html .js .css .jpg .jpeg .gif .png .htm (常用的文件扩展名)
  就解决了
  l安装地址:http://IP/cacti/install 并按Next继续,如图(图3):
http://note.youdao.com/yws/res/14/3EE53755B475472F96DBB2627A89DE45
  图3
  l选择New install 并按Next继续,如图(图4):
http://note.youdao.com/yws/res/16/69498886D7B445B0AFEF11EE7CC42C57
  图4
  l填写正确rrdtool和php程序路径,并按Finish完成安装。如图(图5)
http://note.youdao.com/yws/res/15/AB71E0998FB34263A5E1C426D4BBD121
  图5
  3.6登陆cacti
  l登陆地址:http://IP/cacti/ 初始用户名:admin 初始密码:admin 如图(图6)
http://note.youdao.com/yws/res/19/BC752B1B37BB4BB79B41C78043765D18
  图6
  ladmin用户初次登陆,会被要求强制修改密码,这里我修改密码为:123456,点击“Save(保存)”。如图(图7):
http://note.youdao.com/yws/res/17/431EFB0897D94013BC5647FE0435D0E6
  图7
  l这是登陆cacti界面,如图(图8):
http://note.youdao.com/yws/res/18/37A5C06B956A4D1D9682F4239D612BF7
  图8
  3.7安装配置cacti-spine
  3.7.1      前言
  出于效率原因,在大量采集数据时使用自带的cmd.php轮询器会比较慢,1分钟1次的采集频率可能无法完成轮询所有机器。这里为了优化,采用官方推荐的spine来高效轮询。
  3.7.2      下载cacti-spine
  注:必须和cacti版本一致
  http://www.cacti.net/downloads/spine/cacti-spine-0.8.8c.tar.gz
  http://www.cacti.net/downloads/spine/(里面可以自己选择相应版本)
  3.7.3      编译安装
  tar zxvf cacti-spine-0.8.8c.tar.gz
  cd cacti-spine-0.8.8c
  ./configure
  make
  make install
  3.7.4      修改配置
  cd /usr/local/spine/etc
  cp spine.conf.dist spine.conf
  vi spine.conf
  DB_Host         127.0.0.1
  DB_Database   cacti
  DB_User         cacti
  DB_Pass         cacti123
  DB_Port         3306
  DB_PreG         0
  3.7.5      配置修改
  l登陆cacti,选择Settings 如图(图9)
http://note.youdao.com/yws/res/91/4E2DA5119839402F99CA8949F0B6DF84
  图9
  l然后选择poller,并在poller type 里面选择spine 并点击save保存。如图(图10):
http://note.youdao.com/yws/res/23/B1D26AF4407B458EB7774E2652A6009C
http://note.youdao.com/yws/res/29/DE97EC633F6248BEB5ACE1DF8EB18158
  图10
  3.8安装配置snmp(被监控机操作)
  3.8.1      安装snmp
  yum install net-snmp net-snmp-libs net-snmp-utils
  3.8.2      配置snmp
  vi /etc/snmp/snmpd.conf          修改下内容
  com2sec notConfigUser192.168.0.1      123456
  cacti的IP       snmp密码
  view all    included.1   #去掉注释
  accessnotConfigGroup ""      any       noauth    exactall none none   #改成all
  3.8.3      启动snmp
  /etc/init.d/snmpd start
  3.9窗口界面基本操作
  3.9.1      增加主机
  l点击devices,再点击add进入添加主机页面,如图(图11)
http://note.youdao.com/yws/res/83/9B87B4C5C64C429D8A50D990B1AC74FA
  图11
  l填写主机相应信息,并保存。如图(图12,图13)
http://note.youdao.com/yws/res/52/CDA0609CA16F4748BC2A3C4F2A081757
  图12
http://note.youdao.com/yws/res/69/470CB5C4C72B48CC822093426A6ADA33
  图13
  l再次进入主机页面,选择相应图形模板添加并保存。如图(图14)
http://note.youdao.com/yws/res/56/824245CEFEE44F6392B1568468644771
  图14
  3.9.2      增加图形
  l点击New Graphs进入增加图形界面,如图(图15)
http://note.youdao.com/yws/res/59/BDCE5A9458664D269CB0FDE6F68273C4
  图15
  l选择需要增加的图形,然后创建,如图(图16)
http://note.youdao.com/yws/res/57/51D17E8BBE924540BA724FA3FA525D45
  图16
  3.9.3      创建目录树
  l点击Graph Trees进入创建目录树。并点击Add创建。如图(图17)
http://note.youdao.com/yws/res/87/3FC2EA4609FD4ED6AE6955A15195F6F6
  图17
  l输入名字后,点击创建。如图(图18)
http://note.youdao.com/yws/res/90/3FF0A61E0674489F96F92C8AE25AF65A
  图18
  l然后点击Add添加主机到目录树下,如图(图19)
http://note.youdao.com/yws/res/86/DE0923C885CB466FBA869D14502EE37A
  图19
  l选择host,再选择主机名,并创建,如图(图20)
http://note.youdao.com/yws/res/82/D6EBDE746D3B4FD8B58931CC2E0647B0
  图20
  3.10   查看监控图
  直接点击graphs就可以查看监控图,如图(图21)
http://note.youdao.com/yws/res/62/6A35827C110C4C5CB41D42E282090DF9
  图21
  4      监控IO
  4.1前言
  监控硬盘IO这里介绍两种方法,一个是通过snmpdiskio监控IO,还一个是Cacti_Net-SNMP监控IO。推荐使用snmpdiskio,但如果这种监控方法失败或者内核已经超过2.6版本。就使用第二种方法Cacti_Net-SNMP。两种方法效果基本是一样的,看个人喜好选择吧。
  4.2通过snmpdiskio监控IO
  4.2.1      解压snmpdiskio
  tar zxvf snmpdiskio-0.9.4.tar.gz
  4.2.2      拷贝partition.xml(监控机操作)
  cp snmpdiskio-0.9.4/partition.xml /opt/nginx/html/cacti/resource/snmp_queries/
  4.2.3      修改partition.xml
  注意:下面oid要根据实际情况更改,比如如下:
  snmpwalk -v 2c -c public 192.168.8.131 .1.3.6.1.4.1.2021.54
  UCD-SNMP-MIB::ucdavis.54.1.0 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.54.2.1.2.5.104.100.78.117.109 = STRING: "/bin/bash"
  UCD-SNMP-MIB::ucdavis.54.2.1.3.5.104.100.78.117.109 = STRING: "/usr/local/bin/snmpdiskio hdNum"
  UCD-SNMP-MIB::ucdavis.54.2.1.4.5.104.100.78.117.109 = ""
  UCD-SNMP-MIB::ucdavis.54.2.1.5.5.104.100.78.117.109 = INTEGER: 5
  UCD-SNMP-MIB::ucdavis.54.2.1.6.5.104.100.78.117.109 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.54.2.1.7.5.104.100.78.117.109 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.54.2.1.20.5.104.100.78.117.109 = INTEGER: 4
  UCD-SNMP-MIB::ucdavis.54.2.1.21.5.104.100.78.117.109 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.54.3.1.1.5.104.100.78.117.109 = STRING: "33"
  UCD-SNMP-MIB::ucdavis.54.3.1.2.5.104.100.78.117.109 = STRING: "33"
  UCD-SNMP-MIB::ucdavis.54.3.1.3.5.104.100.78.117.109 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.54.3.1.4.5.104.100.78.117.109 = INTEGER: 0
  UCD-SNMP-MIB::ucdavis.54.4.1.2.5.104.100.78.117.109.1 = STRING: "33"
  OID是.1.3.6.1.4.1.2021.54.4.1.2.5.104.100.78.117.109.1
  
  snmpwalk -v 2c -c public 192.168.8.131 .1.3.6.1.4.1.2021.55
  UCD-SNMP-MIB::ucdavis.55.1.0 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.55.2.1.2.7.104.100.73.110.100.101.120 = STRING: "/bin/bash"
  UCD-SNMP-MIB::ucdavis.55.2.1.3.7.104.100.73.110.100.101.120 = STRING: "/usr/local/bin/snmpdiskio hdIndex"
  UCD-SNMP-MIB::ucdavis.55.2.1.4.7.104.100.73.110.100.101.120 = ""
  UCD-SNMP-MIB::ucdavis.55.2.1.5.7.104.100.73.110.100.101.120 = INTEGER: 5
  UCD-SNMP-MIB::ucdavis.55.2.1.6.7.104.100.73.110.100.101.120 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.55.2.1.7.7.104.100.73.110.100.101.120 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.55.2.1.20.7.104.100.73.110.100.101.120 = INTEGER: 4
  UCD-SNMP-MIB::ucdavis.55.2.1.21.7.104.100.73.110.100.101.120 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.55.3.1.1.7.104.100.73.110.100.101.120 = STRING: "1"
  UCD-SNMP-MIB::ucdavis.55.3.1.2.7.104.100.73.110.100.101.120 = STRING: "1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33"
  UCD-SNMP-MIB::ucdavis.55.3.1.3.7.104.100.73.110.100.101.120 = INTEGER: 33
  UCD-SNMP-MIB::ucdavis.55.3.1.4.7.104.100.73.110.100.101.120 = INTEGER: 0
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.1 = STRING: "1"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.2 = STRING: "2"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.3 = STRING: "3"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.4 = STRING: "4"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.5 = STRING: "5"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.6 = STRING: "6"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.7 = STRING: "7"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.8 = STRING: "8"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.9 = STRING: "9"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.10 = STRING: "10"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.11 = STRING: "11"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.12 = STRING: "12"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.13 = STRING: "13"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.14 = STRING: "14"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.15 = STRING: "15"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.16 = STRING: "16"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.17 = STRING: "17"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.18 = STRING: "18"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.19 = STRING: "19"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.20 = STRING: "20"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.21 = STRING: "21"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.22 = STRING: "22"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.23 = STRING: "23"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.24 = STRING: "24"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.25 = STRING: "25"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.26 = STRING: "26"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.27 = STRING: "27"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.28 = STRING: "28"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.29 = STRING: "29"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.30 = STRING: "30"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.31 = STRING: "31"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.32 = STRING: "32"
  UCD-SNMP-MIB::ucdavis.55.4.1.2.7.104.100.73.110.100.101.120.33 = STRING: "33"
  OID是.1.3.6.1.4.1.2021.55.4.1.2.7.104.100.73.110.100.101.120
  
  snmpwalk -v 2c -c public 192.168.8.131 .1.3.6.1.4.1.2021.56
  UCD-SNMP-MIB::ucdavis.56.1.0 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.56.2.1.2.7.104.100.68.101.115.99.114 = STRING: "/bin/bash"
  UCD-SNMP-MIB::ucdavis.56.2.1.3.7.104.100.68.101.115.99.114 = STRING: "/usr/local/bin/snmpdiskio hdDescr"
  UCD-SNMP-MIB::ucdavis.56.2.1.4.7.104.100.68.101.115.99.114 = ""
  UCD-SNMP-MIB::ucdavis.56.2.1.5.7.104.100.68.101.115.99.114 = INTEGER: 5
  UCD-SNMP-MIB::ucdavis.56.2.1.6.7.104.100.68.101.115.99.114 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.56.2.1.7.7.104.100.68.101.115.99.114 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.56.2.1.20.7.104.100.68.101.115.99.114 = INTEGER: 4
  UCD-SNMP-MIB::ucdavis.56.2.1.21.7.104.100.68.101.115.99.114 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.56.3.1.1.7.104.100.68.101.115.99.114 = STRING: "ram0"
  UCD-SNMP-MIB::ucdavis.56.3.1.2.7.104.100.68.101.115.99.114 = STRING: "ram0
  ram1
  ram2
  ram3
  ram4
  ram5
  ram6
  ram7
  ram8
  ram9
  ram10
  ram11
  ram12
  ram13
  ram14
  ram15
  loop0
  loop1
  loop2
  loop3
  loop4
  loop5
  loop6
  loop7
  sr0
  sda
  sda1
  sda2
  sda3
  sdb
  sdb1
  sdb2
  dm-0"
  UCD-SNMP-MIB::ucdavis.56.3.1.3.7.104.100.68.101.115.99.114 = INTEGER: 33
  UCD-SNMP-MIB::ucdavis.56.3.1.4.7.104.100.68.101.115.99.114 = INTEGER: 0
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.1 = STRING: "ram0"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.2 = STRING: "ram1"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.3 = STRING: "ram2"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.4 = STRING: "ram3"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.5 = STRING: "ram4"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.6 = STRING: "ram5"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.7 = STRING: "ram6"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.8 = STRING: "ram7"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.9 = STRING: "ram8"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.10 = STRING: "ram9"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.11 = STRING: "ram10"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.12 = STRING: "ram11"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.13 = STRING: "ram12"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.14 = STRING: "ram13"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.15 = STRING: "ram14"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.16 = STRING: "ram15"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.17 = STRING: "loop0"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.18 = STRING: "loop1"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.19 = STRING: "loop2"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.20 = STRING: "loop3"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.21 = STRING: "loop4"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.22 = STRING: "loop5"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.23 = STRING: "loop6"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.24 = STRING: "loop7"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.25 = STRING: "sr0"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.26 = STRING: "sda"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.27 = STRING: "sda1"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.28 = STRING: "sda2"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.29 = STRING: "sda3"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.30 = STRING: "sdb"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.31 = STRING: "sdb1"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.32 = STRING: "sdb2"
  UCD-SNMP-MIB::ucdavis.56.4.1.2.7.104.100.68.101.115.99.114.33 = STRING: "dm-0"
  OID是.1.3.6.1.4.1.2021.56.4.1.2.7.104.100.68.101.115.99.114
  snmpwalk -v 2c -c pubilc 192.168.8.131 .1.3.6.1.4.1.2021.57
  UCD-SNMP-MIB::ucdavis.57.1.0 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.57.2.1.2.10.104.100.73.110.66.108.111.99.107.115 = STRING: "/bin/bash"
  UCD-SNMP-MIB::ucdavis.57.2.1.3.10.104.100.73.110.66.108.111.99.107.115 = STRING: "/usr/local/bin/snmpdiskio hdInBlocks"
  UCD-SNMP-MIB::ucdavis.57.2.1.4.10.104.100.73.110.66.108.111.99.107.115 = ""
  UCD-SNMP-MIB::ucdavis.57.2.1.5.10.104.100.73.110.66.108.111.99.107.115 = INTEGER: 5
  UCD-SNMP-MIB::ucdavis.57.2.1.6.10.104.100.73.110.66.108.111.99.107.115 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.57.2.1.7.10.104.100.73.110.66.108.111.99.107.115 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.57.2.1.20.10.104.100.73.110.66.108.111.99.107.115 = INTEGER: 4
  UCD-SNMP-MIB::ucdavis.57.2.1.21.10.104.100.73.110.66.108.111.99.107.115 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.57.3.1.1.10.104.100.73.110.66.108.111.99.107.115 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.3.1.2.10.104.100.73.110.66.108.111.99.107.115 = STRING: "0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  2807481356288
  45056
  156467200
  2807324844032
  855380480
  438969344
  416407040
  416194560"
  UCD-SNMP-MIB::ucdavis.57.3.1.3.10.104.100.73.110.66.108.111.99.107.115 = INTEGER: 33
  UCD-SNMP-MIB::ucdavis.57.3.1.4.10.104.100.73.110.66.108.111.99.107.115 = INTEGER: 0
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.1 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.2 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.3 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.4 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.5 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.6 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.7 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.8 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.9 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.10 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.11 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.12 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.13 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.14 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.15 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.16 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.17 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.18 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.19 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.20 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.21 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.22 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.23 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.24 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.25 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.26 = STRING: "2807481356288"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.27 = STRING: "45056"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.28 = STRING: "156467200"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.29 = STRING: "2807324844032"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.30 = STRING: "855380480"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.31 = STRING: "438969344"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.32 = STRING: "416407040"
  UCD-SNMP-MIB::ucdavis.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115.33 = STRING: "416194560"
  OID是.1.3.6.1.4.1.2021.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115
  
  snmpwalk -v 2c -c public 192.168.8.131 .1.3.6.1.4.1.2021.58
  UCD-SNMP-MIB::ucdavis.58.1.0 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.58.2.1.2.11.104.100.79.117.116.66.108.111.99.107.115 = STRING: "/bin/bash"
  UCD-SNMP-MIB::ucdavis.58.2.1.3.11.104.100.79.117.116.66.108.111.99.107.115 = STRING: "/usr/local/bin/snmpdiskio hdOutBlocks"
  UCD-SNMP-MIB::ucdavis.58.2.1.4.11.104.100.79.117.116.66.108.111.99.107.115 = ""
  UCD-SNMP-MIB::ucdavis.58.2.1.5.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 5
  UCD-SNMP-MIB::ucdavis.58.2.1.6.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.58.2.1.7.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.58.2.1.20.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 4
  UCD-SNMP-MIB::ucdavis.58.2.1.21.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.58.3.1.1.11.104.100.79.117.116.66.108.111.99.107.115 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.3.1.2.11.104.100.79.117.116.66.108.111.99.107.115 = STRING: "0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  4083470336
  2640896
  13680640
  4066096128
  150828032
  138458112
  12132352
  8193024"
  UCD-SNMP-MIB::ucdavis.58.3.1.3.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 33
  UCD-SNMP-MIB::ucdavis.58.3.1.4.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 0
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.1 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.2 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.3 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.4 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.5 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.6 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.7 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.8 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.9 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.10 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.11 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.12 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.13 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.14 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.15 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.16 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.17 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.18 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.19 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.20 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.21 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.22 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.23 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.24 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.25 = STRING: "0"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.26 = STRING: "4083470336"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.27 = STRING: "2640896"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.28 = STRING: "13680640"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.29 = STRING: "4066096128"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.30 = STRING: "150828032"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.31 = STRING: "138458112"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.32 = STRING: "12132352"
  UCD-SNMP-MIB::ucdavis.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115.33 = STRING: "8193024"
  OID是.1.3.6.1.4.1.2021.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115

       Get SNMP Partitions
       Queries a host for a list of monitorable partitions
       .1.3.6.1.4.1.2021.55.4.1.2.7.104.100.73.110.100.101.120
       .1.3.6.1.4.1.2021.54.4.1.2.5.104.100.78.117.109.1
       hdDescr:hdIndex
       numeric
       |chosen_order_field|

      
            
                     Index
                     walk
                     value
                     input
                     .1.3.6.1.4.1.2021.55.4.1.2.7.104.100.73.110.100.101.120
            
            
                     Description
                     walk
                     value
                     input
                     .1.3.6.1.4.1.2021.56.4.1.2.7.104.100.68.101.115.99.114
            
            
                     Bytes Written
                     walk
                     value
                     output
                     .1.3.6.1.4.1.2021.57.4.1.2.10.104.100.73.110.66.108.111.99.107.115
            
            
                     Bytes Read
                     walk
                     value
                     output
                     .1.3.6.1.4.1.2021.58.4.1.2.11.104.100.79.117.116.66.108.111.99.107.115
            
      
  4.2.4      升级snmpdiskio
  由于9.4太老不支持2.6内核,需要修改升级
  vi snmpdiskio-0.9.4/snmpdiskio      将下面内容覆盖到这文件
#!/bin/bash
# $Id: snmpdiskio,v 1.5 2008/01/31 21:19:50 dverlaeckt Exp $
# snmpdiskio v0.9.6 (c) 2008 Dieter Verlaeckt
# snmpdiskio v0.9.5 (c) 2007 Pablo Destefanis
# snmpdiskio v0.9.4 (c) 2006 Mikael Fridh

# Fields in /proc/partitions (kernel 2.4)
# major minor #blocks name rio rmerge rsect ruse wio wmerge wsect wuse running use aveq

# Fields in /proc/diskstats (kernel 2.6) for disks (i.e. hda)
# major minor name rio rmerge rsect ruse wio wmerge wsect wuse running use aveq

# Fields in /proc/diskstats (kernel 2.6) for partitions (i.e. hda1)
# major minor name rio rsect wio wsect

# InBlocks = sectors written to disk
# OutBlocks = sectors read from disk

# Set default procfile for kernel 2.4
PROCFILE="/proc/partitions"
MODE="linux24"

# Probably kernel 2.6:
if [ -f /proc/diskstats ]; then
   PROCFILE=/proc/diskstats
   MODE="linux26"
fi


function hdNum()
{
       awk ' BEGIN { num=0 } $1 ~ /+/ && $2 ~ /+/ { num++ } END { print num } ' $PROCFILE
}

function hdIndex()
{
       awk ' BEGIN { num=0 } $1 ~ /+/ && $2 ~ /+/ { num++; print num } ' $PROCFILE
}

function hdDescr()
{
       if [ "$MODE" = "linux26" ]; then
               awk ' $1 ~ /+/ && $2 ~ /+/ { printf "%s\n", $3 }' $PROCFILE
       else
               awk ' $1 ~ /+/ && $2 ~ /+/ { printf "%s\n", $4 }' $PROCFILE
       fi
}

function hdInBlocks()
{
       if [ "$MODE" = "linux26" ]; then
               awk ' $1 ~ /+/ && $2 ~ /+/ && NF == 7 { printf "%.0f\n", $7 * 512 }
                     $1 ~ /+/ && $2 ~ /+/ && NF == 14 { printf "%.0f\n", $10 * 512 } ' $PROCFILE
       else
               awk ' $1 ~ /+/ && $2 ~ /+/ && NF == 15 { printf "%.0f\n", $11 * 512 } ' $PROCFILE
       fi
}

function hdOutBlocks()
{
       if [ "$MODE" = "linux26" ]; then
               awk ' $1 ~ /+/ && $2 ~ /+/ && NF == 7 { printf "%.0f\n", $5 * 512 }
                     $1 ~ /+/ && $2 ~ /+/ && NF == 14 { printf "%.0f\n", $6 * 512 } ' $PROCFILE
       else
               awk ' $1 ~ /+/ && $2 ~ /+/ && NF == 15 { printf "%.0f\n", $7 * 512 } ' $PROCFILE
       fi
}

function usage()
{
       cat > ${TMPFILE}
    echo "old_user[${a}]=${user[${a}]}" >> ${TMPFILE}
    echo "old_nice[${a}]=${nice[${a}]}" >> ${TMPFILE}
    echo "old_iowait[${a}]=${iowait[${a}]}" >> ${TMPFILE}
    echo "old_irq[${a}]=${irq[${a}]}" >> ${TMPFILE}
    echo "old_softirq[${a}]=${softirq[${a}]}" >> ${TMPFILE}
    echo "old_idle[${a}]=${idle[${a}]}" >> ${TMPFILE}
    echo "old_used[${a}]=${used[${a}]}" >> ${TMPFILE}
    echo "old_total[${a}]=${total[${a}]}" >> ${TMPFILE}
done
}

read_tmpfile() {
if [ -e ${TMPFILE} ]; then
    source ${TMPFILE}                   # include the vars from the tmp file
fi
(( DEBUG )) && cat ${TMPFILE}
}

########################
# MAIN
########################

parse_options $@

read_tmpfile

procstat=$(cat /proc/stat 2>&1)
(( DEBUG )) && echo "$procstat"
cpucount=$(( $(grep -i cpu
页: [1]
查看完整版本: cacti运维手册