>> HOME >> FC5 MENU >> MRTG サーバー監視システム 1 (ネットワーク負荷 CPU使用率 空きメモリ DISK使用率)
障害の兆候を見逃さないために、NET-SNMPと MRTGを利用してサーバーの状況を外部から監視できるようにします。
監視する項目は
  • ネットワークトラフィック
  • CPU 使用率
  • メモリ使用量
  • HDD 使用量

 1. NET-SNMP インストール
 2. NET-SNMP 設定
1 ) NET-SNMP 設定ファイル /etc/snmp/snmpd.conf 編集
 3. NET-SNMP の起動と自動起動設定
1 ) NET-SNMP の起動
2 ) NET-SNMP の自動起動設定
 4. MRTG インストール
 5. MRTG の設定
1 ) MRTG 設定ファイルの生成
2 ) MRTG 設定ファイル /etc/mrtg/mrtg.cfg の編集
 6. CPU 使用率 監視の設定
1 ) MRTG 設定ファイル /etc/mrtg/mrtg.cfg の編集
 7. メモリ使用量 監視の設定
1 ) メモリ搭載量の取得
2 ) MRTG 設定ファイル /etc/mrtg/mrtg.cfg の編集
 8. ディスク使用率 監視の設定
1 ) MRTG 設定ファイル /etc/mrtg/mrtg.cfg の編集
 9. MRTG の監視ページ作成
1 ) MRTG の監視ページ作成実行
2 ) MRTG のインデックスページ作成
10. Apache の設定
1 ) MRTG アクセス設定ファイル /etc/httpd/conf.d/mrtg.conf の編集
2 ) Apache への設定反映
11. MRTG 自動実行について
1. NET-SNMP インストール
[root@linux ~]# yum -y -y install net-snmp 
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
core                                                                 [1/3]
core                      100% |=========================| 1.1 kB    00:00
updates                                                              [2/3]
updates                   100% |=========================|  951 B    00:00
extras                                                               [3/3]
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
primary.xml.gz            100% |=========================| 767 kB    00:02
core      : ################################################## 2207/2207
Added 2207 new packages, deleted 0 old in 24.84 seconds
primary.xml.gz            100% |=========================| 471 kB    00:01
updates   : ################################################## 1399/1399
Added 1399 new packages, deleted 0 old in 20.39 seconds
primary.xml.gz            100% |=========================| 1.1 MB    00:04
extras    : ################################################## 4109/4109
Added 4109 new packages, deleted 0 old in 45.35 seconds
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for net-snmp to pack into transaction set.
net-snmp-5.3-4.2.i386.rpm 100% |=========================|  51 kB    00:00
---> Package net-snmp.i386 0:5.3-4.2 set to be updated
--> Running transaction check
--> Processing Dependency: libnetsnmpagent.so.10 for package: net-snmp
--> Processing Dependency: libnetsnmp.so.10 for package: net-snmp
--> Processing Dependency: libnetsnmptrapd.so.10 for package: net-snmp
--> Processing Dependency: libsensors.so.3 for package: net-snmp
--> Processing Dependency: libnetsnmphelpers.so.10 for package: net-snmp
--> Processing Dependency: libnetsnmpmibs.so.10 for package: net-snmp
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for net-snmp-libs to pack into transaction set.
net-snmp-libs-5.3-4.2.i38 100% |=========================|  24 kB    00:00
---> Package net-snmp-libs.i386 0:5.3-4.2 set to be updated
---> Downloading header for lm_sensors to pack into transaction set.
lm_sensors-2.9.2-1.i386.r 100% |=========================|  29 kB    00:00
---> Package lm_sensors.i386 0:2.9.2-1 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 net-snmp                i386       5.3-4.2          core              688 k
Installing for dependencies:
 lm_sensors              i386       2.9.2-1          core              481 k
 net-snmp-libs           i386       5.3-4.2          core              2.5 M

Transaction Summary
=============================================================================
Install      3 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 3.6 M
Downloading Packages:
(1/3): net-snmp-libs-5.3- 100% |=========================| 2.5 MB    00:09
(2/3): lm_sensors-2.9.2-1 100% |=========================| 481 kB    00:01
(3/3): net-snmp-5.3-4.2.i 100% |=========================| 688 kB    00:02
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: lm_sensors                   ######################### [1/3]
  Installing: net-snmp-libs                ######################### [2/3]
  Installing: net-snmp                     ######################### [3/3]

Installed: net-snmp.i386 0:5.3-4.2
Dependency Installed: lm_sensors.i386 0:2.9.2-1 net-snmp-libs.i386 0:5.3-4.2
Complete!
2. NET-SNMP 設定
1 ) NET-SNMP 設定ファイル /etc/snmp/snmpd.conf 編集
[root@linux ~]# vi /etc/snmp/snmpd.conf 

  :
  :
####
# First, map the community name "public" into a "security name"

#       sec.name  source          community
# 変更
#com2sec notConfigUser  default       public
com2sec local localhost private
com2sec mynetwork 192.168.1.0/24 public

