Fedora Core 6 MRTG



前書き (執筆:2007/05/15)

実際にサーバーの運用を始めるとネットワークのトラフィックや、CPU・メモリの状況が気になるかと思います。
ここでは RPM(パッケージ)で用意されている SNMP 、 MRTG 、 lm_sensors を使ってWebから監視状況が把握できる設定をします。

MRTGとは

MRTG(Multi Router Traffic Grapher)とは、数値統計をとってグラフ化するソフトで、主にネットワークのトラフィック統計などに用いられます。
ここではSNMPでネットワークのトラフィック監視とlm_sensorsのCPU温度をMRTGで統計・グラフ化します。

SNMPとは

SNMP(Simple Network Management Protocol)とは、ネットワークで接続された機器の情報をネットワークで取得、管理および監視するためのプロトコル
ここではトラフィックを監視するために使用する方法を記載します。

SNMPインストール

RPM(パッケージ)で提供されているので、まずインストールされているか確認します。

# rpm -qa | grep snmp

下記のRPMがインストールされていなければ、yumを使ってインストールします。

  • net-snmp-devel
  • net-snmp-perl

yumコマンドでインストール

# yum install net-snmp-devel net-snmp-perl

下記のよう表示されます。

Loading "fastestmirror" plugin
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for net-snmp-devel to pack into transaction set.
net-snmp-devel-5.3.1-14.f 100% |=========================|  55 kB    00:00
---> Package net-snmp-devel.i386 1:5.3.1-14.fc6 set to be updated
---> Downloading header for net-snmp-perl to pack into transaction set.
net-snmp-perl-5.3.1-14.fc 100% |=========================|  31 kB    00:00
---> Package net-snmp-perl.i386 1:5.3.1-14.fc6 set to be updated
--> Running transaction check
--> Processing Dependency: elfutils-devel for package: net-snmp-devel
--> Processing Dependency: beecrypt-devel for package: net-snmp-devel
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for elfutils-devel to pack into transaction set.
elfutils-devel-0.127-1.fc 100% |=========================|  14 kB    00:00
---> Package elfutils-devel.i386 0:0.127-1.fc6 set to be updated
---> Downloading header for beecrypt-devel to pack into transaction set.
beecrypt-devel-4.1.2-10.1 100% |=========================|  12 kB    00:00
---> Package beecrypt-devel.i386 0:4.1.2-10.1.1 set to be updated
--> Running transaction check
--> Processing Dependency: elfutils-devel-static = 0.127-1.fc6 for package: elfutils-devel
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for elfutils-devel-static to pack into transaction set.
elfutils-devel-static-0.1 100% |=========================|  13 kB    00:00
---> Package elfutils-devel-static.i386 0:0.127-1.fc6 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 net-snmp-devel          i386       1:5.3.1-14.fc6   updates           1.7 M
 net-snmp-perl           i386       1:5.3.1-14.fc6   updates           193 k
Installing for dependencies:
 beecrypt-devel          i386       4.1.2-10.1.1     core              152 k
 elfutils-devel          i386       0.127-1.fc6      updates            53 k
 elfutils-devel-static   i386       0.127-1.fc6      updates            80 k

Transaction Summary
=============================================================================
Install      5 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 2.2 M
Is this ok [y/N]: y

依存関係でいくつかのファイルもインストールされますので、 y でインストールを開始します。

Downloading Packages:
(1/5): net-snmp-devel-5.3 100% |=========================| 1.7 MB    00:01
(2/5): elfutils-devel-0.1 100% |=========================|  53 kB    00:00
(3/5): beecrypt-devel-4.1 100% |=========================| 152 kB    00:00
(4/5): net-snmp-perl-5.3. 100% |=========================| 193 kB    00:00
(5/5): elfutils-devel-sta 100% |=========================|  80 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: beecrypt-devel               ######################### [1/5]
  Installing: net-snmp-perl                ######################### [2/5]
  Installing: elfutils-devel               ######################### [3/5]
  Installing: net-snmp-devel               ######################### [4/5]
  Installing: elfutils-devel-static        ######################### [5/5]

