Sensuは、インフラストラクチャとアプリケーションの状態を監視するために使用される無料のオープンソースツールです。これはRubyで記述されており、RabbitMQを使用してメッセージを処理し、Redisを使用してデータを保存します。 Ubuntu、Debian、RHEL、CentOS、IBM、AIX、FreeBSD、Mac OS、Solaris、Windowsなどを含むほとんどのオペレーティングシステムにインストールできます。これは、Zabbix、Icinga、Nagiosなどの他の監視システムに代わる最も人気のある次世代プラットフォームの1つです。 Sensuはクライアントサーバーモデルを使用しています。監視する各システムにsensuクライアントをインストールするだけで済みます。
このチュートリアルでは、Sensu監視サーバーをUbuntu20.04サーバーにインストールする方法を示します。
- Ubuntu20.04を実行しているサーバー。
- ルートパスワードがサーバーに設定されます。
まず、システムを最新の安定バージョンに更新する必要があります。これを行うには、次のコマンドを使用してすべてのシステムパッケージを更新します。
apt-get update -y
システムが更新されたら、次のコマンドを使用して他の依存関係をインストールします。
apt-get install gnupg2 curl wget unzip -y
すべてのパッケージがインストールされたら、次のステップに進むことができます。
RedisとRabbitMQをインストールする
SensuはRabbitMQを使用してメッセージを処理し、Redisを使用してデータを保存します。したがって、両方のパッケージをシステムにインストールする必要があります。デフォルトでは、RabbitMQはUbuntu20.04のデフォルトリポジトリでは使用できません。そのため、システムにRabbitMQリポジトリを追加する必要があります。
まず、次のコマンドを使用してGPGキーをインポートします。
wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | apt-key add -
次に、次のコマンドを実行してリポジトリを追加します。
echo "deb http://binaries.erlang-solutions.com/debian $(lsb_release -cs) contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list
次に、リポジトリを更新し、次のコマンドを使用してRabbitMQパッケージをインストールします。
apt-get update -y
apt-get install rabbitmq-server -y
インストールしたら、Sensu用のRabbitMQ仮想ホストを作成する必要があります。次のコマンドで作成できます:
rabbitmqctl add_vhost /sensu
次の出力が表示されます。
Adding vhost "/sensu" ...
次に、次のコマンドを使用して、仮想ホストを管理するユーザーを作成します。
rabbitmqctl add_user sensu password
次の出力が表示されます。
Adding user "sensu" ...
次に、vhost/sensuに完全なアクセス許可を割り当てる必要があります。
rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"
次の出力が得られるはずです:
Setting permissions for user "sensu" in vhost "/sensu" ...
次に、次のコマンドを使用してRedisサーバーをインストールします。
apt-get install redis-server -y
インストールが完了したら、次のコマンドを使用してRedisサービスを開始し、システムの再起動時にサービスを開始できるようにします。
systemctl start redis-server
systemctl enable redis-server
終了したら、次のステップに進むことができます。
デフォルトでは、SensuはUbuntu公式リポジトリでは利用できません。そのため、システムにSensuリポジトリを追加する必要があります。
まず、次のコマンドを使用してリポジトリのGPGキーをインポートします。
wget -O- https://sensu.global.ssl.fastly.net/apt/pubkey.gpg | apt-key add -
次に、次のコマンドを使用してリポジトリを追加します。
echo "deb https://sensu.global.ssl.fastly.net/apt bionic main" | tee /etc/apt/sources.list.d/sensu.list
リポジトリが追加されたら、リポジトリを更新し、次のコマンドを使用してSensuをインストールします。
apt-get update -y
apt-get install sensu -y
Sensuをインストールしたら、次のステップに進むことができます。
次に、RabbitMQ、Redis、およびApiの構成ファイルを作成する必要があります。まず、次のコマンドを使用してapi.jsonファイルを作成します。
nano /etc/sensu/conf.d/api.json
次の行を追加します:
{ "api": { "host": "localhost", "bind": "0.0.0.0", "port": 4567 } }
ファイルを保存して閉じてから、次のコマンドを使用してredis.jsonファイルを作成します。
nano /etc/sensu/conf.d/redis.json
次の行を追加します:
{ "redis": { "host": "127.0.0.1", "port": 6379 } }
ファイルを保存して閉じてから、次のコマンドを使用してRabbitMQ構成ファイルを作成します。
nano /etc/sensu/conf.d/rabbitmq.json
次の行を追加します:
{ "rabbitmq": { "host": "127.0.0.1", "port": 5672, "vhost": "/sensu", "user": "sensu", "password": "password" } }
終了したら、ファイルを保存して閉じます。
Sensuダッシュボードのインストールと構成
次に、Uchiwaダッシュボードをシステムにインストールする必要があります。 Uchiwaは、Webインターフェイスを介してSensuを監視するためのオープンソースダッシュボードです。
次のコマンドで内和をインストールできます:
apt-get install uchiwa -y
Uchiwaをインストールした後、次のコマンドを使用してUchiwaの構成ファイルを作成します。
nano /etc/sensu/uchiwa.json
次の行を追加します:
{ "sensu": [ { "name": "Sensu", "host": "127.0.0.1", "port": 4567, "timeout": 10 } ], "uchiwa": { "host": "0.0.0.0", "port": 3000, "refresh": 10 } }
終了したら、ファイルを保存して閉じます。
次に、Sensuサーバー自体を監視するためにclient.jsonファイルを作成する必要があります。次のコマンドで作成できます:
nano /etc/sensu/conf.d/client.json
次の行を追加します:
{ "client": { "name": "sensu-server", "address": "127.0.0.1", "environment": "management", "subscriptions": [ "dev", "ubuntu" ], "socket": { "bind": "127.0.0.1", "port": 3030 } } }
終了したら、ファイルを保存して閉じます。
次に、次のコマンドを使用して、Sensuサーバー、Api、Uchiwa、およびSensuクライアントサービスを開始します。
systemctl start sensu-server
systemctl start sensu-api
systemctl start uchiwa
systemctl start sensu-client
すべてのサービスが開始されたら、次のコマンドを使用してすべてのサービスのステータスを確認できます。
systemctl status sensu-server sensu-api sensu-client uchiwa
次の出力が得られるはずです:
? sensu-server.service - sensu server Loaded: loaded (/lib/systemd/system/sensu-server.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2020-08-23 09:04:43 UTC; 4min 18s ago Main PID: 10031 (sensu-server) Tasks: 24 (limit: 2353) Memory: 20.6M CGroup: /system.slice/sensu-server.service ??10031 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-server -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/ext> Aug 23 09:04:43 ubuntu2004 systemd[1]: Started sensu server. ? sensu-api.service - sensu api Loaded: loaded (/lib/systemd/system/sensu-api.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-08-23 09:04:42 UTC; 4min 19s ago Main PID: 10023 (sensu-api) Tasks: 2 (limit: 2353) Memory: 18.9M CGroup: /system.slice/sensu-api.service ??10023 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-api -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/extens> Aug 23 09:04:42 ubuntu2004 systemd[1]: Started sensu api. ? sensu-client.service - sensu client Loaded: loaded (/lib/systemd/system/sensu-client.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2020-08-23 09:04:42 UTC; 4min 18s ago Main PID: 10027 (sensu-client) Tasks: 2 (limit: 2353) Memory: 17.0M CGroup: /system.slice/sensu-client.service ??10027 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-client -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/ext> Aug 23 09:04:42 ubuntu2004 systemd[1]: sensu-client.service: Succeeded. Aug 23 09:04:42 ubuntu2004 systemd[1]: Stopped sensu client. Aug 23 09:04:42 ubuntu2004 systemd[1]: Started sensu client. ? uchiwa.service - LSB: Uchiwa, a Sensu dashboard. Loaded: loaded (/etc/init.d/uchiwa; generated) Active: active (exited) since Sun 2020-08-23 09:04:41 UTC; 4min 19s ago
終了したら、次のステップに進むことができます。
次に、Webブラウザーを開き、URL http:// your-server-ip:3000を入力します。次の画面にSensuダッシュボードが表示されます。
次に、クライアントをクリックします 左ペインのアイコン。次の画面にSensuクライアントのステータスが表示されます。
おめでとう!これで、Ubuntu20.04サーバーにSensuとUchiwaが正常にインストールおよび構成されました。これで、Uchiwaダッシュボードからクライアントを追加して監視を開始できます。ご不明な点がございましたら、お気軽にお問い合わせください。