Cactiモニタリングシステムの構築


  1:  Cacti    
  2:  Cacti    

1ケース1:Cacti監視プラットフォームの導入1.1問題
このケースでは、Cacti監視ホストを1台配備し、関連監視コンポーネントをインストールし、具体的な監視タスクをさらに実行するために準備する必要があります.
  net-snmp、net-snmp-utils
  LAMP        
  Cacti    
       

1.2シナリオ
RHEL 7仮想マシン1台を使用して、LAMP環境、Cactiおよび関連するsnmpコンポーネントパッケージをインストールして配置し、データベースを構成し、Cacti監視プラットフォームを初期化します.1.3手順
このケースを実装するには、次の手順に従います.
手順1:基本パッケージの準備
1)LAMPインストール環境
CactiモニタはWebページで表示する必要があり、MySQLを使用して変数データを格納する必要があるため、CactiのベースLAMP環境を準備する必要があります.Cactiは他のホストデータを監視する際にsnmpプロトコルを使用するため、net-snmpとnet-snmp-utilsパッケージをインストールする必要があります.
[root@svr5 ~]# yum -y install httpd php php-mysql php-ldap \
>php-xml mysql mysql-server net-snmp net-snmp-utils  lm_sensors
[root@svr5 ~]# service httpd start;chkconfig httpd on        //  httpd  
[root@svr5 ~]# service mysqld start;chkconfig mysqld on        //  mysqld  
[root@svr5 ~]# mysqladmin -u root password '111'            //          

2)ソースコードインストールRRDTool
Cactiモニタリングのデータ格納と描画機能は主にソフトウェアに依存し、ソフトウェアがなければCactiはモニタリングデータを格納してモニタリング画像を描画できない.
[root@svr5 ~]# tar zxf rrdtool-1.4.5.tar.gz
[root@svr5 ~]# cd rrdtool-1.4.5
[root@svr5 rrdtool-1.4.5]# ./configure --prefix=/usr/local
[root@svr5 rrdtool-1.4.5]# make && make install

手順2:Cactiスイートの導入
1)Cactiパッケージの展開
CactiはPHPによって開発されたWebページキットであり、PHPコードはsnmpプロトコルを用いてモニタリングデータを取得し、RRDToolに代わってデータを格納し、モニタリング画像を描画するので、ベースLAMP環境のインストールが完了した後、まずCactiパッケージをWebサービスのWebルートの下に解凍する必要がある.
[root@svr5 ~]# tar zxf cacti-0.8.7g.tar.gz
[root@svr5 ~]# mv cacti-0.8.7g/ /var/www/html/cacti
[root@svr5 ~]# cd /var/www/html/cacti
[root@svr5 cacti]# useradd cactiuser
[root@svr5 cacti]# chown -R root.root ./
[root@svr5 cacti]# chown -R cactiuser.cactiuser rra/  log/

2)データベースの作成と初期化
CactiはMySQLを使用して一部の動的データを格納する必要があります.ここではCactiにデータベースを作成し、Cactiで事前に準備したデータファイルを使用してデータベースを初期化する必要があります.
[root@svr5 cacti]# mysql -u root -p
Enter password:                                        //           
mysql> CREATE DATABASE cactidb DEFAULT CHARACTER SET utf8;  //     
mysql> GRANT all ON cactidb.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'pwd123';    //       
mysql> QUIT
[root@svr5 cacti]# mysql -u cactiuser -p cactidb < cacti.sql  //      

3)CactiのPHPソースファイルを修正し、データベース名及び関連口座情報を指定する.
[root@svr5 ~]# cd /var/www/html/cacti
[root@svr5 cacti]# vim include/config.php

[root@localhost cacti]# vi lib/functions.php

4)httpプロファイルを調整し、ルートパスを再定義する
httpdプロファイルでは、DocumentRoot「/var/www/html」文を使用してWebサイトのページルートパスを定義します.デフォルトパスは/var/www/html/、ここでは/var/www/html/cactiに変更する必要があります.
[root@svr5 ~]# vim /etc/httpd/conf/httpd.conf
.. ..
DocumentRoot "/var/www/html/cacti"
.. ..

5)Cactiモニタページにアクセスし、初期化設定を行う
最初にCactiにログインするには、主にいくつかの主要な依存プログラムの格納場所を設定する簡単な初期化操作が必要です.2ケース2:Cactiモニタリングシステムの構築2.1問題
練習1に沿って、監視クライアントホストにnet-snmpをインストールし、監視権限を設定し、Cactiサービス側の構成を調整することで、以下の目標を実現する.
  192.168.1.200   Cacti  
    、  、    Linux   
       CPU  、    、    
    root@localhost