Installed: net-snmp-devel.i386 1:5.3.1-14.fc6 net-snmp-perl.i386 1:5.3.1-14.fc6
Dependency Installed: beecrypt-devel.i386 0:4.1.2-10.1.1 elfutils-devel.i386 0:0.127-1.fc6 elfutils-devel-static.i386 0:0.127-1.fc6
Complete!

SNMPの設定ファイルの修正

SNMPの設定ファイルは /etc/snmp/snmpd.conf になります。

# vi /etc/snmp/snmpd.conf

修正内容は運営環境や監視したい内容にもよりますが、ここでは簡単な設定を例として記載します。

###############################################################################
#
# snmpd.conf:
#   An example configuration file for configuring the ucd-snmp snmpd agent.
#
###############################################################################
#
# This file is intended to only be as a starting point.  Many more
# configuration directives exist than are mentioned in this file.  For
# full details, see the snmpd.conf(5) manual page.
#
# All lines beginning with a '#' are comments and are intended for you
# to read.  All other lines are configuration commands for the agent.

###############################################################################
# Access Control
###############################################################################
  ・
  ・
# -----------------------------------------------------------------------------

# Here is a commented out example configuration that allows less
# restrictive access.

# YOU SHOULD CHANGE THE "COMMUNITY" TOKEN BELOW TO A NEW KEYWORD ONLY
# KNOWN AT YOUR SITE.  YOU *MUST* CHANGE THE NETWORK TOKEN BELOW TO
# SOMETHING REFLECTING YOUR LOCAL NETWORK ADDRESS SPACE.

##       sec.name  source          community
#com2sec local     localhost       COMMUNITY
#com2sec mynetwork NETWORK/24      COMMUNITY

下記を追記します

com2sec local     localhost       private
com2sec mynetwork 192.168.0.0/24      public


##     group.name sec.model  sec.name
#group MyRWGroup  any        local
#group MyROGroup  any        mynetwork
#
#group MyRWGroup  any        otherv3user
#...

下記を追記します。

group MyROGroup v1 local
group MyROGroup v2c local
group MyROGroup usm local


##           incl/excl subtree                          mask
#view all    included  .1                               80

下記を追記します。

view all included .1 80


## -or just the mib2 tree-

#view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc


##                context sec.model sec.level prefix read   write  notif
#access MyROGroup ""      any       noauth    0      all    none   none
#access MyRWGroup ""      any       noauth    0      all    all    all

下記を追記します。

access MyROGroup "" any noauth exact all none none

SNMPの自動起動設定・起動

/etc/rc.d/init.d 配下に snmpd と snmptrapd の起動スクリプトが用意されています。
snmpd を自動起動するように設定します。

# chkconfig snmpd on
# chkconfig --list snmpd
snmpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

snmpd を起動させます。

# service snmpd start

これで SNMP については終了です。

MRTGインストール

次に SNMP で収集した情報を 統計・グラフ化する MRTG のインストールを行います。
先と同様に MRTG がインストールされているか確認します。

# rpm -qa mrtg

インストールされていなければ下記のように yum を使ってインストールします。

# yum install mrtg
Loading "fastestmirror" plugin
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for mrtg to pack into transaction set.
mrtg-2.14.5-2.i386.rpm    100% |=========================|  57 kB    00:00
---> Package mrtg.i386 0:2.14.5-2 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 mrtg                    i386       2.14.5-2         core              842 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 842 k
Is this ok [y/N]: y

y を入力してインストールを開始させます。

Downloading Packages:
(1/1): mrtg-2.14.5-2.i386 100% |=========================| 842 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: mrtg                         ######################### [1/1]

Installed: mrtg.i386 0:2.14.5-2
Complete!

依存関係により MRTG 本体以外に 環境によっていくつかのライブラリを要求されるかもしれません。
下記の表が主に依存関係として必要なファイル(ライブラリ)関係になります。

名称内容
perlPerlスクリプト本体
gdグラフィック描画ライブラリ
libpngPNG形式のイメージを作成するためのライブラリ
zliblibpngが使う圧縮ライブラリ

MRTGの基本設定

設定ファイルは /etc/mrtg/mrtg.cfg になります。
このままでは使用できませんので、SNMPの情報を扱えるように 新しく mrtg_snmp.cfg として作成することにします。
cfgmakerコマンドを使ってcfgファイルを生成します。

# cfgmaker private@localhost

