mrtg インストールメモ #--------------------------------------------------------------------------------------------- # 概要 #--------------------------------------------------------------------------------------------- snmp プロトコルにて管理エージェントのMIB 情報を取得し、解析する処理は管理マネージャーが行います。linux サーバーでのsnmp 実装は、net-snmp が有名ですが、net-snmp には簡易管理マネージャしかついていません。そこで、サーバーの情報を視覚的に監視することが可能な、mrtg を利用します。 #--------------------------------------------------------------------------------------------- # インストール方法 #--------------------------------------------------------------------------------------------- yum パッケージ管理ツールを使ってmrtg をインストールします。 # yum -y install mrtg #--------------------------------------------------------------------------------------------- # mrtg の設定 #--------------------------------------------------------------------------------------------- mrtg の設定は/etc/mrtg/mrtg.cfg ファイル(以降設定ファイル) に記載します。 設定ファイルで使用できるパラメータには、グローバルパラメータとターゲットパラメータの2 種類あります。グローバルパラメータは、mrtg の処理や動作全体を制御するもので、ターゲットパラメータは個々のレポート、グラフを制御します。 ● グローバルパラメータを設定する Htmldir | 生成したHTML を置くディレクトリ Imagedir | 生成したPNG 画像を置くディレクトリ IconDir | mrtg がディフォルトで用いるアイコンを置くディレクトリ Logdir | mrtg の実行ログを記憶するディレクトリ(ファイル名はtanalysis.log) Language | 使用する言語の設定(日本語であればeucjp) Refresh | レポートを更新する時間(HTML を再読み込みする時間) ● ターゲットパラメータを設定する SetEnv[識別子] | 外部プログラムに渡す環境変数 MaxBytes[識別子] | 監視対象データの最大値 Options[識別子]: growright | グラフ横軸を 過去 → 未来 の方向に表示する Options[識別子]: gauge | 取得したデータを前回取得したデータの差分よりグラフを生成しない Options[識別子]: nopercent | グラフをパーセント表示しない Options[識別子]: noo | Target で指定した2 OID をグラフでは1 つとして扱う場合 LegendI[識別子]: | グラフ下部の第1 パラメータの説明 LegendO[識別子]: | グラフ下部の第2 パラメータの説明 Legend1[識別子]: | グラフ最下部の第1 パラメータの説明 Legend2[識別子]: | グラフ最下部の第2 パラメータの説明 YLegend[識別子]: | Y 軸のラベル ShortLegend[識別子]: | 最大値、平均値、現在値の単位 多くの設定項目が「設定項目名[識別子]」のように表記され、「識別子」で表される情報ごとにmrtg の設定項目を定義する必要があります。この識別子は、mrtg によって作成される一連のファイル群(識別子「.html」「.log」など) のファイル名に利用されます。識別子に、「_」を用いた場合、全ての識別子を指定したことになり、各識別子のディフォルト値を設定する際に利用します。 なお、監視するデータは当然snmp 経由で管理エージェントから取得することになるので、あらかじめ取得するMIB 情報にアクセスするコミュニティーを管理エージェントで作成する必要があります。 ● CPU 稼動率をグラフ化する フラグを[cpu_analysis] とし、次の記述を設定ファイルに記載します。CPU 稼動率に関するMIB 情報は ・ 1 分間平均 .1.3.6.1.4.1.2021.10.1.5.1 ・ 5 分間平均 .1.3.6.1.4.1.2021.10.1.5.2 で取得できます。 Target[cpu_analysis]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:localcom@localhost MaxBytes[cpu_analysis]: 100 Unscaled[cpu_analysis]: dwmy Options[cpu_analysis]: gauge,absolute,nopercent,noinfo YLegend[cpu_analysis]: CPU Load(%) ShortLegend[cpu_analysis]: (%) LegendI[cpu_analysis]: 1分間平均 LegendO[cpu_analysis]: 5分間平均 Legend1[cpu_analysis]: 1分間平均(%) Legend2[cpu_analysis]: 5分間平均(%) Title[cpu_analysis]: CPU Load PageTop[cpu_analysis]:

CPU Load

● メモリ空き容量をグラフ化する フラグを[mem_analysis] とし、次の記述を設定ファイルに記載します。メモリ空き容量に関するMIB 情報は ・ 実メモリ .1.3.6.1.4.1.2021.4.6.0 ・ スワップメモリ .1.3.6.1.4.1.2021.4.4.0 で取得できます。 Target[mem_analysis]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:localcom@localhost MaxBytes1[mem_analysis]: 254336 MaxBytes2[mem_analysis]: 257032 Unscaled[mem_analysis]: dwmy Options[mem_analysis]: gauge,absolute,noinfo YLegend[mem_analysis]: Mem Free(Bytes) ShortLegend[mem_analysis]: Bytes kilo[mem_analysis]: 1024 kMG[mem_analysis]: k,M,G,T,P LegendI[mem_analysis]: Real LegendO[mem_analysis]: Swap Legend1[mem_analysis]: 空き物理メモリ[MBytes] Legend2[mem_analysis]: 空きスワップメモリ[MBytes] Title[mem_analysis]: Memory Free PageTop[mem_analysis]:

Memory Free

● ディスク使用率をグラフ化する ディスク使用率はデフォルトのMIB 情報では/ のみが定義されています。 任意のパーティションを監視したいのであれば、snmpd.conf に監視したいパーティションを追加する必要があります。 例 ) /var、/home パーティションを監視する disk /home [ 下限 または、% ] disk /var [ 下限 または、% ] 上記記述を設定した場合、ディスク使用率に関するMIB 情報は ・ /home .1.3.6.1.4.1.2021.9.1.9.1 ・ /var .1.3.6.1.4.1.2021.9.1.9.2 で取得できます。 Target[disk_analysis]: .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.2:localcom@localhost MaxBytes[disk_analysis]: 100 Unscaled[disk_analysis]: dwmy Options[disk_analysis]: gauge,absolute,nopercent,noinfo YLegend[disk_analysis]: Disk Used (%) ShortLegend[disk_analysis]: (%) LegendI[disk_analysis]: /home Disk used LegendO[disk_analysis]: /var Disk Used Legend1[disk_analysis]: /home Disk used Legend2[disk_analysis]: /var Disk used Title[disk_analysis]: Disk Used PageTop[disk_analysis]:

Disk Used

#--------------------------------------------------------------------------------------------- # 閾値設定による自動監視 #--------------------------------------------------------------------------------------------- mrtg では、MIB 情報をグラフ表示するだけでなく、管理マネージャーで設定された監視対象の閾値を越えた際に、管理者にメールする機能があります。このような閾値設定による自動監視の仕組みを実装するにあたり、下記設定を設定ファイルに記述します。 ● ThreshDir mrtg の実行ユーザーが書き込み可能なディレクトリを指定します。後述するキーワード群で設定した閾値を超えた場合は、このディレクトリにmrtg.cfg.識別子.maxI のようなファイルが作成されます。 ● ThreshMaxI、または ThreshMaxO Target の第1 パラメータ、および第2 パラメータの値として認められる最大値を指定します。パラメータがこの値を上回ったときは、それぞれThreshProgI、またはThreshProgO で指定したプログラムが実行されます。 ● ThreshMinI、または ThreshMinO Target の第1 パラメータ、および第2 パラメータの値として認められる最小値を指定します。パラメータがこの値を下回ると、それぞれThreshProgI、またはThreshProgO で指定したプログラムが実行されます。 ● ThreshProgI、またはThreshProgO ThreshProgI には、ThreshMinI、またはThreshMaxI が破られたとき、ThreshProgO にはThreshMinO、またはThreshMaxO が破られたときに実行されるプログラムを指定します。そのプログラムが実行される際は、「識別子」「閾値」「現在のパラメータ値」の3 つが引数として渡されます。プログラムがPERL で作られている場合は各値は次のように取得可能です。 識別子 | $ARGV[0] 閾値 | $ARGV[1] 現在のパラメータ値 | $ARGV[2] それ以外の要素をプログラム内で利用したければ、設定ファイル中でSetEnvに環境変数を設定し、「$ENV{'変数名'}」で参照できます。 #--------------------------------------------------------------------------------------------- # mrtg の実行 #--------------------------------------------------------------------------------------------- mrtg を実行し、設定ファイルに定義された管理エージェントのMIB 情報を集計するには、次のコマンドを実行します。 # /usr/bin/mrtg /etc/mrtg/mrtg.cfg ※ 注意 ) mrtg のレポートはDaily, Weekly, Monthly, Yearly ごとに集計されますが、そのうち、Daily グラフでは、ディフォルトで5 分間の平均転送バイト/秒 が36 時間に渡って表示されるので、mrtg レポートを更新(実行) する間隔は5 分になります。 通常、5 分おきにmrtg を実行するため、mrtg をCRON に登録します。 設定ファイルにて複数の監視を行う場合、普通にmrtg を実行しただけではHtmldir に各監視ごとのHTML ファイルを作成するのみで、インデックスファイルは作成されません。mrtg では、インデックスファイルを作成するためのツールがディフォルトで付属されています。 # indexmaker /etc/mrtg/mrtg.cfg > /home/httpd/web-root/public_html/mrtg/index.html 上記コマンドで指定されたインデックスファイルが作成されます。