CentOS 7 に MRTG をインストールする。

だいたい次のような3つのステップを踏むことになります。

  1. Web サーバを立ち上げる
  2. SNMP デーモンを起動
  3. MRTG をインストール

◯ 広告

簡単な 需要予測ツール を作りました。MRTGログを貼り付けるだけで逼迫が想定される日を自動で計算してくれます。ちなみに MRTG のログは mrtg_page.html を mrtg_page.log にすると取得できます。



Step1. Web サーバを起動

まず http://localhost/ にアクセスしましょう。何も表示されないはずです。これから Web サーバを立ち上げて、ページが表示されるようにしていきます。

f:id:domodomodomo:20160211165313p:plain:w400

Step1-1. httpd をインストールと起動

$ # インストール
$ yum install httpd
$
$ # 起動
$ systemctl start httpd

 

この状態で再度 http://localhost/ にアクセスしましょう。何かしら表示されていれば成功です。

f:id:domodomodomo:20160211165653p:plain:w400


Step1-2. Document Root の確認

Web ページを配置するディレクトリのパスは、設定ファイル http.conf の DocumentRoot という項目で設定しています。

$ cat /etc/httpd/conf/httpd.conf | grep DocumentRoot
DocumentRoot "/var/www/html"

 

Step1-3. 自分のファイルを置いてみる。

1) /var/www/html にファイルを置けば良いことがわかりました。では、早速、自分のファイルを置いて動作を確認してみましょう。

$ vim /var/www/html/index.html

 

2) index.html に適当な文章を書き込みましょう。


f:id:domodomodomo:20160211170342p:plain

 

3) http://localhost/index.html にアクセスしてページが表示されるか、確認。


f:id:domodomodomo:20160211170658p:plain





Step2. SNMP デーモンを起動

Step2-1. インストール

$ yum install net-snmp
$
$ # snmpd (net-snmp) の動作確認 snmpwalk コマンドを使う際に必要
$ yum install net-snmp-utils

Step2-2. snmpd.conf の編集

vim /etc/snmp/snmpd.conf にて、次のように編集。

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

# 削除
#         sec.name       source          community
# com2sec notConfigUser  default         public
# com2sec notConfigUser  default         public

# 追記
#         sec.name       source          community
com2sec   local          localhost       private
com2sec   mynetwork      192.168.1.0/24  public

# http://www.itmedia.co.jp/help/howto/linux/0007master/06/05.html



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

# 削除
#       groupName      securityModel securityName
# group notConfigGroup v1            notConfigUser
# group notConfigGroup v2c           notConfigUser

# 追記
#       groupName      securityModel securityName
group   MyROGroup      v1            local
group   MyROGroup      v2c           local
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

# 追記
#     name        incl/excl subtree             mask(optional)
view  all         included  .1
view  all         included  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

http://centossrv.com/net-snmp-mrtg.shtml

Step2-3. SNMP デーモンの動作確認

SNMP デーモンが起動しているか、確認してみましょう。SNMP デーモンに問い合わせをする際に指定するコミュニティ名は、設定ファイル snmpd.conf の com2sec という項目で設定しています。私の環境では3列目にあたる private がそれに当たります。

$ # SNMP デーモン起動
$ systemctl start snmpd
$
$ # snmpwalk -v2c -c コミュニティ名 ホスト名
$   snmpwalk -v2c -c private      localhost

snmpwalkで全MIB取得する方法 - ike-daiの日記

Step3. MRTG のインストール

Step3-1. MRTG の設定ファイルを生成

$ # cfgmaker --output=MRTGの設定ファイルの出力先 コミュニティ名@ホスト名
$   cfgmaker --output=/etc/mrtg/mrtg.cfg private@localhost

Step3-2. MRTG の設定ファイル mrtg.cfg の編集

### Global Config Options

#  for UNIX
# 編集前
# WorkDir: /home/http/mrtg

# 編集後
# DocumentRoot を指定します。
# WorkDir に指定されたディレクトリにMRTGページ等が生成されます。
WorkDir: /var/www/html

#  or for NT
# WorkDir: c:\mrtgdata

### Global Defaults

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

Step3-3. MRTG ページの生成

$ mrtg /etc/mrtg/mrtg.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.cfg 
-----------------------------------------------------------------------
$ env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg 

Step3-4. 確認

http://localhost/index.html


f:id:domodomodomo:20160211204420p:plain


Step3-5. crontab に登録

crontab -e にて、5分おきに実行してくださいという記述をする。

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