1: 2010-11-26 (金) 00:52:50 maruo ソース 現: 2010-11-26 (金) 01:41:50 maruo ソース
Attached file: cputemp.pl, Attached file: hddtemp.pl
Line 7: Line 7:
*インストール [#yfb0c6d2] *インストール [#yfb0c6d2]
-**net-snmp [#x548bdb6] +これは簡単ですわ。 
-**CACTI [#g85be85e]+ # emerge net-snmp
*設定 [#k55b7830] *設定 [#k55b7830]
-**net-snmp [#ffff478f] +これには、/etc/snmp/snmpd.confを編集いたします。snmpd.confの設定にはある段階があります。まず最低限の設定項目はこいつら。 
-**CACTI [#xb6932fd]+:com2sec|SNMPでのアクセスを許可するホストとコミュニティ名(合言葉) 
 +:group|com2secで定義したホストのアクセスプロトコル(SNMPv1/SNMPv2c/SNMPv3) 
 +:view|上記グループにアクセス許可するMIBオブジェクト 
 +:access|上記グループのアクセス許可属性(認証/読み書き等) 
 +さて、こんなふうに設定します 
 + #           ラベル    ホスト名(IPアドレス)    コミュニティ名 
 + com2sec local    localhost                local 
 + #       グループ名    プロトコル(この例はSNMPv2c    ラベル 
 + group MyROGroup        v2c                            local 
 + # 全てのMIBにアクセス出来る設定 
 + view all    included  .1                              80 
 + #          グループ名    ??    ??          認証      ??      読み  書き    ?? 
 + access MyROGroup ""      any      noauth    exact  all    none  none 
 + #どこにあるか識別名を書いておく 
 + syslocation anywhere 
 + #管理者名とかの識別名を書いておく 
 + syscontact foovar <foovar@anywhere.jp> 
 + 
 +ここまで書いて 
 + # /etc/init.d/snmpd start 
 +すると、Linuxで取得できるMIBがGet出来たりします。こんな感じ 
 + # snmpwalk -v 2c -c local localhost system 
 + SNMPv2-MIB::sysDescr.0 = STRING: Linux someHost 2.6.XX #1 XXXXXX 
 + SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 
 + DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (18562973) 2 days, 3:33:49.73 
 + SNMPv2-MIB::sysContact.0 = STRING: foovar <foovar@anywhere.jp> 
 + SNMPv2-MIB::sysName.0 = STRING: someHostname 
 + SNMPv2-MIB::sysLocation.0 = STRING: anywhere 
 +                                     . 
 +                                     . 
 +                                     .
*カスタマイズ [#tdcbac53] *カスタマイズ [#tdcbac53]
-**CACTI付属のテンプレートを使ってみる [#m6f55e43+**CPU温度が取れるようにしてみる [#yea8c670] 
-**オリジナルのデータで、グラフを作ってみる [#g98e33dd]+まず、lm_sensorsとかをインストールして、サーバの情報が取れるようにしてみてね。[[ここ>GentooLinuxな生活/サーバー監視方法で悩む#f89d78bf]]参照。で、さらに{{cputemp.pl,CPU温度取得するシェル}}をつくってみます。ここまで良いでしょうかね。 
 +このシェルを実行してみると、まんま温度が表示されます。さて、ここで、snmpd.confを編集します。 
 + exec cputemp /usr/local/bin/cputemp.pl 
 +こんな行追加。でsnmpd再起動。そうすると…あるMIBをgetすると、このシェルを実行してくれるようになるのですよ。 
 + #  snmpwalk -v 2c -c local localhost .1.3.6.1.4.1.2021.8 
 + UCD-SNMP-MIB::extIndex.1 = INTEGER: 1 
 + UCD-SNMP-MIB::extNames.1 = STRING: cputemp 
 + UCD-SNMP-MIB::extCommand.1 = STRING: /usr/local/bin/cputemp.pl 
 + UCD-SNMP-MIB::extResult.1 = INTEGER: 0 
 + UCD-SNMP-MIB::extOutput.1 = STRING: 35        ←これが温度 
 + UCD-SNMP-MIB::extErrFix.1 = INTEGER: noError(0) 
 + UCD-SNMP-MIB::extErrFixCmd.1 = STRING: 
 +ね。なかなか面白いでしょう。 
 + 
 +**HDD温度を取れるようにしてみる [#y0fd8066] 
 +今度は、smartmontoolをインストールして、サーバの情報が取れるようにしてみてね。[[ここ>GentooLinuxな生活/サーバー監視方法で悩む#b25ea45e]]参照。さらに{{hddtemp.pl,HDD温度取得するシェル}}をつくってみます。このシェルに、引数として、温度を取得したいHDDデバイス名(/dev/sdaとか)を指定すると、指定したHDDデバイスの温度が取得できます。 
 +で、同じようにsnmpd.confに追加する。 
 + exec hddtemp /usr/local/bin/hddtemp.pl /dev/sda 
 +で、snmpd再起動。するってと 
 + #  snmpwalk -v 2c -c local localhost .1.3.6.1.4.1.2021.8.1.101 
 + UCD-SNMP-MIB::extOutput.1 = STRING: 35  ←さっきのCPU温度 
 + UCD-SNMP-MIB::extOutput.2 = STRING: 39  ←追加したHDD温度 
 + 
 +というようにHDDの温度も取得できましたね。 
 + 
 +こんなふうに、外部コマンド実行もできます。また、HDDの容量がある設定値を超えたらアラームとか、指定したプロセスがいるかを監視するとか、loadaverageの設定値を超えたらアラームなど、いろいろと機能があります。必要に応じて設定してみてくださいね~


トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 8477, today: 2, yesterday: 1
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード