Tech Sketch Bucket of Technical Chips by TIS Inc.

Sensu+Uchiwaをインストールしてみた

Pocket

ITmedia @ITでOSS運用監視製品の比較記事の執筆をさせて頂いた。

記事の執筆にあたり、オープンソースのシステム監視ソフトウェアのSensuおよび
監視結果を参照するダッシュボードのUchiwaを実際にインストールし動作を確認する検証を実施した。
その実際に行った構築手順をまとめたものが以下である。

インストールの為に以下のサイトを参考とさせて頂いている。
Sensu/Documentation/0.23/Getting Started with Checks
Uchiwa: A simple dashboard for the Sensu monitoring framework

CentOS 7.2へのインストール

インストールの事前準備

1.インストール済パッケージのupdate
$ sudo yum update -y

2.epelリポジトリのインストール
$ sudo yum install -y epel-release.noarch

3.wgetのインストール
$ sudo yum install -y wget

snmpのインストール

1.インストール済パッケージのupdate
$ sudo yum update -y

2.snmp/snmp-utilsのインストール
$ sudo yum install -y net-snmp net-snmp-utils

3.snmpdの設定ファイルの編集
$ sudo vi /etc/snmp/snmpd.conf

com2sec mynetworkのIPアドレスレンジは使用するIPで変更が必要
localhostからしかアクセスしない場合はmynetwork自体の設定が不要

4.snmpdの起動と自動起動の設定
$ sudo systemctl start snmpd
$ sudo systemctl enable snmpd

sensuのインストールの準備

1.erlangのリポジトリを追加
$ sudo yum install -y http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

2.elangをインストール
$ sudo yum install -y erlang

3.rabbitmqをインストール
$ sudo yum install -y http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-3.6.1-1.noarch.rpm

4.rabbitmq-serverの起動と自動起動の設定
$ sudo systemctl start rabbitmq-server
$ sudo systemctl enable rabbitmq-server

5.rabbitmqに対してsensuのアクセス権限を設定
$ sudo rabbitmq-plugins enable rabbitmq_management
$ sudo rabbitmqctl add_vhost /sensu
$ sudo rabbitmqctl add_user sensu secret
$ sudo rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"

6.redisのインストール
$ sudo yum install -y redis

7.redisの起動と自動起動の設定
$ sudo systemctl start redis
$ sudo systemctl enable redis

Sensuのインストール


1.Sensuのリポジトリの登録
$ sudo vi /etc/yum.repos.d/sensu.repo

2.Sensuのインストール
server/api/clientが同時にインストールされる。

$ sudo yum install -y sensu

3.Sensuの設定ファイルのダウンロード
$ sudo wget -O /etc/sensu/config.json http://sensuapp.org/docs/0.23/files/config.json
$ sudo wget -O /etc/sensu/conf.d/default_handler.json http://sensuapp.org/docs/0.23/files/default_handler.json

4.Sensuの設定ファイルを編集
$ sudo vi /etc/sensu/config.json

なお、"client"の部分は/etc/sensu/conf.d/client.jsonに分離することも可能

5.Sensuの設定ファイルの権限設定
$ sudo chown -R sensu:sensu /etc/sensu

6.Sensu-server/sensu-apiの起動と自動起動の設定
$ sudo systemctl start sensu-server
$ sudo systemctl start sensu-api
$ sudo systemctl enable sensu-server
$ sudo systemctl enable sensu-api

7.Sensuの監視pluginをインストール
sensu-installを使用し、pluginをインストールした後、設定ファイルを編集する。
sensu-installはSensuのVer 0.21以降で利用可能
pluginは公式サイトのSensu Community Pluginsで検索が可能
以下の例ではdisk/network/cpu/snmpのpluginをインストールしている。

(1)sensu-plugins-disk-checks
$ sudo sensu-install -p sensu-plugins-disk-checks
$ sudo vi /etc/sensu/conf.d/check_disk.json

(2)sensu-plugins-cpu-checks
$ sudo sensu-install -p sensu-plugins-cpu-checks
$ sudo vi /etc/sensu/conf.d/check_cpu.json

(3)sensu-plugins-snmp
$ sudo sensu-install -p sensu-plugins-snmp
$ sudo vi /etc/sensu/conf.d/check_snmp.json

