mrtg で転送量計測とか温度計測とか

  • mrtg と SNMP と lm_sensors で転送量や温度のグラフを作れます。
  • CentOS7向け情報を追記

lm_sensors

  • cpuやMBの温度取得モジュール
    • TL10s は標準でインストールされている。
    • MBの型によって動いたり動かなかったり。
    • 転んでも泣かない。

インストール

  • Turbolinuxはすでに rpm でインストールされているので必要なしです。
    • が、対応していないチップセットの場合、最新版をコンパイルしてインストールすると動くこともあります。
    • 必要な場合だけインストール。
  • http://www.lm-sensors.org/
    • download から lm_sensors-3.x.x.tar.bz2 ダウンロードして、
    • tar jxvf lm_sensors-3.x.x.tar.bz2
    • make
    • make install

設定

  • # sensors-detect
    • 途中でいくつか質問が表示されるが[Enter]を押せば問題なし
  • 結果が表示される
    /etc/modules.conf or /etc/conf.modules:
    
    #----cut here----
    # I2C module options
    alias char-major-89 i2c-dev
    #----cut here----
    
    To load everything that is needed, add this to some /etc/rc* file:
    
    #----cut here----
    # I2C adapter drivers
    modprobe i2c-i801
    modprobe i2c-isa
    # I2C chip drivers
    modprobe eeprom
    modprobe w83781d
    # sleep 2 # optional
    /usr/local/bin/sensors -s # recommended
    #----cut here----
    • それぞれ /etc/modules.confと/etc/rc.localの最後に追加する。
      • 最近では /etc/init.d/lm_sensors で処理されるようなので、追記しなくても良いようです。
  • 再起動
    • dmesgにエラーをはいていないかチェック
  • sensors で見える。

参考 atmarkit

SNMP

  • ネットワーク越しにネットワーク機器の監視ができる
    • rpm でインストールできたため、インストールは省略
    • CentOS 5.5 は net-snmp, net-snmp-utils を yum install

設定

  • conf編集
    • vi /etc/snmp/snmpd.conf
      #       sec.name    source             community
      com2sec sec_jamfunk localhost          snmp_jamfunk
      com2sec sec_jamfunk 172.16.0.0/16      snmp_jamfunk
      com2sec sec_jamfunk 202.171.139.208/29 snmp_jamfunk
      
      #       groupName      securityModel securityName
      group grp_jamfunk v1  sec_jamfunk
      group grp_jamfunk v2c sec_jamfunk
      group grp_jamfunk usm sec_jamfunk
      
      #    name     incl/excl subtree mask(optional)
      view view_all included  .1      80
      
      #       group      context sec.model sec.level prefix read     write  notif
      access grp_jamfunk ""      any       noauth    exact  view_all none none
      
      # そのほか、管理者情報とか
      syslocation Katae.JamFunk.jp
      syscontact Admin <support_at_jamfunk.jp>
      
      # ディスク関連のパスを指定
      disk /
      disk /home
      
      # lm_sensorsのCPU温度
      extend .1.3.6.1.4.1.2021.53 sensors /usr/local/bin/sensors2netsnmp
      • 最後の lm_sensors は以前は exec で動いていたはずだけど、
        現バージョンではなぜか extend で書けと言われる。。。
        だから MRTG で呼び出すときに OID がとんでもないことになっています。
      • 最近のディストリ CentOS とかは .1.3.6.1.4.1.2021.13 に含まれているようです。

lm_sensors呼び出し

  • lm_sensorsを整形してsnmpに渡すスクリプトを設置
    • vi /usr/local/bin/sensors2netsnmp
      #!/usr/bin/perl
      
      # format convert lm_sensors to net-snmp
      
      # module for get temperature
      $MODULENAME = "w83627hf-isa-0290";
      # column of temperature 1
      $TEMP1NAME = "temp1";
      # column of temperature 2
      $TEMP2NAME = "temp2";
      
      open SENSORS, "/usr/local/bin/sensors $MODULENAME |";
      while($getstr = <SENSORS>) {
        if($putstr1 eq '' && $getstr =~ /^${TEMP1NAME}:\s+[+-\s]([\d\.]+)/) {
          $putstr1 = "$1";
        } elsif($putstr2 eq '' && $getstr =~ /^${TEMP2NAME}:\s+[+-\s]([\d\.]+)/) {
          $putstr2 = "$1";
        }
        if($putstr1 ne '' && $putstr2 ne '') {
          last;
        }
      }
      close SENSORS;
      $putstr1 = int($putstr1);
      $putstr2 = int($putstr2);
      print "$putstr1\n$putstr2\n";
      exit 0;
      • $MODULENAME に温度モジュール名、
        $TEMP1NAME, $TEMP2NAME に CPU/MB の項目名を書く。
        例:
        [root@Haruko ~]# sensors
        w83627hf-isa-0290           # ←モジュール名
        (略)
        temp1:       +38.0 C  (high = +50.0 C, hyst = +45.0 C)  sensor = thermistor
        temp2:       -48.0 C  (high = +75.0 C, hyst = +70.0 C)  sensor = thermistor
        # ↑ここの項目名、、、temp2値の正負がおかしい?w
    • chmod 755 /usr/local/bin/sensors2netsnmp
  • ネットワーク越しに見るときはhosts.allowで許可すること
    • vi /etc/hosts.allow
      snmpd: 172.16.0.0/255.255.0.0
  • 確認
    • snmpwalk -v 1 -c snmp_jamfunk localhost (OID)
      • OIDは.1.3.6.1.4.1.2021.9みたいなやつ
      • 下記の mrtg.conf の各OIDを参照

mrtg

  • とにかく何でもグラフ化できるそうです。
  • jamfunk.net 鯖の CPU&MB 温度
    hibaru.jamfunk.net CPU&MB temperature
  • ひつようなもの
    • gd-devel一式
      • CentOS x86_64なら yum install gd-devel.x86_64 libpng.x86_64 libjpeg.x86_64
    • 最近のCentOSはyum search mrtgで見つかる
      • ただし、/etc/httpd/conf.d/mrtg.confにApacheの設定が追加されるので、mrtgを含むURLでアクセスする場合は見えなくなることがあるので、気をつけること。

インストール

  • ダウンロード
    • MRTGサイト http://tobi.oetiker.ch/
      $ wget http://oss.oetiker.ch/mrtg/pub/mrtg-2.17.2.tar.gz
      $ tar zxvf mrtg-2.15.2.tar.gz
      $ cd mrtg-2.15.2
      $ ./configure       # 途中でoetikerさんへcdとかdvd購入の送金をされるw
      $ make
      $ su
      # make install
  • 最近のCentOSではyumに入っている

