はじめに
Windows/Mac/Linuxのリソース(CPU、メモリー、ディスク)を監視してSNMPのTRAPを送信するプログラムの紹介です。
標準のSNMPエージェントのホストリソースMIBにはTRAPの定義がありません。
そこで、CPU使用率、メモリー使用率、負荷、ディスク使用率が設定した
閾値を超えたらSNMPのTRAPかsyslogを送信するシンプルなセンサープログラムを
作ってみました。
監視するのは
- CPU使用率
- メモリー使用率
- 負荷
- ディスク使用率
です。
GitHUBのリポジトリ
ソースコードは
にあります。
インストール
からZIPファイルをダウンロードして解凍してください。実行ファイルが1つだけです。
または、TWSNMP FCのインストラーに含まれています。
使用方法
Usage of twhr2trap:
-all
send trap continuously
-community string
snmp v2c trap community
-cpu int
cpu usage threshold 0=disable
-disk int
disk usage threshold 0=disable
-eid string
snmp v3 engine ID
-interval int
check interval(sec) (default 10)
-load int
load usage threshold 0=disable
-mem int
memory usage threshold 0=disable
-mode string
snmp trap mode (v2c|v3Auth|v3AuthPriv) (default "v2c")
-password string
snmp v3 password
-syslog string
syslog destnation list
-trap string
trap destnation list
-user string
snmp v3 user
trap,syslogの送信先はカンマ区切りで複数指定できます。
:に続けてポート番号を指定することもできます。ポート番号を省略するとデフォルトのポートに送信します。
(syslog:514,trap:162)
-trap 192.168.1.1,192.168.1.2:8162
-syslog 192.168.1.1,192.168.1.2:5514
-all
を指定するとモニター間隔毎にTRAPやsyslogを送信します。
起動方法
起動するためには、tarpの送信先(-trap)かsyslogの送信先(-syslog)が必要です。
CPUなどのしきい値を1つも指定しなければ何も送信しません。
(無駄な動作をします。)
Mac OS,Windows,Linuxの環境では以下のコマンドで起動できます。
(例はLinux場合)
#./twhr2trap -trap 192.168.1.1 -syslog 192.168.1.1 -cpu 90 -mem 90 -load 20 -disk 90 -coummnity trap
TRAPのMIB定義
以下にあります。
ビルド方法
Go言語のビルド環境が必要です。makeも必要です。
ビルドはmakeで行います。
$make
以下のターゲットが指定できます。
all 全実行ファイルのビルド(省略可能)
mac Mac用の実行ファイルのビルド
clean ビルドした実行ファイルの削除
zip リリース用のZIPファイルを作成
$make
を実行すれば、MacOS,Windows,Linux(amd64),Linux(arm)用の実行ファイルが、
dist
のディレクトリに作成されます。
配布用のZIPファイルを作成するためには、
$make zip
を実行します。ZIPファイルがdist/
ディレクトリに作成されます。