2.2シナリオ
Linux仮想マシン4台、Cactiモニタリングシステム1台、サーバとして同時にモニタリング対象となる3台を用意し、トポロジーを図-1に示す.
図-1
実験は練習1の成果に沿って、cactiモニタリングプラットフォームの配置が完了し、現在、すべてのモニタリングノードにnet-snmpをインストールし、プロファイルを修正することでモニタリング権限を設定する必要がある.2.3手順
このケースを実装するには、次の手順に従います.
ステップ1:監視対象ホストの設定
注意:すべての監視ホストはcacti監視サーバが自機から監視データを抽出することを許可するため、すべての監視ホストは以下の操作を行う必要があります.以下、ゲートウェイサーバを例に挙げます.
1)net-snmpソフトウェアのインストール
Cactiが他のホストを監視するのは、単純なネットワーク管理プロトコル(SNMP)を通じて被監視側データ情報を収集するため、被監視側サーバはnet-snmpおよびlm_をインストールする必要があるsensors.lm_sensorsソフトウェアは、CPUの動作電圧などのハードウェア情報のデータを監視するのに役立ちます.
[root@router ~]# yum -y install net-snmp lm_sensors 

2)snmpプロファイルの変更
SNMPプロファイルは主に4つの部分の内容を修正する必要があり、第1のステップは通信名をセキュリティユーザー名にマッピングし、第2のステップはユーザーをグループに追加し、第3のステップはグループにアクセスビューの権限を与え、第4のステップはallビューを定義する.プライマリプロファイルの設定が完了した後、サービスを再起動すると、クライアントがサーバにアクセスしてシステム情報を取得でき、SNMPが使用するポート番号はUDP 161ポートおよびTCP 199ポートである.
[root@router ~]# vim /etc/snmp/snmpd.conf
……
com2sec notConfigUser  192.168.1.200    public    //           
group   notConfigGroup v1           notConfigUser    //      
group   notConfigGroup v2c           notConfigUser
access  notConfigGroup ""  any   noauth   exact  all none none  //  notConfigGroup  all       
view all    included  .1        80                //  all       
……
[root@router ~]# service snmpd start;chkconfig snmpd on

3)SNMPサービスの稼働状態を確認し、ファイアウォールを設定する
デフォルトのSNMPはudpの161ポートとtcpの199ポートをリスニングし、netstatコマンドでポートのリスニング状態を表示し、ファイアウォールルールを設定して2つのポートのインバウンドデータを許可します.
[root@router ~]# netstat -anpu | grep "snmpd"
udp       0      0  0.0.0.0:161      0.0.0.0:*        16452/snmpd
[root@router ~]# iptables -I INPUT -p udp --dport 161 -j ACCEPT
[root@router ~]# iptables -I INPUT -p tcp --dport 199 -j ACCEPT
[root@router ~]# service iptables save

ステップ2:Cactiモニタサーバの設定
注意:この練習例では、3台の被監視端末ホストをCactiシステムに追加する必要があります.ここでは、Webサーバを例にモニタリング対象を追加し、モニタリング画像を生成します.他のモニタノードは、関連する操作を行えばよい.
1)モニタホストの追加
Webコンソールにログイン(http://192.168.1.200)、デフォルトの管理アカウント、パスワードはadminで、初回ログイン時にパスワードのリセットを強制する必要があります.監視対象ホストを追加する場合は、ターゲットアドレスを設定し、ホストテンプレートを正しく選択し、コミュニティ名を設定する必要があります.
Webコンソールにログインし、Devicesメニューに入ったら、図-2に示すように、Addをクリックして被監視ホストを追加します.この時システムは関連するフォーム情報を記入することを要求して、記入する必要があるプロジェクトのパラメータの説明は表-1を見て、必要なプロジェクトのフォームを記入した後に右下のCreateをクリックして新しい設備のホストを作成することができて、同時に下で図形のテンプレートとデータの照会のテンプレートが現れて、管理者は実際の必要に応じて引き続き監視する必要があるパラメータの対象を追加することができて、確定したらSaveをクリックしてすべての設定を保存し、効果は図-3に示します.
/
図-2
表-1項目パラメータ説明表
図-3
2)モニタ画像の作成
以上の操作により、デバイスホストおよびモニタリングが必要なパフォーマンス指標の作成が完了しました.次に、New GraphsメニューからWebサーバのグラフィックを作成する必要があります.新しいグラフィックインタフェースに入った後、Hostリストで前のステップで追加したデバイスホストを選択し、モニタリングが必要なパフォーマンステンプレートの後にチェックを選択し、設定が完了したら、図-4に示すように、Createを選択してモニタリング対象デバイスにグラフィックを追加します.
図-4
3)モニタイメージツリーの作成
Cactiモニタリングシステムは最終的に木のリストを通じて被モニタリングホストの性能図形を表示し、私たちは複数の図形ツリーを作成することができ、各図形ツリーの下に複数のデバイスホストの図形情報を挿入することができる.Cacti初期状態にはDefaultというグラフィックツリーがあり、この例では新しいグラフィックツリーを作成し、モニタされたホストのグラフィックを追加します.Graph Treesメニューをクリックすると、グラフィックツリーの設定画面が開きます.図-5に示すように、Addを選択して新しいグラフィックツリーを追加し、Name(グラフィックツリー名)を入力するよう求めたらCreate(作成)をクリックします.この例ではWebという名前に設定します.Graph TreesインタフェースにDefaultとWebの2本のグラフィックツリーが表示されます.Webツリーにアクセスするには、図-6に示すように、前の操作で作成したグラフィックを追加するには、Addボタンを選択します.
図-5
図-6
4)監視サーバーは定期的に監視されるホスト情報を収集する
Cactiモニタサーバは、SNMPを介してデータ情報を収集し、最終的にグラフィックウィンドウを生成する必要があります.Cactiパッケージには、データを収集するためのPHPスクリプトがすでに用意されています.デフォルトのCactiシステムでは、5分ごとにデータを収集する必要があります.管理者は、タスクを計画することによって、5分ごとにスクリプトを実行するか、手動でスクリプトを実行してすぐにデータを同期することができます.
5)モニタページ効果の表示
最後に、Cactiプラットフォームのgraphsタブからグラフィックウィンドウに入ります.このウィンドウはツリー状に表示されます.例では、Webというグラフィックツリーを作成し、Webツリーの下に監視対象ホストのグラフィックを3台追加し、最終的には図-7に示すように表示されます.
[root@cacti ~]# crontab -e
*/5 * * * * /usr/local/php5/bin/php /usr/local/apache2/htdocs/cacti/poller.php

