概要
このドキュメントでは、サーバにワーカーの仮想マシン(VM)を追加または削除するようにSenseサーバとCloudCenter上のその他のアクションを設定する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
背景説明
扇子(せんすう)とは、機械のさまざまな側面を監視するプログラムです。CloudCenterに組み込むことで、導入されているVMのモニタリング機能を向上させることができます。このチュートリアルは、SensuをCloudCenterと統合してアクションを使用する方法を示す例として設計されています。
設定
これは、インターネットに直接アクセスできるCentOS 7 VM上で動作するように設計されています。プロキシに接続する必要がある場合は、先に進む前にその設定を実行します。
着信および発信に対して次のポートを開きます。3000、3030、4567、5671、5672、6379.
Sensuサーバに固定IPアドレスがあることを確認します。
注:コードブロック内にあるものはすべて、コピーして端末に貼り付けるように設計されています。
Epelリポジトリのインストール
sudo yum -y install epel-release
Erlangのインストール
sudo yum -y install erlang
Redis、RabbitMQのインストール、およびRabbitMQの設定
sudo rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
sudo rpm -Uvh http://www.rabbitmq.com/releases/rabbitmq-server/v3.4.1/rabbitmq-server-3.4.1-1.noarch.rpm
sudo rabbitmq-plugins enable rabbitmq_management
sudo yum -y install redis
sudo chkconfig redis on
sudo service redis start
sudo chkconfig rabbitmq-server on
sudo /etc/init.d/rabbitmq-server start
sudo rabbitmqctl add_vhost /sensu
sudo rabbitmqctl add_user sensu secret
sudo rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"
Sensuリポジトリの登録
echo '[sensu]
name=sensu-main
baseurl=http://repositories.sensuapp.org/yum/el/7/x86_64/
gpgcheck=0
enabled=1' |sudo tee /etc/yum.repos.d/sensu.repo
Sensuのインストールと設定
sudo yum -y install sensu
sudo rm -f /etc/sensu/config.json.example
echo '{
"api": {
"host": "localhost",
"bind": "0.0.0.0",
"port": 4567
}
}' |sudo tee /etc/sensu/conf.d/api.json
echo '{
"client": {
"name": "sensu-server",
"address": "127.0.0.1",
"environment": "sensu",
"subscriptions": [ "linux"],
"keepalive":
{
"handler": "mailer",
"thresholds": {
"warning": 250,
"critical": 300
}
},
"socket": {
"bind": "127.0.0.1",
"port": 3030
}
}
}' |sudo tee /etc/sensu/conf.d/client.json
echo '{
"rabbitmq": {
"host": "127.0.0.1",
"port": 5672,
"vhost": "/sensu",
"user": "sensu",
"password": "secret"
}
}' |sudo tee /etc/sensu/conf.d/rabbitmq.json
echo '{
"redis": {
"host": "127.0.0.1",
"port": 6379
}
}' |sudo tee /etc/sensu/conf.d/redis.json
echo '{
"transport": {
"name": "rabbitmq",
"reconnect_on_error": true
}
}' |sudo tee /etc/sensu/conf.d/transport.json
Sensuサービスの有効化
sudo chkconfig sensu-server on
sudo chkconfig sensu-client on
sudo chkconfig sensu-api on
sudo service sensu-server start
sudo service sensu-client start
sudo service sensu-api start
うちわの設置と設定
sudo yum -y install uchiwa
echo '{
"sensu": [
{
"name": "sensu",
"host": "localhost",
"port": 4567,
"timeout": 10
}
],
"uchiwa": {
"host": "0.0.0.0",
"port": 3000,
"refresh": 10
}
}' |sudo tee /etc/sensu/uchiwa.json
sudo chown uchiwa:uchiwa /etc/sensu/uchiwa.json
sudo chmod 664 /etc/sensu/uchiwa.json
sudo chkconfig uchiwa on
sudo service uchiwa start
サーバが稼働しているかどうかを確認する
[IPアドレス:3000/#/events
この時点で、Sensu-serverという名前のクライアントが1台あるはずです。
チェックの設定
echo '{
"checks": {
"check-cpu-linux": {
"handlers": ["mailer"],
"command": "/opt/sensu/embedded/bin/check-cpu.rb -w 80 -c 90 ",
"interval": 60,
"occurrences": 5,
"subscribers": [ "linux" ]
}
}
}' |sudo tee /etc/sensu/conf.d/check_cpu_linux.json
echo '{
"checks": {
"check-disk-usage-linux": {
"handlers": ["mailer"],
"type": "metric",
"command": "/opt/sensu/embedded/bin/check-disk-usage.rb",
"interval": 60,
"occurrences": 5,
"subscribers": [ "linux" ]
}
}
}' |sudo tee /etc/sensu/conf.d/check_disk_usage_linux.json
echo '{
"checks": {
"check_memory_linux": {
"handlers": ["mailer"],
"command": "/opt/sensu/embedded/bin/check-memory-percent.rb -w 80 -c 90 ",
"interval": 60,
"occurrences": 5,
"refresh": 1800,
"subscribers": [ "linux" ]
}
}
}' |sudo tee /etc/sensu/conf.d/check_memory_linux.json
sudo sensu-install -p cpu-checks
sudo sensu-install -p disk-checks
sudo sensu-install -p memory-checks
Sensuの再起動
sudo service sensu-client restart && sudo service sensu-server restart && sudo service sensu-api restart
1分後に、3つのチェックが表示されます。
Sensu-serverクライアントをクリックすると、そのデバイスの3つのチェックから詳細情報が表示されます。
アクションスクリプトの更新
- Sense.zipをダウンロードします。
- ファイルを解凍します。
- sensuinstall.shを編集します。
- 回線ホストを「SensuServerIP」に変更して、Sensu ServerのIPアドレスを設定します。
5. sensuuninstall.shを編集します。
6. curl -s -i -X DELETE http://SensuServerIP:4567/clients/$cliqrNodeHostnameの行を、Sensu ServerのIPアドレスに変更します。
7.変更したファイルをSense.zipに圧縮し直します。
8. CloudCenter Manager(CCM)が設定したリポジトリにアップロードします。
送信アクションの作成
「アクション・ライブラリ」にナビゲートし、「新規アクション」を選択します。
Type:コマンドまたはスクリプト
アクション名:Sensuの登録
説明:Sensuクライアントをインストールし、サーバに登録します
実行アクション:仮想マシンOS上
オブジェクトマッピング:
リソースタイプ:CloudCenterで導入されたVM
アプリケーションプロファイル:すべて
クラウド地域:すべて
クラウドアカウント:すべて
全サービス
リソースタイプ:インポートされたVM(エージェントがインストール済み)
クラウド地域:すべて
クラウドアカウント:すべて
OS Types:すべて
アクションの定義:
バンドルから実行:Yes
場所:アップロードしたリポジトリとSense.zipファイルへのパス
バンドルからのスクリプト:sensuinstall.sh
アクションを保存し、新しいアクションを作成します
Type:コマンドまたはスクリプト
アクション名:Sensuの登録解除
説明:Sensuクライアントを停止し、サーバへの登録を解除します
実行アクション:仮想マシンOS上
オブジェクトマッピング:
リソースタイプ:CloudCenterで導入されたVM
アプリケーションプロファイル:すべて
クラウド地域:すべて
クラウドアカウント:すべて
全サービス
リソースタイプ:インポートされたVM(エージェントがインストール済み)
クラウド地域:すべて
クラウドアカウント:すべて
OS Types:すべて
アクションの定義:
バンドルから実行:Yes
場所:アップロードしたリポジトリとSense.zipファイルへのパス
バンドルからのスクリプト:sensuuninstall.sh
アクションの保存
これらのアクションを導入されている任意のVMで使用して、Sensuサーバに登録し、登録解除することができます。unregisterはSensuクライアントをアンインストールせず、サービスを停止してサーバのデータベース(DB)から削除するだけです。
関連情報