サーバー監視システム構築(RRDtool+Cacti)

最終更新日: 2016.12.21

<<トップページ <<新着情報 <<リンク集 <<サイト内検索 <<Scientific Linuxで自宅サーバー構築 <<Fedoraで自宅サーバー構築

■概要

次世代版MRTGRRDtoolを利用してサーバー監視システムを構築する。
ここでは、RRDtoolのフロントエンドとしてCactiを利用し、Webインタフェースでグラフの管理ができるようにする。
また、ハードディスク使用量を監視し、規定値を超えたら管理者宛にメール通知するようにする。

サンプル(当サイトのグラフ)

Apache+PHPMySQLが必要


■Net-SNMPインストール

データ収集に必要なNet-SNMPをインストールする。
[root@centos ~]# yum -y install net-snmp ← Net-SNMPインストール

■Net-SNMP設定

[root@centos ~]# vi /etc/snmp/snmpd.conf ← Net-SNMP設定ファイル編集
#       sec.name  source          community
#com2sec notConfigUser  default       public ← コメントアウト
com2sec local localhost private ← 追加
com2sec mynetwork 192.168.1.0/24 public ← 追加(ネットワークアドレスは各自の環境に合わせること)

#       groupName      securityModel securityName
#group   notConfigGroup v1c           notConfigUser ← コメントアウト
#group   notConfigGroup v2c           notConfigUser ← コメントアウト
group MyROGroup v1 local ← 追加
group MyROGroup v2c local ← 追加
group MyROGroup v1 mynetwork ← 追加
group MyROGroup v2c mynetwork ← 追加

# 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 ← 追加

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

#disk / 10000
disk / 10000 ← 追加(ディスク使用率表示用設定)

■Net-SNMP起動

[root@centos ~]# /etc/rc.d/init.d/snmpd start ← Net-SNMP起動
snmpd を起動中:                                            [  OK  ]

[root@centos ~]# chkconfig snmpd on ← Net-SNMP自動起動設定

[root@centos ~]# chkconfig --list snmpd ← Net-SNMP自動起動設定確認
snmpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off ← ランレベル2〜5のon確認

■RRDtoolインストール

EPELリポジトリ導入(EPEL)を参照してEPELリポジトリを導入する

[root@centos ~]# yum -y install rrdtool ← RRDtoolインストール

■Cactiインストール

[root@centos ~]# yum -y install cacti ← Cactiインストール

■Cacti設定

(1)Cacti用MySQLデータベース作成
[root@centos ~]# mysql -u root -p ← MySQLへrootでログイン
Enter password:  ← MySQLのrootパスワード応答
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 297
Server version: 5.0.37 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database cacti; ← Cacti用データベース作成
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on cacti.* to cactiuser@localhost identified by '任意のパスワード'; ← Cacti用データベースアクセスユーザ登録
Query OK, 0 rows affected (0.06 sec)

mysql> exit ← MySQLからログアウト
Bye

[root@centos ~]# mysql -u cactiuser -p cacti < /var/www/cacti/cacti.sql ← Cacti用データベース初期化
Enter password: ← Cacti用データベースアクセスユーザのパスワード応答

(2)Cacti設定
[root@centos ~]# vi /var/www/cacti/include/config.php ← Cactiデータベース設定ファイル編集
$database_password = "cactiuser";
↓
$database_password = "パスワード"; ← Cacti用データベースアクセスユーザのパスワードを指定

(3)Apache設定
[root@centos ~]# vi /etc/httpd/conf.d/cacti.conf ← Cacti用Apache設定ファイル編集
【CentOS7の場合】
Alias /cacti/ /var/www/cacti/
<Directory /var/www/cacti/>
        DirectoryIndex index.php
        Options -Indexes
        AllowOverride all
        Require local
        Require ip 192.168.1.0/24 ← 追加(内部ネットワークからのアクセスを許可)
        AddType application/x-httpd-php .php
        php_flag magic_quotes_gpc on
        php_flag track_vars on
</Directory>

【CentOS6,5の場合】
Alias /cacti/ /var/www/cacti/
<Directory /var/www/cacti/>
        DirectoryIndex index.php
        Options -Indexes
        AllowOverride all
        order deny,allow
        deny from all
        allow from 127.0.0.1
        Allow from 192.168.1.0/24 ← 追加(内部からCactiにアクセスできるようにする)
        AddType application/x-httpd-php .php
        php_flag magic_quotes_gpc on
        php_flag track_vars on
</Directory>

[root@centos ~]# /etc/rc.d/init.d/httpd reload ← Apache設定反映
httpd を再読み込み中:                                      [  OK  ]

(4)Cacti初期設定
Webブラウザからhttp://サーバー名/cacti/へアクセスする。



Next



New InstallのままNext



各種コマンドへのパスが[FOUND]と表示されていることを確認してFinish



User Nameにadmin、Passwordにadminと入力してLogin



Passwordに任意の管理者パスワード、confirmに同じパスワードを入力してSave



Devices⇒Localhost
SNMP VersionでVersion 1を選択
SNMP Communityにprivateと入力
save

(5)ネットワークトラフィックグラフ追加
consoleタブ
Devices⇒Localhost⇒Associated Data QueriesのAdd Data Query:でSNMP - Interface Statisticsを選択してadd
New Graphs⇒Data Query [SNMP - Interface Statistics]-任意のName (IF-MIB)(例:eth0)をチェックしてcreate

(6)ディスク使用状況グラフ追加
consoleタブ
New Graphs⇒Data Query [Unix - Get Mounted Partitions]-任意のMount Pointをチェックしてcreate

(7)CPU使用率グラフ追加
consoleタブ
Devices⇒Localhost⇒Associated Graph TemplatesのAdd Graph Template:でucd/net - CPU Usageを選択してadd
New Graphs⇒Graph TemplatesのCreate: ucd/net - CPU Usageをチェックしてcreate

(8)不要グラフ削除
consoleタブ
Graph Management
削除したいグラフ(例:Localhost - Logged in Users )をチェック
Choose an action:でDeleteを選択してgo

■Cacti確認

約10分後graphsタブをクリックしてグラフが表示されることを確認。

■HTML作成

公開用にグラフをHTML化する。

(1)Apache設定
[root@centos ~]# mkdir /var/www/cactihtml ← HTML作成先ディレクトリ作成

[root@centos ~]# chown cacti:cacti /var/www/cactihtml/ ← HTML作成先ディレクトリ所有者変更

[root@centos ~]# echo Alias /cactihtml /var/www/cactihtml > /etc/httpd/conf.d/cactihtml.conf ← Apache設定ファイル作成

[root@centos ~]# /etc/rc.d/init.d/httpd reload ← Apache設定反映
httpd を再読み込み中:                                      [  OK  ]

(2)Cacti設定
Webブラウザからhttp://サーバー名/cacti/へアクセスする。

consoleタブ
Settings
Graph Export
Export MethodでClassic(local path)を選択
Export Directory (both local and ftp)に/var/www/cactihtmlと入力
Export timingでClassic(export every x times)を選択
save

■HTML確認

約10分後Webブラウザからhttp://サーバー名/cactihtml/へアクセスしてグラフが表示されることを確認。

■ハードディスク使用量監視設定

Cactiのプラグインを導入してハードディスク使用量を監視し、規定値を超えたら管理者宛にメール通知するようにする。

(1)cacti-plugin-archインストール
[root@centos ~]# wget http://cactiusers.org/downloads/cacti-plugin-arch.tar.gz ← cacti-plugin-archダウンロード

[root@centos ~]# tar zxvf cacti-plugin-arch.tar.gz ← cacti-plugin-arch展開

[root@centos ~]# rpm -q cacti ← Cactiバージョン確認
cacti-0.8.7-1.el5.rf

[root@centos ~]# cp cacti-plugin-arch/cacti-plugin-0.8.7a-PA-v1.4.diff /var/www/cacti
 ← Cactiバージョンに該当するパッチをCactiインストール先ディレクトリへコピー

[root@centos ~]# cd /var/www/cacti/ ← Cactiインストール先ディレクトリへ移動

[root@centos cacti]# /bin/mv include/plugins.php include/plugins.php.bak

[root@centos cacti]# /bin/mv plugins/index.php plugins/index.php.bak