ここで private@localhost と入力したのは、先の snmp.conf で設定した名称です。
正常に snmp.conf の設定と起動ができていれば、下記のような設定情報と HTMLタグがかかれた内容が表示されます。

# Created by
# /usr/bin/cfgmaker private@localhost


### Global Config Options

#  for UNIX
# WorkDir: /home/http/mrtg

#  or for NT
# WorkDir: c:\mrtgdata

### Global Defaults

#  to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits

EnableIPv6: no

######################################################################
# System: dreamer-site.net
# Description: Linux dreamer-site.net 2.6.20-1.2948.fc6 #1 SMP Fri Apr 27 19:48:40 EDT 2007 i686
# Contact: Dreamer <dreamer@localhost>
# Location: Home server
######################################################################


### Interface 1 >> Descr: 'lo' | Name: 'lo' | Ip: '127.0.0.1' | Eth: '' ###
### The following interface is commented out because:
### * it is a Software Loopback interface
#
# Target[localhost_1]: 1:private@localhost:
# SetEnv[localhost_1]: MRTG_INT_IP="127.0.0.1" MRTG_INT_DESCR="lo"
# MaxBytes[localhost_1]: 1250000
# Title[localhost_1]: Traffic Analysis for 1 -- dreamer-site.net
# PageTop[localhost_1]: <h1>Traffic Analysis for 1 -- dreamer-site.net</h1>
#               <div id="sysdetails">
#                       <table>
#                               <tr>
#                                       <td>System:</td>
#                                       <td>dreamer-site.net in Home server</td>
#                               </tr>
#                               <tr>
#                                       <td>Maintainer:</td>
#                                       <td>Dreamer &lt;dreamer@localhost&gt;</td>
#                               </tr>
#                               <tr>
#                                       <td>Description:</td>
#                                       <td>lo  </td>
#                               </tr>
#                               <tr>
#                                       <td>ifType:</td>
#                                       <td>softwareLoopback (24)</td>
#                               </tr>
#                               <tr>
#                                       <td>ifName:</td>
#                                       <td>lo</td>
#                               </tr>
#                               <tr>
#                                       <td>Max Speed:</td>
#                                       <td>1250.0 kBytes/s</td>
#                               </tr>
#                               <tr>
#                                       <td>Ip:</td>
#                                       <td>127.0.0.1 (localhost.localdomain)</td>
#                               </tr>
#                       </table>
#               </div>


### Interface 2 >> Descr: 'eth0' | Name: 'eth0' | Ip: '192.168.0.200' | Eth: '00-0c-6e-8e-cb-d4' ###

Target[localhost_2]: 2:private@localhost:
SetEnv[localhost_2]: MRTG_INT_IP="192.168.0.200" MRTG_INT_DESCR="eth0"
MaxBytes[localhost_2]: 12500000
Title[localhost_2]: Traffic Analysis for 2 -- dreamer-site.net
PageTop[localhost_2]: <h1>Traffic Analysis for 2 -- dreamer-site.net</h1>
                <div id="sysdetails">
                        <table>
                                <tr>
                                        <td>System:</td>
                                        <td>dreamer-site.net in Home server</td>
                                </tr>
                                <tr>
                                        <td>Maintainer:</td>
                                        <td>Dreamer &lt;dreamer@localhost&gt;</td>
                                </tr>
                                <tr>
                                        <td>Description:</td>
                                        <td>eth0  </td>
                                </tr>
                                <tr>
                                        <td>ifType:</td>
                                        <td>ethernetCsmacd (6)</td>
                                </tr>
                                <tr>
                                        <td>ifName:</td>
                                        <td>eth0</td>
                                </tr>
                                <tr>
                                        <td>Max Speed:</td>
                                        <td>12.5 MBytes/s</td>
                                </tr>
                                <tr>
                                        <td>Ip:</td>
                                        <td>192.168.0.200 (dreamer-site.net)</td>
                                </tr>
                        </table>
                </div>

ここで HTMLの部分が表示されず、下記の内容だけの場合は snmp.conf の設定と起動を確認してください。

# Created by
# /usr/bin/cfgmaker private@localhost


### Global Config Options

#  for UNIX
# WorkDir: /home/http/mrtg

#  or for NT
# WorkDir: c:\mrtgdata

### Global Defaults

