と、いうわけで図もこんなに立派になりますw
さて、Cacti/MRTG共にSNMPのデータを元に、グラフを作成します。CPUだったり、メモリだったり、DISK容量だったり、Networkトラフィックだったり。そのため、SNMPを理解しないと正しくグラフが書かれません。ちなみに、Cacti/ZABBIX等の比較は以下のサイトを参照の事。
第1回:「Nagios」「Hobbit」「ZABBIX」「Hinemos」を徹底比較
で、今日はSNMPの話を。SNMPとは「Simple Network Management Protocol」の略称。Wikipediaにはこう書かれています。
Simple Network Management Protocol(シンプル ネットワーク マネージメント プロトコル、SNMP)は、IP ネットワーク上のネットワーク機器を監視(モニタリング)・制御するための情報の通信方法を定めるプロトコルである。
なるほどー。また、SNMPは単体ではどうさせず、エージェントと呼ばれるプログラムに実装されるらしい。そして、そのエージェントはManagement Information Base(MIB)と呼ばれる一種のデータベースを持っている。そう! CactiおよびSNMPを理解するには、MIBを理解しないといけないのだ!
・SNMPによるネットワークモニタリング
・図解で知るSNMP――MIB情報のすべて
Linuxで動くsnmpdと会話するには、snmpwalk というプログラムを使う。たとえば、CPUのロードアベレージを取得するには、こんな感じに問い合わせる。
# snmpwalk -v1 -c public [IPアドレス] .1.3.6.1.4.1.2021.11
UCD-SNMP-MIB::ssIndex.0 = INTEGER: 1
UCD-SNMP-MIB::ssErrorName.0 = STRING: systemStats
UCD-SNMP-MIB::ssSwapIn.0 = INTEGER: 0
UCD-SNMP-MIB::ssSwapOut.0 = INTEGER: 0
UCD-SNMP-MIB::ssIOSent.0 = INTEGER: 2
UCD-SNMP-MIB::ssIOReceive.0 = INTEGER: 32
UCD-SNMP-MIB::ssSysInterrupts.0 = INTEGER: 45
UCD-SNMP-MIB::ssSysContext.0 = INTEGER: 23
UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 0
UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 0
UCD-SNMP-MIB::ssCpuIdle.0 = INTEGER: 99
UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 3671876
UCD-SNMP-MIB::ssCpuRawNice.0 = Counter32: 369475
UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 1144888
UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 1836471935
UCD-SNMP-MIB::ssCpuRawWait.0 = Counter32: 705721
UCD-SNMP-MIB::ssCpuRawKernel.0 = Counter32: 883340
UCD-SNMP-MIB::ssCpuRawInterrupt.0 = Counter32: 50133
UCD-SNMP-MIB::ssIORawSent.0 = Counter32: 1172551872
UCD-SNMP-MIB::ssIORawReceived.0 = Counter32: 73453124
UCD-SNMP-MIB::ssRawInterrupts.0 = Counter32: 829574332
UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 417776103
UCD-SNMP-MIB::ssCpuRawSoftIRQ.0 = Counter32: 211415
UCD-SNMP-MIB::ssRawSwapIn.0 = Counter32: 22
UCD-SNMP-MIB::ssRawSwapOut.0 = Counter32: 47
メモリならこんな感じ。
# snmpwalk -v1 -c public [IPアドレス] .1.3.6.1.4.1.2021.4
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 3911816
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 3911720
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 4036308
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 64624
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 3976344
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000
UCD-SNMP-MIB::memShared.0 = INTEGER: 0
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 258456
UCD-SNMP-MIB::memCached.0 = INTEGER: 3381344
UCD-SNMP-MIB::memSwapError.0 = INTEGER: 0
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
Linuxサーバの状況がよく判る。(snmpdの設定によるんだけど)
Cactiは、このSNMPのMIB情報を使ってグラフを作るんだね~
[以降、2に続く]

ピンバック: わがまま大王@みらにすた - サルでもわかる!? Cacti入門[2]