内容

概要

前提条件

要件

使用するコンポーネント

背景説明

設定

Epelリポジトリのインストール

Erlangのインストール

Redis、RabbitMQのインストール、およびRabbitMQの設定

Sensuリポジトリの登録

Sensuのインストールと設定

Sensuサービスの有効化

うちわの設置と設定

サーバが稼働しているかどうかを確認する

チェックの設定

Sensuの再起動

アクションスクリプトの更新

送信アクションの作成

関連情報

概要

このドキュメントでは、サーバにワーカーの仮想マシン(VM)を追加または削除するようにSenseサーバとCloudCenter上のその他のアクションを設定する方法について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- 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つのチェックから詳細情報が表示されます。

アクションスクリプトの更新

1. Sense.zipをダウンロードします。

2. ファイルを解凍します。

3. sensuinstall.shを編集します。

4. 回線ホストを「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)から削除するだけです。

関連情報

- 千須

- アクションライブラリ

- テクニカル サポートとドキュメント – Cisco Systems