#  to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits

EnableIPv6: no


正しく出力されたら、これを mrtg_snmp.cfg として保存します。

# cfgmaker private@localhost > /etc/mrtg/mrtg_snmp.cfg



出力された mrtg_snmp.cfg を修正します。

# vi /etc/mrtg/mrtg_snmp.cfg

修正箇所を抜粋して表示します。

# Created by
# /usr/bin/cfgmaker private@localhost


### Global Config Options

#  for UNIX
# WorkDir: /home/http/mrtg

#  or for NT
# WorkDir: c:\mrtgdata

### Global Defaults

#  to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits

EnableIPv6: no

この部分を下記のように修正します。
ただし、apache への出力部を 私の環境では /home/mrtg/htdcos 配下に設定していますので、各自の運営環境に合わせて修正してください。

### Global Config Options

#  for UNIX
HtmlDir: /home/mrtg/htdocs
ImageDir: /home/mrtg/htdocs/images
IconDir: icon
LogDir:/home/mrtg/htdocs/log
Refresh: 300
Language: eucjp

#  or for NT
# WorkDir: c:\mrtgdata

### Global Defaults

#  to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits

EnableIPv6: no
  • HtmlDir : apacheなどで公開しているディレクトリ下、もしくは apacheの設定(httpd.conf) virtual directory で設定するディレクトリを記述します。
  • ImageDir : 生成されるイメージファイルの保存ディレクトリ。HtmlDir配下であることが条件です。
  • IconDir : HtmlDir配下で、相対パスで記述します。
  • LogDir : 集計されたログデータを保存するディレクトリです。デフォルト(未設定)状態では /var/lib/mrtg になります。
  • Refresh : HTMLのページリロード(refresh)時間です。単位は秒
  • Language : HTMLの文字コード。ここではeuc-jpを指定しています。


次に ## Interface 2 >> と書かれた箇所の修正を行います。

### Interface 2 >> Descr: 'eth0' | Name: 'eth0' | Ip: '192.168.0.200' | Eth: '00-0c-6e-8e-cb-d4' ###

Target[localhost_2]: 2:private@localhost:
SetEnv[localhost_2]: MRTG_INT_IP="192.168.0.200" MRTG_INT_DESCR="eth0"
MaxBytes[localhost_2]: 12500000
Title[localhost_2]: Traffic Analysis for 2 -- dreamer-site.net
PageTop[localhost_2]: <h1>Traffic Analysis for 2 -- dreamer-site.net</h1>
                <div id="sysdetails">
                        <table>
  ・
  ・

これを下記のように修正します。

## Interface 2 >> Descr: 'eth0' | Name: 'eth0' | Ip: '192.168.0.200' | Eth: '00-0c-6e-8e-cb-d4' ###

Target[traffic]: 2:private@localhost:
Options[traffic]: growright, noinfo
MaxBytes[traffic]: 12500000
Title[traffic]: Traffic Analysis
PageTop[traffic]: <h1>Traffic Analysis</h1>

[ ]の中が localhost_2 から traffic に変更になっているのが分かると思います。
この[ ]の中は実際にwebから呼び出す html のファイル名になります。

ex. traffic.html

Optionの内容については下記の表を参考にしてください。

Optionsの設定内容
growrightグラフの右端を現時点に設定
absolute監視対象の平均値を計算しない(値をそのまま利用)
gauge監視対象の差を計算しない(値をそのまま利用)
nopercentパーセント表示をしない(値をそのまま利用)
noinfoWebページの先頭にデバイス名などを表示しない

最後に、HTML部分を必要でなければ # でコメントアウトしてください。

                <div id="sysdetails">
                        <table>
  ・
  ・
                        </table>
                </div>

コメントアウトする。

#                <div id="sysdetails">
#                        <table>
  ・
  ・
#                        </table>
#                </div>

以上で mrtg_snmp.cfg の修正は完了です。

MRTGの動作確認

ここまで設定ができれば実際に mrtg を動作させてみます。

# mrtg /etc/mrtg/mrtg_snmp.cfg

ここで下記のようなメッセージが表示される環境があります。

-----------------------------------------------------------------------
ERROR: Mrtg will most likely not work properly when the environment
       variable LANG is set to UTF-8. Please run mrtg in an environment
       where this is not the case. Try the following command to start:

       env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg_snmp.cfg