[root@centos cacti]# patch -p1 -N < cacti-plugin-0.8.7a-PA-v1.4.diff ← cacti-plugin-archパッチ施行
patching file auth_changepassword.php
patching file auth_login.php
patching file data_sources.php
patching file graph_image.php
patching file graph.php
patching file graphs_new.php
patching file graphs.php
patching file host.php
patching file include/auth.php
patching file include/global_arrays.php
patching file include/global_form.php
patching file include/global.php
patching file include/global_settings.php
patching file include/plugins.php
patching file include/top_graph_header.php
patching file include/top_header.php
patching file index.php
patching file lib/api_device.php
patching file lib/functions.php
patching file lib/html_form.php
patching file lib/html.php
patching file lib/html_tree.php
patching file lib/poller.php
patching file lib/rrd.php
patching file lib/variables.php
patching file plugins/index.php
patching file poller.php
patching file user_admin.php
patching file utilities.php

[root@centos cacti]# cd ← ホームディレクトリへ戻る

[root@centos ~]# rm -rf cacti-plugin-arch ← cacti-plugin-arch展開先ディレクトリを削除

[root@centos ~]# rm -f cacti-plugin-arch.tar.gz ← ダウンロードしたファイルを削除

(2)settingsインストール
[root@centos ~]# wget http://cactiusers.org/downloads/settings.tar.gz ← settingsダウンロード

[root@centos ~]# tar zxvf settings-*.tar.gz ← settings展開

[root@centos ~]# /bin/cp -r settings /var/www/cacti/plugins/ ← settings展開先ディレクトリをプラグイン格納ディレクトリへコピー

[root@centos ~]# rm -rf settings ← settings展開先ディレクトリを削除

[root@centos ~]# rm -f settings-*.tar.gz ← ダウンロードしたファイルを削除

(3)tholdインストール
[root@centos ~]# wget http://cactiusers.org/downloads/thold.tar.gz ← tholdダウンロード

[root@centos ~]# tar zxvf thold-*.tar.gz ← thold展開

[root@centos ~]# /bin/cp -r thold /var/www/cacti/plugins/ ← thold展開先ディレクトリをプラグイン格納ディレクトリへコピー

[root@centos ~]# mysql -u cactiuser -p < /var/www/cacti/plugins/thold/thold.sql cacti ← Cactiデータベースへthold設定を追加
Enter password: ← Cacti用データベースアクセスユーザのパスワード応答

[root@centos ~]# rm -rf thold ← thold展開先ディレクトリを削除

[root@centos ~]# rm -f thold-*.tar.gz ← ダウンロードしたファイルを削除

[root@centos ~]# vi /var/www/cacti/include/global.php ← Cacti設定ファイル編集
$plugins = array();
$plugins[] = 'settings'; ← 追加
$plugins[] = 'thold'; ← 行頭の//を削除

$config['url_path'] = '/cacti/'; ← パスを変更

(4)thold設定
consoleタブ
Threshold Templates⇒Add⇒Please select a Data TemplateでUnix - Hard Drive Spaceを選択してgo
Please select a Data Fieldでhdd_usedを選択してgo
High Thresholdに閾値(例:ハードディスク使用率が90%を超えたら警告メールを送信するようにする場合は、ハードディスクサイズ×0.9の値をバイト単位で)入力※閾値を超えた場合にメールが届くか確認する場合は1を入力
Alert E-Mailに管理者メールアドレスを入力してsave
Devices⇒Localhost⇒Create Graphs for this Host⇒Auto-create thresholds

■ハードディスク使用量監視確認

約10分後threshldタブをクリックしてCurrent欄に現在のハードディスク使用量が表示されることを確認。

■Cactiの自動アップデート無効化

yumにより自動アップデートされるとプラグインが無効になってしまうので、Cactiをyumによる自動アップデート対象外にする。
yumによる自動アップデートを無効化するには参照

アップデート検知時は、手動でCactiアップデート(yum -y update cacti後、http://サーバー名/cacti/へアクセスしてウィザードに従ってアップグレード)&「■ハードディスク使用量監視設定」を行う。



▲このページのトップへ戻る

LPIロゴ Copyright© 2005-2017 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします