Pandora: Documentation ja: Omnishell
1 概要
インフラ管理に向けた最初のアプローチとして、Pandora FMS は、Omnishell を提供します。
コマンドまたはコマンドブロックを定義し、それらを実行する対象を選択できるツールです。
2 Omnishell
Omnishell では、リモート設定が有効になっている(バージョン 741 以降の)エージェントでコマンドまたはコマンドブロックを実行できます。
Omnishell は、Tentacle を介した Pandora FMS の異なるコンポーネント間の通信に基づいており、プログラムしたいコマンドの実行と応答を安全に実現します。
設定するためには、以下のパッケージのインストールが必要です。
php-yaml
この機能を利用したい全コンソールでは以下が必要です。
perl-YAML-Tiny
この機能を使用する場合は、Linux/Unix エージェントが必要です。
2.1 Tentacle の新オプション
Omnishell を追加すると、Tentacle の新たなオプションが有効化されます。
- Tentacleは、".rcmd" ファイルに対応できるように設定を変更する必要があります。
- これらは、コマンド定義ファイルです。定義をダウンロードして評価するのは、エージェント自身です。
- "プッシュ" 型のオペレーションはありません。
以下のファイルの設定を更新します。
/etc/tentacle/tentacle_server.conf
# Filters (regexp:dir,regexp:dir...) filters .*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.lock:trans;.*\.rcmd:commands
pandora_serverサーバーのインストール時に配布されるtentacle_server.conf.new</ b>ファイルを使用することもできます。
.rcmd ファイルは新しいフォルダ <b>/var/spool/pandora/data_in/commands で公開されます。
ハッシュは、コマンド定義の特定のパラメーターに基づいて使用されます。 Tentacle のインストールをセキュアにすることにより、セキュリティを改善できます。
https://pandorafms.com/docs/index.php?title=Pandora:Documentation_ja:Tentacle
このフォルダには、Pandora FMS サーバを管理するユーザとコンソールを管理するApache のアクセス許可が必要であることに注意してください。
chown pandora:apache -R /var/spool/pandora/data_in/commands chmod g+s /var/spool/pandora/data_in/commands
2.2 エージェントの更新
この機能は、Pandroa FMS エージェントのバージョン 741 以降に存在します。
正しく動作するためには、YAML::Tiny という perl ライブラリが必要です。このライブラリが無い場合は、この機能は無効化されて動作します。
ライブラリをインストールすることにより、この機能が有効化されます。エージェントを再起動する必要はなく、すぐに動作を開始します。
リモート設定を有効化する以外の変更は必要はありません。 Omnishell システムは、ファイルコレクションと同様の手順を使用します。
2.3 利用例
新しい Omnishell ツールの動作プロセスをより理解するために例を説明します。
問題: 目的は、CentOS 6 システムで HTTPD サービスの自動起動をまとめて設定することです。
- 前提条件は何か? サービスがインストール済みとして表示されることで、そうでない場合は次のようにインストールします。
例:
[ `rpm -qa | grep -i httpd | wc -l` -lt 1 ] || yum install -y httpd
この行は、サービスがインストールされているかどうかを確認し、インストールされていない場合はインストールします。
- 主なゴールは何か? HTTPD サービスを起動し自動起動設定をすることです。
これをするには、以下のコマンドを利用します。
/etc/init.d/httpd restart chkconfig httpd on
これにより、リモートマシンでサービスが開始され、サービスが起動するように構成されます。
- 何が行われたか検証する方法は? システムがサービスを有効化し、リッスンしていることを確認します。
[ `netstat -lptn | grep 80 | grep LISTEN | wc -l` -gt 0 ]
エージェントが実行する必要のあるアクションが明確になったら、Omnishell でコマンドを作成します。
コマンドを作成したら、必要なエージェントを割り当てます。
コマンド実行の進捗は、選択したエージェントで見ることができます。
表示画面で、コマンド実行の予測残り時間を見ることができます。
大量のコマンド実行を適用すると、表示はつぎのようになります。
エージェントの応答を受信すると実行結果が表示されます。 ボックスをクリックすると、追加情報を含む画面が表示されます。
2.4 コメント
- エージェントは、それぞれのブロックのそれぞれの要求を実行します。
- 各要求の評価が 0 (error_level!= 0) でない場合、評価を停止しコマンドは失敗したと見なされます。
- エージェントは、再試行回数と最大実行時間として、リトライパラメータとタイムアウトパラメータの値を利用します。
- 結果に関係なく、エージェントは実行済状態を保存します。 各コマンドは1回だけ実行されます。
- コマンドの名前を更新すると、参照先が変更されるため、エージェントはコマンドを再度実行します。
- 同じエージェントに必要な数のコマンドを割り当てることができます。
- エージェントコマンドの実行は、監視に影響する場合があります。 エージェント間隔よりも長いタイムアウトを使用しないでください。