-----------------------------------------------------------------------

このような場合はメッセージのように変更します。

# env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg_snmp.cfg


初めて起動させた場合、下記のメッセージ(WARNING)が表示されます。
これは初回時のみ表示されるものですので、特に気にする必要はありません。

Rateup WARNING: /usr/bin/rateup could not read the primary log file for traffic
Rateup WARNING: /usr/bin/rateup The backup log file for traffic was invalid as well
Rateup WARNING: /usr/bin/rateup Can't remove traffic.old updating log file
Rateup WARNING: /usr/bin/rateup Can't rename traffic.log to traffic.old updating log file

少し時間を空けて2回目を実行させます。

# env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg_snmp.cfg

今度は

Rateup WARNING: /usr/bin/rateup Can't remove traffic.old updating log file

と表示されます。
これも先と同様に問題ありませんので、さらに少し時間を空けて3度目を実行させます。

# env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg_snmp.cfg

とくになにも出力されなければ、正常に終了しているはずです。

mrtg_snmp.cfg の HtmlDir で指定したディレクトリを確認してください。
そのディレクトリに traffic.html が生成されれば MRTG の設定は完了です。

定時処理化

すでに /etc/cron.d/mrtg が登録されている場合がありますので確認します。

# ls -la /etc/cron.d/mrtg


登録されている場合は内容を変更します。
ない場合は新規に作成します。

# vi /etc/cron.d/mrtg


cfgファイルの指定がデフォルトのままになっているので、 /etc/mrtg/mrtg_snmp.cfg に変更します。
最終的には下記のようになります。

*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg_snmp.cfg
--lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok

(注:すべて1行で記載します。ページの関係で改行しています。)

以上で準備は完了しました。

ブラウザで確認

実際にブラウザで確認してみます。
URLはapacheで設定した内容や、mrtg_snmp.cfg で設定した HtmlDir で各自変わりますので、それぞれのURLを入力してください。
下記は参考例です。

http://サーバーIPアドレス/mrtg/traffic.html


これで4種類のグラフ(日グラフ、週グラフ、月グラフ、年グラフ)が表示されれば SNMP + MRTG は完了です。

その他の情報監視の追加

このほか、MRTGではインターフェース番号というものを使って様々な情報をグラフ化することができます。
詳しくは エンタープライズ: - 第6回:SNMPによるネットワークモニタリング にありますので参考にしてみるといいでしょう。
ここでは他に3種類の情報を追加してみます。

  • 空きメモリ情報 インターフェース番号:1.3.6.1.4.1.2021.4.6.0 と 1.3.6.1.4.1.2021.4.4.0
    これを使って物理メモリとSWAPメモリの空き情報を取得してグラフ化します。 前に作成した mrtg_snmp.conf に下記を追加します。
### Memory Free ###
#
Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:private@localhost
MaxBytes1[mem]: 255560
MaxBytes2[mem]: 1052248
Unscaled[mem]: dwmy
Options[mem]: gauge, growright, noinfo
YLegend[mem]: Mem Free(Bytes)
ShortLegend[mem]: Bytes
kilo[mem]: 1024
kMG[mem]: k,M,G,T,P
LegendI[mem]: Real
LegendO[mem]: Swap
Legend1[mem]: 空き物理メモリ[MBytes]
Legend2[mem]: 空きスワップメモリ[MBytes]
Title[mem]: Memory
PageTop[mem]: <H1>Memory</H1>
  • CPU負荷情報 この情報は俗に言う CPU load average の情報です。
    インターフェース番号:1.3.6.1.4.1.2021.10.1.5.1 と 1.3.6.1.4.1.2021.10.1.5.2
    これも同様に mrtg_snmp.conf に下記を追加します。
### CPU Load Average ###
Target[cpu]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:private@localhost
MaxBytes[cpu]: 2000
#Unscaled[cpu]: dwmy
Options[cpu]: integer, gauge, withzeroes, growright, noinfo, nopercent
YLegend[cpu]: CPU Load Average
ShortLegend[cpu]: (%)
LegendI[cpu]: 1min AVR.
LegendO[cpu]: 5min AVR.
Legend1[cpu]: 1min AVR.
Legend2[cpu]: 5min AVR.
Title[cpu]: CPU Load
PageTop[cpu]: <H1>CPU Load Average</H1>