設定

  • /etc/mrtg.conf
    • 全体の設定
      ### Global Defaults
      
      RunAsDaemon: Yes
      Interval: 5
      NoDetach: Yes
      
      WorkDir: /home/jamfunk/public_html/mrtg
      EnableIPv6: no
      Language: eucjp
      IconDir: /mrtg/icons/
      Options[^]: growright, nopercent, pngdate, printrouter, withzeroes, unknaszero
      • RunAsDaemon: Yes するとデーモンモードで起動。バックグラウンドで常駐する。
        後述の起動スクリプトを使う場合は Yes で。
      • NoDetach: systemdなど最近のシステムではNoDetach: yes
      • WorkDir: html や png を作るディレクトリパス。
      • IconDir: html で使用される MRTG ロゴの html からの相対URLパス。
      • Options[^]: 全ての項目に適用されるオプション。
      • Options[_]: これ以降の項目に適用されるオプション。
      • 各項目や挙動については http://www.mrtg.jp/doc/
    • 各項目ごとの設定
      # Traffic
      Title[eth0]: Traffic of Hibaru.JamFunk.jp(eth0)
      PageTop[eth0]: <H1>Traffic of Hibaru.JamFunk.jp(eth0)</H1>
      Target[eth0]: 1.3.6.1.2.1.2.2.1.10.2&1.3.6.1.2.1.2.2.1.16.2:snmp_jamfunk@localhost
      Options[eth0]: bits
      MaxBytes[eth0]: 12500000
      LegendI[eth0]: incoming
      LegendO[eth0]: outgoing
      Legend1[eth0]: incoming bits
      Legend2[eth0]: outgoing bits
      YLegend[eth0]: Traffic (bps)
      ShortLegend[eth0]: bps
      
      # CPU Load Average
      Title[cpuload]: CPU Load Average of Hibaru.JamFunk.jp
      PageTop[cpuload]: <H1>CPU Load Average of Hibaru.JamFunk.jp</H1>
      Target[cpuload]: 1.3.6.1.4.1.2021.10.1.5.2&1.3.6.1.4.1.2021.10.1.5.1:snmp_jamfunk@localhost
      Options[cpuload]: gauge
      MaxBytes[cpuload]: 100
      AbsMax[cpuload]: 1000
      Unscaled[cpuload]: dwmy
      YTics[cpuload]: 10
      LegendI[cpuload]: avg. (5min.)
      LegendO[cpuload]: avg. (1min.)
      Legend1[cpuload]: CPU load average (percentage per 5 minute)
      Legend2[cpuload]: CPU load average (percentage per 1 minutes)
      YLegend[cpuload]: CPU LoadAvg (%)
      ShortLegend[cpuload]: %
      
      # Memory Used
      Title[mem]: Memory Used of Hibaru.JamFunk.jp
      PageTop[mem]: <H1>Memory Used of Hibaru.JamFunk.jp</H1>
      Target[mem]:  1.3.6.1.4.1.2021.4.6.0&1.3.6.1.4.1.2021.4.4.0:snmp_jamfunk@localhost
      Options[mem]: gauge
      MaxBytes1[mem]: 1033044
      MaxBytes2[mem]: 2097136
      kilo[mem]: 1024
      kMG[mem]: k,M
      LegendI[mem]: Real
      LegendO[mem]: Swap
      Legend1[mem]: Real Memory Used (Bytes)
      Legend2[mem]: Swap Memory Used (Bytes)
      YLegend[mem]: Memory Used (Bytes)
      ShortLegend[mem]: B
      
      # Disk Used
      Title[disk]: Disk Used of Hibaru.JamFunk.jp
      PageTop[disk]: <H1>Disk Used of Hibaru.JamFunk.jp</H1>
      Target[disk]: 1.3.6.1.4.1.2021.9.1.8.1&1.3.6.1.4.1.2021.9.1.8.2:snmp_jamfunk@localhost
      Options[disk]: gauge
      MaxBytes1[disk]: 20635700
      MaxBytes2[disk]: 136037512
      Unscaled[disk]: dwmy
      YTics[disk]: 6
      kilo[disk]: 1024
      kMG[disk]: k,M,G
      LegendI[disk]: /(route)
      LegendO[disk]: /home
      Legend1[disk]: /(route) used (Bytes)
      Legend2[disk]: /home used (Bytes)
      YLegend[disk]: Disk Used (B)
      ShortLegend[disk]: B
      • 読み取ってください(爆
      • Target は NET-SMTP の MIB-II OID。詳しくは下のほうのメモを参照

起動

  • init.dスクリプト
    • vi /etc/init.d/mrtg
    • chmod 755 /etc/init.d/mrtg
  • /etc/mrtg.conf で指定した WorkDir を作る
    • mkdir /home/jamfunk/public_html/mrtg
  • /etc/mrtg.conf で指定した IconDir をコピー
    • cp -rv /usr/loca/mrtg-2/share/mrtg2/icons /home/jamfunk/public_html/mrtg/
  • 起動
    • /etc/init.d/mrtg start

メモ

snmpwalk

  • snmpフロントエンド
  • 基本
    • snmpwalk -v 1 -c (コミュニティ名) (ホスト名) (OID)
      • snmpwalk -v 1 -c snmp_jamfunk 172.16.0.1 .1.3.6.1.2.1.2.2.1.10.2
    • -O n : OIDを数字で表示する

MIB-II OID

MIBブラウザ GetIf

OIDとりあえずいろいろ

  • ネットワークトラフィック関係
    • 1.3.6.1.2.1.2.2.1.10.x IF-MIB::ifInOctets
      • 流入バイト数
      • 1.3.6.1.2.1.31.1.1.1.6 IF-MIB::ifHCInOctets (64bit) もあるけど、MRTGでは使えない模様
    • 1.3.6.1.2.1.2.2.1.16.x IF-MIB::ifOutOctets
      • 流出バイト数
      • 1.3.6.1.2.1.31.1.1.1.10 IF-MIB::ifHCOutOctets (64bit) もあるけど、MRTGでは使えない模様
      • .x は IF-MIB::ifDescr.x で確認
  • CPUロードアベレージ
    • 1.3.6.1.4.1.2021.10.1.5.x UCD-SNMP-MIB::laLoadInt
      • CPU負荷, Linuxのみ
      • .x は 1.3.6.1.4.1.2021.10.1.2 UCD-SNMP-MIB::laNames で確認
        大抵 .1->1, .2->5, .3->15 分間平均
    • 1.3.6.1.2.1.25.3.3.1.2.x HOST-RESOURCES-MIB::hrProcessorLoad
      • CPU負荷, Windowsのみ
      • .x は 1.3.6.1.2.1.25.3.3.1.2 で見えるだけ(数字はサーバによる?)
  • ディスク使用量
    • 1.3.6.1.4.1.2021.9.1.8.x UCD-SNMP-MIB::dskUsed
      • ディスク使用量, Linuxのみ
      • .x は snmpd.conf の disk で指定したもの
    • 1.3.6.1.2.1.25.2.3.1.6.x HOST-RESOURCES-MIB::hrStorageUsed
      • ディスク使用量, Linux/Windows
      • .x は 1.3.6.1.2.1.25.2.3.1.3 で確認
      • マウント状況によって .x がずれるかもしれない。
      • 得られる値は アロケーションユニット数なので、
        1.3.6.1.2.1.25.2.3.1.4.x HOST-RESOURCES-MIB::hrStorageAllocationUnits で得られるアロケーションユニットサイズをかけること。
      • つまりこんな感じ
        Target[ntsvr]: .1.3.6.1.2.1.25.2.3.1.6.1&.1.3.6.1.2.1.25.2.3.1.6.2:public@172.27.32.1 * 1.3.6.1.2.1.25.2.3.1.4.1&1.3.6.1.2.1.25.2.3.1.4.2:public@172.27.32.1
  • メモリ使用量
    • .1.3.6.1.4.1.2021.4.6.0 UCD-SNMP-MIB::memAvailReal.0
      • 物理メモリ使用量, Linuxのみ
    • 1.3.6.1.4.1.2021.4.4.0 UCD-SNMP-MIB::memAvailSwap.0
      • 仮想メモリ使用量, Linuxのみ
  • ディスクIO
    • 1.3.6.1.4.1.2021.13.15.1.1.3.x
      • ディスク読み込みバイト数
      • .x は 1.3.6.1.4.1.2021.13.15.1.1.2.x UCD-DISKIO-MIB::diskIODevice.x で確認
      • Linuxのみ
      • マウント状況やパーティションの状況で数字が変わるかも。
    • 1.3.6.1.4.1.2021.13.15.1.1.4.x
      • ディスク書き込みバイト数
      • Linuxのみ
  • ハードウェア環境
    • .1.3.6.1.4.1.2021.13.16.2.1.3.x LM-SENSORS-MIB::lmTempSensorsValue.x
      • 温度(100倍値), net-snmp + lm_sensors
      • net-snmpで view systemview included .1.3.6.1.4.1.2021.13 を追記する必要があるかも

Catalyst OID

  • Catalyst のOIDのメモ
  • .1.3.6.1.2.1.2.2.1.2.x
    • ポート名(IF-MIB::ifDescr)
    • だいたい以下のような番号になっている
      • 1〜5000? VLAN毎
      • 5001〜9999? Port-Channel毎
      • 10101 = GE1/0/1などポート毎
      • 20101 = GE2/0/1などポート毎
  • .1.3.6.1.4.1.9.2.2.1.1.25
    • 各ポート毎のコリジョン数
  • .1.3.6.1.2.1.2.2.1.10.x IF-MIB::ifInOctets
    • 流入バイト数
  • .1.3.6.1.2.1.2.2.1.16.x IF-MIB::ifOutOctets
    • 流出バイト数

APC SNMP OID

VMware ESXi

添付ファイル: fileping2mrtg.pl 314件 [詳細] filemrtg.txt 987件 [詳細]