####
# Second, map the security name into a group name:

#       groupName      securityModel securityName
# 変更
#group   notConfigGroup v1           notConfigUser
#group   notConfigGroup v2c           notConfigUser
group MyROGroup v1 mynetwork
group MyROGroup v2c mynetwork

####
# Third, create a view for us to let the group have rights to:

# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name           incl/excl     subtree         mask(optional)
# 変更
#view    systemview    included   .1.3.6.1.2.1.1
#view    systemview    included   .1.3.6.1.2.1.25.1.1
view all included .1 80

####
# Finally, grant the group read-only access to the systemview view.

#       group          context sec.model sec.level prefix read   write  notif
# 変更
#access  notConfigGroup ""      any       noauth    exact  systemview none none
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none

  :
  :
###############################################################################
# disk checks
#

# The agent can check the amount of available disk space, and make
# sure it is above a set limit.

# disk PATH [MIN=100000]
#
# PATH:  mount path to the disk in question.
# MIN:   Disks with space below this value will have the Mib's errorFlag set.
#        Default value = 100000.

# Check the / partition and make sure it contains at least 10 megs.

# コメントを外す
disk / 10000
3. NET-SNMP の起動と自動起動設定
1 ) NET-SNMP の起動
[root@linux ~]# service snmpd start 
snmpd を起動中:                                            [  OK  ]
2 ) NET-SNMP の自動起動設定
[root@linux ~]# chkconfig snmpd on 
[root@linux ~]# chkconfig --list snmpd 
snmpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
4. MRTG インストール
[root@linux ~]# yum -y install mrtg 
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
core                                                                 [1/3]
core                      100% |=========================| 1.1 kB    00:00
updates                                                              [2/3]
updates                   100% |=========================|  951 B    00:00
extras                                                               [3/3]
extras                    100% |=========================| 1.1 kB    00:00
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.13.2-0.fc5.1.i386. 100% |=========================|  69 kB    00:00
---> Package mrtg.i386 0:2.13.2-0.fc5.1 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 mrtg                    i386       2.13.2-0.fc5.1   updates           853 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 853 k
Downloading Packages:
(1/1): mrtg-2.13.2-0.fc5. 100% |=========================| 853 kB    00:03
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: mrtg                         ######################### [1/1]

Installed: mrtg.i386 0:2.13.2-0.fc5.1
Complete!
5. MRTG の設定
1 ) MRTG 設定ファイルの生成
[root@linux ~]# cfgmaker --ifref=descr --ifdesc=descr public@192.168.1.11 > /etc/mrtg/mrtg.cfg 
2 ) MRTG 設定ファイル /etc/mrtg/mrtg.cfg の編集
[root@linux ~]# vi /etc/mrtg/mrtg.cfg 

# Created by
# /usr/bin/cfgmaker --ifref=descr --ifdesc=descr public@192.168.1.11


### Global Config Options

#  for UNIX
# WorkDir: /home/http/mrtg
# MRTGによる編集結果HTML格納先ディレクトリを指定
WorkDir: /var/www/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
# 日本語化
Language:eucjp

  :
  :
### Interface 2 >> Descr: 'eth0' | Name: 'eth0' | Ip: '192.168.1.11' | Eth: '00-0a-79-02-28-ae' ###

# 変更(項目名[192.168.1.2_eth0]⇒項目名[eth0])
Target[eth0]: \eth0:public@192.168.1.11:
SetEnv[eth0]: MRTG_INT_IP="192.168.1.11" MRTG_INT_DESCR="eth0"
MaxBytes[eth0]: 12500000
Title[eth0]: eth0 -- mbrsv01.mountainbigroad.jp
PageTop[eth0]: <h1>eth0 -- mbrsv01.mountainbigroad.jp</h1>
# 以下を全てコメント
#         <div id="sysdetails">
#             <table>
#                 <tr>
#                     <td>System:</td>
#                     <td>mbrsv01.mountainbigroad.jp in Unknown (edit /etc/snmp/snmpd.conf)</td>
#                 </tr>
#                 <tr>
#                     <td>Maintainer:</td>
#                     <td>Root <root@localhost> (configure /etc/snmp/snmp.local.conf)</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.1.11 (mountainbigroad.jp)</td>
#                 </tr>
#
#             </table>
#         </div>
6. CPU 使用率 監視の設定
1 ) MRTG 設定ファイル /etc/mrtg/mrtg.cfg の編集
[root@linux ~]# vi /etc/mrtg/mrtg.cfg 

# 以下の全行を追加
### 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:public@192.168.1.11
MaxBytes[cpu]: 100
Unscaled[cpu]: dwmy
Options[cpu]: gauge, absolute, growright, noinfo, nopercent
YLegend[cpu]: CPU Load(%)
ShortLegend[cpu]: (%)
LegendI[cpu]: 1分間平均
LegendO[cpu]: 5分間平均
Legend1[cpu]: 1分間平均(%)
Legend2[cpu]: 5分間平均(%)
Title[cpu]: CPU使用率
PageTop[cpu]: <H1>CPU使用率</H1>
7. メモリ使用量 監視の設定
1 ) メモリ搭載量の取得
[root@linux ~]# free 
             total       used       free     shared    buffers     cached