(4)sensu-plugins-http
$ sudo sensu-install -p sensu-plugins-http
$ sudo vi /etc/sensu/conf.d/check_http.json

7.sensu-clientの起動と自動起動の設定
$ sudo systemctl enable sensu-client
$ sudo systemctl start sensu-client

pluginの機能についての補足

pluginの設定ファイル内の**subscribers**のには重要な意味がある。
sensu-clientの/etc/sensu/conf.d/client.json内の**subscriptions**に設定された**subscribers**の監視項目がsensu-serverから監視される仕様となっている。
上記の設定では**subscribers**cpu/disk/network/snmpには*common*をhttpには*http*を設定しており、*common*は全サーバ共通で、*http*はWebサーバのhttpレスポンスの200/OKを確認することを想定している。

Uchiwaのインストール


1.Uchiwaのインストール
$ sudo yum install -y uchiwa

2.Uchiwaの設定ファイルを編集
$ sudo vi /etc/sensu/uchiwa.json

3.Uchiwaの起動と自動起動の設定
$ sudo systemctl start uchiwa
$ sudo systemctl enable uchiwa

firewallの解放と確認

1.Sensu/Uchiwaで利用するポートのfirewallの解放
$ sudo firewall-cmd --add-port=3000/tcp --zone=public --permanent
$ sudo firewall-cmd --add-port=4567/tcp --zone=public --permanent
$ sudo firewall-cmd --add-port=5672/tcp --zone=public --permanent
$ sudo firewall-cmd --reload

2.ブラウザでhttp://[sensu-server ip]:3000/に接続
監視対象のサーバがUchiwa上に表示される。※画像は2台目を追加済み


pluginからの取得成否と結果も表示されている。


Ubuntu server 15.10へのsensu-clientインストール

必要パッケージのインストール

1.インストール済パッケージの更新
$ sudo apt update -y

2.wget/snmp/syssv-rc-confのインストール
sudo apt-get install -y wget snmp sysv-rc-conf

3.snmpdの設定ファイルの編集
$ sudo vi /etc/snmp/snmpd.conf

com2sec mynetworkのIPアドレスレンジは使用するIPで変更が必要
localhostからしかアクセスしない場合はmynetwork自体の設定が不要

4.snmpdの起動と自動起動の設定
$ sudo service snmpd start
$ sudo sysv-rc-conf snmpd on

sensuのインストール

1.sensuリポジトリの証明書をインストール
$ wget -q http://repositories.sensuapp.org/apt/pubkey.gpg -O- | sudo apt-key add -

2.sensuリポジトリを登録
$ echo "deb http://repositories.sensuapp.org/apt sensu main" | sudo tee /etc/apt/sources.list.d/sensu.list

3.sensuをインストール
$ sudo apt-get install sensu

4.sensuの設定ファイルのダウンロード
$ sudo wget -O /etc/sensu/config.json http://sensuapp.org/docs/0.23/files/config.json

5.sensu-serverの設定ファイルの権限設定
$ sudo chown -R sensu:sensu /etc/sensu

6.sensuの設定ファイルを編集

なお、"client"の部分は/etc/sensu/conf.d/client.jsonに分離することも可能
※client nodeで個別設定を行う個所はこの部分だけなので、分離している方が/etc/sensu/config.jsonを固定できるため、運用上、利便性が高いかもしれない。

7.sensuの監視pluginをインストール
sensu-installを使用し、pluginをインストールする。設定はsensu-server側のものが仕様されるため、sensu-client側ではpluginをインストールするのみである。

(1)sensu-plugins-disk-checks

$ sudo sensu-install -p sensu-plugins-disk-checks

(2)sensu-plugins-cpu-checks

$ sudo sensu-install -p sensu-plugins-cpu-checks

(3)sensu-plugins-snmp

$ sudo sensu-install -p sensu-plugins-snmp

(4)sensu-plugins-http

$ sudo sensu-install -p sensu-plugins-http

8.sensu-clientの起動と自動起動の設定

$ sudo service sensu-client start
$ sudo sysv-rc-conf sensu-client on

登録結果の確認

2.ブラウザでhttp://[sensu-server ip]:3000/に接続
監視対象のサーバがUchiwa上に表示される。


pluginからの取得成否と結果も表示されている。


エンジニア採用中!私たちと一緒に働いてみませんか?