図-7
ステップ3:メールアラームメカニズムを実現する
1)プラグインパッチのインストール
[root@cacti ~]# tar -xzf cacti-plugin-0.8.7g-PA-v2.9.tar.gz
[root@cacti ~]# mv cacti-plugin-arch /var/www/html/cacti/
[root@cacti ~]# cd /var/www/html/cacti
[root@cacti cacti]# patch \
> -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.9.diff  //   
[root@cacti cacti-plugin-arch]# pwd
/var/www/html/cacti/cacti-plugin-arch
[root@cacti cacti-plugin-arch]# mysql –u cactiuser –ppwd123 cactidb 

2)プロファイルを修正し、データベース情報を正しく設定する
[root@cacti cacti]# vim /var/www/html/cacti/include/global.php
$database_type = "mysql"
$database_default = "cactidb"
$database_hostname = "localhost"
$database_username = "cactiuser"
$database_password = "pwd123"
$database_port = "3306"
[root@cacti cacti]# vim /var/www/html/cacti/include/config.php
$url_path = "/cacti/"

3)権限の変更
デフォルトのadminアカウントはプラグイン機能をオンにしていません.図-8に示すように、「User Management」メニューをクリックし、リフレッシュされたページで「admin」アカウントを見つける必要があります.adminアカウント設定ページにアクセスするには、をクリックします.[Realm Permissions]タブの下にある[Plugin Management]を見つけ、図-9に示すように、チェックを押してアカウントプラグインの管理権限を付与します.
図-8
図-9
4)メールアラームカードのインストール
プラグインはPHPソースファイルで、解凍してCactiディレクトリにコピーすればよい.
[root@cacti ~]# tar -xzf thold-v0.4.9-3.tgz
[root@cacti ~]# tar -xzf setting-v0.71-1.tgz
[root@cacti ~]# tar –xzf monior-v1.3-1.tgz
[root@cacti ~]# mv monitor settings thold /var/www/html/cacti/plugins

WebコンソールをリフレッシュしてPlugin Managementページの内容を図-10に示します.次に、プラグイン名の左にあるアイコン(下矢印)をクリックしてインストールする必要があります.
図-10
5)Tholdプラグインの有効化
まず、アラームメールリストを定義し、「Notification Lists」をクリックし、リフレッシュされたページで「Add」ボタンをクリックし、ポップアップページにアラーム通知のメールアカウントリストを図-11に示すように記入する必要がある.
図-11
次に、図−12に示すように、メールを送信するサーバを設定する必要がある.
図-12
6)Tholdを使用して具体的なオブジェクトパラメータを監視する
Webサーバの/bootスペースを監視し、パーティションの使用済みスペースが80 M以上に達した場合、メールアラームを送信します.
「Thresholds」をクリックし、ポップアップページで「Add」ボタンを選択して被監視ホストおよび監視画像を追加し、具体的なアラームパラメータ設定を図-13~図-15に示します.
図-14
図-15
7)検証
Webサービス上で/bootパーティションに大きなファイルを書き込み、そのパーティションの使用スペースが80%を超え、アラームが正しく動作しているかどうかをテストします.