lm_sensorsのインストール

lm_sensorsはマザーボード情報を取得するサービスです。
CPU温度や各種FANの回転数、電圧状態などを調べることができます。
通常でインストールされていると思います。下記の方法で確認してください。

# rpm -qa lm_sensors

もしインストールされていなければ、下記の方法でインストールできます。

# yum install lm_sensors


lm_sensorsの初期設定

初期設定は sensors-detect のコマンドを使って行います。

# sensors-detect


下記のような内容で設定設定を進めていきます。
当然、使用しているマザーボードなど機器によって変わりますのでご注意ください。
基本的に [enter] で進めて問題ありません。
自分の必要のない情報については n で進めて構いません。

# sensors-detect revision 4171 (2006-09-24 03:37:01 -0700)

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

We can start with probing for (PCI) I2C or SMBus adapters.
Do you want to probe now? (YES/no):
Probing for PCI bus adapters...
Use driver `i2c-i801' for device 0000:00:1f.3: Intel 82801EB ICH5
Use driver `i2c-matroxfb' for device 0000:01:00.0: MGA G400 AGP

We will now try to load each adapter module in turn.
Module `i2c-i801' already loaded.
Module `i2c-matroxfb' already loaded.
If you have undetectable or unsupported adapters, you can have them
scanned by manually loading the modules before running this script.

We are now going to do the I2C/SMBus adapter probings. Some chips may
be double detected; we choose the one with the highest confidence
value in that case.
If you found that the adapter hung after probing a certain address,
you can specify that address to remain unprobed.

Next adapter: MAVEN:fb0
Do you want to scan it? (YES/no/selectively):

Next adapter: DDC:fb0 #1
Do you want to scan it? (YES/no/selectively):

Next adapter: DDC:fb0 #0
Do you want to scan it? (YES/no/selectively):

