「Ganglia」を使用した Linux サーバーのグリッドおよびクラスターのリアルタイム監視のセットアップ
システム管理者がサーバーやマシンのグループの管理を担当して以来、監視アプリケーションなどのツールは彼らの親友であり続けています。おそらく、Nagios、Zabbix、Icinga、Centreonなどのツールに精通しているでしょう。これらは監視の重要な部分ですが、それらを設定してその機能を最大限に活用することは、新しいユーザーにとってはやや難しいかもしれません。
この記事では、拡張が容易で、Linux サーバーとクラスターのさまざまなシステム メトリクス (およびグラフ) をリアルタイムで表示できる監視システムであるGanglia について紹介します。
Ganglia を使用すると、グリッド (場所) とクラスター (サーバーのグループ) を設定して、より適切に組織化できます。
したがって、リモート環境内のすべてのマシンで構成されるグリッドを作成し、それらのマシンを他の基準に基づいて小さなセットにグループ化できます。
さらに、Ganglia の Web インターフェイスはモバイル デバイス用に最適化されており、データを .csv
および .json
形式でエクスポートすることもできます。
テスト環境は、Ganglia をインストールする中央の CentOS 7 サーバー (IP アドレス 192.168.0.29) と、 Ubuntu 14.04 マシン (192.168.0.32)、Ganglia の Web インターフェイスを通じて監視するボックス。
このガイド全体を通じて、CentOS 7 システムをマスター ノードと呼び、Ubuntu ボックスを監視対象マシンと呼びます。
Ganglia のインストールと構成
監視ユーティリティをマスター ノードにインストールするには、次の手順に従います。
1. EPEL リポジトリを有効にして、そこから Ganglia と関連ユーティリティをインストールします。
yum update && yum install epel-release
yum install ganglia rrdtool ganglia-gmetad ganglia-gmond ganglia-web
上記の手順でインストールされたパッケージとアプリケーション自体の Ganglia は、次の機能を実行します。
rrdtool
(ラウンドロビン データベース) は、グラフを使用して時間の経過に伴うデータの変化を保存および表示するために使用されるツールです。ganglia-gmetad
は、 監視対象のホストから監視データを収集するデーモンです。これらのホストとマスター ノードにはganglia-gmond (監視デーモン自体) をインストールする必要もあります。ganglia-web
は、監視対象システムに関する履歴グラフとデータを表示する Web フロントエンドを提供します。
2. Ganglia Web インターフェイス (/usr/share/ganglia) の認証を設定します。 Apache が提供する基本認証を使用します。
より高度なセキュリティ メカニズムについて詳しく知りたい場合は、Apache ドキュメントの「認可と認証」セクションを参照してください。
この目標を達成するには、Apache によって保護されているリソースにアクセスするためのユーザー名を作成し、パスワードを割り当てます。この例では、adminganglia
というユーザー名を作成し、選択したパスワードを割り当てます。パスワードは /etc/httpd/auth.basic に保存されます (自由に変更できます)。別のディレクトリおよび/またはファイル名を選択します。Apache がそれらのリソースに対する読み取り権限を持っている限り、問題ありません)。
htpasswd -c /etc/httpd/auth.basic adminganglia
続行する前に、adminganglia のパスワードを 2 回入力してください。
3. /etc/httpd/conf.d/ganglia.conf を次のように変更します。
Alias /ganglia /usr/share/ganglia
<Location /ganglia>
AuthType basic
AuthName "Ganglia web UI"
AuthBasicProvider file
AuthUserFile "/etc/httpd/auth.basic"
Require user adminganglia
</Location>
4. /etc/ganglia/gmetad.conf を編集します。
まず、gridname ディレクティブを使用し、その後に設定しているグリッドのわかりやすい名前を指定します。
gridname "Home office"
次に、data_source の後にクラスター (サーバーのグループ) のわかりやすい名前、秒単位のポーリング間隔、マスター ノードと監視対象ノードの IP アドレスを使用します。
data_source "Labs" 60 192.168.0.29:8649 # Master node
data_source "Labs" 60 192.168.0.32 # Monitored node
5. /etc/ganglia/gmond.conf を編集します。
a) クラスター ブロックが次のようになっていることを確認します。
cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
b) udp_send_chanel ブロックで、mcast_join ディレクティブをコメント アウトします。
udp_send_channel {
#mcast_join = 239.2.11.71
host = localhost
port = 8649
ttl = 1
}
c) 最後に、mcast_join をコメント アウトし、udp_recv_channel ブロック内のディレクティブをバインドします。
udp_recv_channel {
#mcast_join = 239.2.11.71 ## comment out
port = 8649
#bind = 239.2.11.71 ## comment out
}
変更を保存して終了します。
6. ポート 8649/udp を開き、必要な SELinux ブール値を使用して PHP スクリプト (Apache 経由で実行) がネットワークに接続できるようにします。
firewall-cmd --add-port=8649/udp
firewall-cmd --add-port=8649/udp --permanent
setsebool -P httpd_can_network_connect 1
7. Apache、gmetad、および gmond を再起動します。また、起動時に起動できるように設定されていることを確認してください。
systemctl restart httpd gmetad gmond
systemctl enable httpd gmetad httpd
この時点で、http://192.168.0.29/ganglia
で Ganglia Web インターフェイスを開き、#ステップ 2 の認証情報を使用してログインできるようになります。
8. Ubuntu ホストには、 と同等の ganglia-monitor のみをインストールします。 CentOS の Ganglia-gmond:
sudo aptitude update && aptitude install ganglia-monitor
9. 監視対象ボックスの /etc/ganglia/gmond.conf ファイルを編集します。これは、クラスタ、udp_send_channel、およびudp_recv_channel 内のコメントアウトされた行を除き、マスター ノード内の同じファイルと同一である必要があります。 を有効にする必要があります。
cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
udp_send_channel {
mcast_join = 239.2.11.71
host = localhost
port = 8649
ttl = 1
}
udp_recv_channel {
mcast_join = 239.2.11.71 ## comment out
port = 8649
bind = 239.2.11.71 ## comment out
}
次に、サービスを再起動します。
sudo service ganglia-monitor restart
10. Web インターフェイスを更新すると、ホーム オフィス グリッド/ラボ クラスタ 内の両方のホストの統計とグラフが表示されるようになります ( ホーム オフィス グリッド の横にあるドロップダウン メニューを使用してクラスター (この場合は ラボ) を選択します。
メニュー タブ (上で強調表示) を使用すると、各サーバーに関する多くの興味深い情報に個別またはグループでアクセスできます。 [ホストの比較] タブを使用して、クラスター内のすべてのサーバーの統計を並べて比較することもできます。
正規表現を使用してサーバーのグループを選択するだけで、それらのパフォーマンスを簡単に比較できます。
私が個人的に最も魅力的だと思う機能の 1 つは、モバイル タブを使用してアクセスできるモバイル対応の概要です。関心のあるクラスターを選択してから、個々のホストを選択します。
まとめ
この記事では、サーバーのグリッドおよびクラスター向けの強力でスケーラブルな監視ソリューションであるGanglia を紹介しました。 Ganglia を好きなだけインストール、探索、遊んでみてください (ちなみに、プロジェクトの公式 Web サイトで提供されているデモで Ganglia を試すこともできます)。
その過程で、IT 業界の、またはそうでないいくつかの有名企業が Ganglia を使用していることにも気づくでしょう。この記事で共有した以外にも、その理由はたくさんあります。使いやすさと統計情報を伴うグラフ (名前に名前を付けるのは素晴らしいですね) がおそらくトップに位置しています。
ただし、私たちの言葉をただ鵜呑みにするのではなく、実際に試してみてください。ご不明な点がございましたら、下のコメント フォームを使用して遠慮なくお問い合わせください。