Mem:        515648     489860      25788          0      86896     259620
-/+ buffers/cache:     143344     372304
Swap:      1048568          0    1048568
2 ) MRTG 設定ファイル /etc/mrtg/mrtg.cfg の編集
[root@linux ~]# vi /etc/mrtg/mrtg.cfg 

# 以下の全行を追加
### Memory Free ####
Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:public@192.168.1.11
# 物理メモリ( Mem: ) の total値を指定する
MaxBytes1[mem]: 515648
# スワップメモリ( Swap: ) の total値を指定する
MaxBytes2[mem]: 1048568
Unscaled[mem]: dwmy
Options[mem]: gauge, absolute, 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]: 空きメモリ量
PageTop[mem]: <H1>空きメモリ量</H1>
8. ディスク使用率 監視の設定
1 ) MRTG 設定ファイル /etc/mrtg/mrtg.cfg の編集
[root@linux ~]# vi /etc/mrtg/mrtg.cfg 

# 以下の全行を追加
### Disk Used ####
Target[disk]: .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.1:public@192.168.1.11
MaxBytes[disk]: 100
Unscaled[disk]: dwmy
Options[disk]: gauge, absolute, growright, nopercent, noinfo
YLegend[disk]: Disk Used(%)
ShortLegend[disk]: (%)
LegendI[disk]: / Disk Used
LegendO[disk]: / Disk Used
Legend1[disk]: / Disk Used
Legend2[disk]: / Disk Used
Title[disk]: ディスク使用率
PageTop[disk]: <H1>ディスク使用率</H1>
9. MRTG の監視ページ作成
1 ) MRTG の監視ページ作成実行
MRTG を実行し、MRTG による監視の閲覧ページを作成します。
MRTG は過去2回起動時のログを使用するため、初回起動から2回目までは必ず WARNING が出るので、MRTGの実行を3回行います。また、mrtg.cfg 修正後も、MRTGの実行を3回行う方がいいでしょう。
[root@linux ~]# mrtg /etc/mrtg/mrtg.cfg 
Rateup WARNING: /usr/bin/rateup Can't remove eth0.old updating log file
Rateup WARNING: /usr/bin/rateup Can't remove cpu.old updating log file
Rateup WARNING: /usr/bin/rateup Can't remove mem.old updating log file
Rateup WARNING: /usr/bin/rateup could not read the primary log file for disk
Rateup WARNING: /usr/bin/rateup The backup log file for disk was invalid as well
Rateup WARNING: /usr/bin/rateup Can't remove disk.old updating log file
Rateup WARNING: /usr/bin/rateup Can't rename disk.log to disk.old updating log file

[root@linux ~]# mrtg /etc/mrtg/mrtg.cfg 
Rateup WARNING: /usr/bin/rateup Can't remove disk.old updating log file

[root@linux ~]# mrtg /etc/mrtg/mrtg.cfg 
MRTG の各監視ページは以下に作成されます。
ネットワークトラフィック状況監視確認
http://mountainbigroad.jp/mrtg/eth0.html
CPU 使用率監視確認
http://mountainbigroad.jp/mrtg/cpu.html
メモリ空き容量監視確認
http://mountainbigroad.jp/mrtg/mem.html
ディスク空き容量監視確認
http://mountainbigroad.jp/mrtg/disk.html
2 ) MRTG のインデックスページ作成
各監視画面を統合したような見出しページを、MRTG 検出結果格納先ディレクトリ(WorkDir)に作成します。
[root@linux ~]# indexmaker --columns=1 --title="サーバ監視システム" \
--addhead="<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=euc-jp\">" \
/etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html 
10. Apache の設定
1 ) MRTG アクセス設定ファイル /etc/httpd/conf.d/mrtg.conf の編集
[root@linux ~]# vi /etc/httpd/conf.d/mrtg.conf 

#
# This configuration file maps the mrtg output (generated daily)
# into the URL space. By default these results are only accessible
# from the local host.
#
Alias /mrtg /var/www/mrtg

# 以下をコメント
#<Location /mrtg>
#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1
#  Allow from ::1
#  Allow from .example.com
#</Location>

# 以下を追加 ( .htaccess にてアクセス制限をかける )
<Directory /var/www/mrtg>
    Options None
    AllowOverride All
    Order deny,allow
    Allow from All
</Location>
2 ) Apache への設定反映
[root@linux ~]# service httpd reload 
httpd を再読み込み中:                                      [  OK  ]
11. MRTG 自動実行について
MRTGを RPMパッケージからインストールした場合、5分間隔で MRTGを実行するように cronに登録されるため、自動起動にかかわる作業はありません。