Next adapter: SMBus I801 adapter at 0400
Do you want to scan it? (YES/no/selectively):
Client found at address 0x08
Client found at address 0x2f
Probing for `National Semiconductor LM78'...                No
Probing for `National Semiconductor LM78-J'...              No
Probing for `National Semiconductor LM79'...                No
  ・
  ・
  ・
I will now generate the commands needed to load the required modules.
Just press ENTER to continue:

To make the sensors modules behave correctly, add these lines to
/etc/modprobe.conf:

#----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
# Chip drivers
modprobe eeprom
modprobe w83627hf
# sleep 2 # optional
/usr/bin/sensors -s # recommended
#----cut here----

If you have some drivers built into your kernel, the list above will
contain too many modules. Skip the appropriate ones! You really
should try these commands right now to make sure everything is
working properly. Monitoring programs won't work until the needed
modules are loaded.

Do you want to overwrite /etc/sysconfig/lm_sensors? (YES/no):

さてここで重要なのが最後に記載された情報。(I will now ・・・以下)
指定されたとおり、/etc/modprobe.conf に

#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----

を追記し、また /etc/rc* (FC6では /etc/rc.local を指します。)に

#----cut here----
# I2C adapter drivers
modprobe i2c-i801
# Chip drivers
modprobe eeprom
modprobe w83627hf
# sleep 2 # optional
/usr/bin/sensors -s # recommended
#----cut here----

を追記します。

ここまで出来たら、システムを再起動します。

lm_sensorsの起動

無事にシステムが起動したら sensors のコマンドを使って 情報が表示されるか確認します。

# sensors
  ・
  ・
w83627thf-isa-0290
Adapter: ISA adapter
VCore:     +1.57 V  (min =  +0.00 V, max =  +3.84 V)
+12V:     +11.98 V  (min =  +5.65 V, max =  +8.27 V)       ALARM
+3.3V:     +3.28 V  (min =  +2.00 V, max =  +1.86 V)       ALARM
+5V:       +5.09 V  (min =  +0.13 V, max =  +3.95 V)       ALARM
-12V:      +0.88 V  (min = -11.95 V, max = -14.17 V)       ALARM
V5SB:      +4.89 V  (min =  +5.05 V, max =  +1.75 V)       ALARM
VBat:      +0.00 V  (min =  +3.09 V, max =  +1.04 V)       ALARM
fan1:        0 RPM  (min =   90 RPM, div = 128)              ALARM
CPU Fan:  3792 RPM  (min =   -1 RPM, div = 2)              ALARM
fan3:        0 RPM  (min = 3515 RPM, div = 128)              ALARM
M/B Temp:    +36°C  (high =   +70°C, hyst =    +8°C)   sensor = thermistor
CPU Temp:  +44.0°C  (high =   +80°C, hyst =   +75°C)   sensor = diode
temp3:     -48.0°C  (high =   +80°C, hyst =   +75°C)   sensor = thermistor
vid:      +1.525 V  (VRM Version 9.0)
alarms:
beep_enable:
          Sound alarm enabled


ここで途中に書かれた w83627thf-isa-0290 は使用しているマザーボードとチップセットに関するものなので、各自違いますのでご注意ください。


このままでは異常情報を感知したらBEEP音でアラーム通知されます。
もしこれが必要なければ、/etc/sensors.conf を修正することで対応できます。

前に書いた sensors で出力されたチップセット名 (ここでは w83627thf-isa-0290 がそれにあたる) が重要です。
どこかにメモするなりして、覚えておいてください。

# vi /etc/sensors.conf

設定ファイル自体かなり量があります。
その中から 自分のチップセット名に相当するセクションを探します。
私の場合は w83627thf-isa-0290 なので chip "w83627thf-*" "w83637hf-*" が該当する場所になります。
このセクションの最後に 下記を追記します。

set beep_enable 0


これで再起動させて、再度 sensors を実行すると

  ・
  ・
beep_enable:
          Sound alarm disabled

になります。

CPU温度監視

sensorsコマンドでCPUの温度情報が取得できるようになったので、これをMRTGで収集、グラフ化できるように設定します。
sensorsコマンドで欲しいのは

M/B Temp:    +36°C  (high =   +70°C, hyst =    +8°C)   sensor = thermistor
CPU Temp:  +44.0°C  (high =   +80°C, hyst =   +75°C)   sensor = diode

この箇所なので、どのようにしてこの情報だけを引き出すかと言うと・・・ grepコマンドとawkコマンドと正規表現で抽出します。
具体的には Temp というキーワードをもとに数値情報を引き抜く手法です。

/usr/bin/sensors | grep Temp | awk '{print $3}' | sed -e 's/+//' -e 's/[^0-9+\.].*//'

これは @IT:MRTGでCPUの温度変化をグラフ化するには で紹介されていた方法を使わせていただきました。
これを使かうと下記のように数値だけが表示されるはずです。

# /usr/bin/sensors | grep Temp | awk '{print $3}' | sed -e 's/+//' -e 's/[^0-9+\.].*//'
36
44.0

これが表示されればあとはMRTGで収集するように cfgファイルを修正するだけです。
実際に mrtg_snmp.cfg へ追記する内容は下記のとおりです。

### CPU tmp ###
#
Target[cputemp]: `/usr/bin/sensors | grep Temp | awk '{print $3}' | sed -e 's/+//' -e 's/[^0-9+\.].*//'`
MaxBytes[cputemp]: 100
Title[cputemp]: CPUとマザーボードの温度
PageTop[cputemp]: <h1>CPUとマザーボードの温度</h1>
Options[cputemp]: growright,absolute,gauge,nopercent,noinfo
WithPeak[cputemp]: ymw
#unscaled[cputemp]: dwmy
YLegend[cputemp]: Temperature
ShortLegend[cputemp]: C
LegendI[cputemp]: M/B
LegendO[cputemp]: CPU
Legend1[cputemp]: M/B
Legend2[cputemp]: CPU

以上で設定は終了です。

ブラウザで確認-2

ここまでの設定をブラウザで確認してみます。
URLはapacheで設定した内容や、mrtg_snmp.cfg で設定した HtmlDir で各自変わりますので、それぞれのURLを入力してください。
下記は参考例です。

http://サーバーIPアドレス/mrtg/mem.html
http://サーバーIPアドレス/mrtg/cputemp.html


これで4種類のグラフ(日グラフ、週グラフ、月グラフ、年グラフ)が表示されれば完了です。



Last-modified: 2015-04-23 (木) 15:24:42 (1004d)