公開Sensuで始めるクラウド時代のシステム監視(3):Sensuを支えるミドルウェア「Redis」と「RabbitMQ」の環境を構築する新たなクラウド監視ツールとして注目され始めている「Sensu」の活用方法を解説する本連載。今回はSensuで必要となるミドルウェア「Redis」と「RabbitMQ」について、その概要と構築手順を解説します。Enterprise」の違い、他の監視サービスとの比較について説明しました。Enterpriseで提供される機能の他、「Datadog」「Mackerel」といった監視サービスと比較しても安価で自由度が高いことなどをご理解いただけたと思います。今回は「Sensu」で必要となる2つのミドルウェア「Redis」と「RabbitMQ」について、その概要の紹介と、Sensuの公式ドキュメントに従った構築手順を解説します(画面1)。Linux/CentOSなども公式ドキュメントに案内があるので、ご覧ください)。Sensuの「公式ドキュメント」サイト。「Redis」は、オープンソースのインメモリKey-Valueストア構築ソフトウェアです(画面2)。Key-Valueストアとは、データを名前と値のペアで保存する形式のデータベースのことです。Sensuの環境では、Redisはデータベースやキャッシュ、データブローカーといった用途で使用されます。Redisはデータベースやキャッシュ、データブローカーといった役割を果たすSensuでは「sensu-client」や監視結果などのデータを保存するために使用します。「sensu.hico.io」という名前のsensu-clientの場合は、下記のようなデータが保存されます(sensu-serverがJSON形式のデータをRedisの文字列型として保存しています)。Ubuntu/Debian」に記載された手順に従って、Redisをインストールします。Serverのパッケージマネージャの「apt-get」コマンドでインストールできるので、とても簡単です。ping」のコマンドを実行して「PONG」と返ってくれば、インストールは成功です。設定ファイル「/etc/redis/redis.conf」はデフォルトのままで問題ありません。sensu-serverとsensu-apiが同じRedisに接続できる必要があるので、注意してください。「RabbitMQ」は、オープンソースのメッセージブローカーソフトウェアです(画面3)。アプリケーションや機能の間で、「AMQP」というプロトコルでメッセージを送受信する際に使用されます。RabbitMQはメッセージブローカーとして使用される「OpenStack」のようなマイクロサービスアーキテクチャでは、サービス間で操作と状態をやりとりするためにRabbitMQが使用されています。RabbitMQのシステムでは、送信側はキューにメッセージを保存し、受信側はキューからメッセージを取り出して処理します。送受信はそれぞれ複数のクライアントから実行できるので、分散処理や高信頼性のシステムを実現することができます。Sensuでは、sensu-serverからsensu-clientに監視の実行を指示したり、sensu-clientからsensu-serverに監視結果を送信したりするために使用しています。Ubuntu/Debian」に記載された手順に従って、Redisをインストールします。最初に、RabbitMQの実行に必要な「Erlang」をインストールします。erlang-nox▲Erlangのインストール(bash)次に、RabbitMQを公式サイトからダウンロードしてインストールします(これは、apt-getコマンドを使うと古いバージョンがインストールされるためです)。defaults▲RabbitMQのインストール(bash)また、RabbitMQではキューやメッセージのために大量のファイルを開くため、「ファイルディスクリプタ」(ユーザーやプロセスが開けるファイルの上限数)を変更しておく必要があります(筆者は、RabbitMQがファイルを開けなくなり、Sensuの監視が停止した経験があります)。restart▲ファイルディスクリプタの変更(bash)最後に、Sensu用のバーチャルホストとユーザーを作成し、権限を設定します。全てのsensu-serverとsensu-clientが同じRabbitMQに接続できる必要があるので、注意してください。".*"▲Sensu用のバーチャルホストとユーザーの作成(bash)終わりに今回はSensuで必要となる2つのミドルウェア、RedisとRabbitMQについて説明しました。RedisはKey-Valueストアで、sensu-clientや監視結果などのデータを保存するために使用しています。RabbitMQはメッセージブローカーで、sensu-serverとsensu-clientの間の通信に使用しています。どちらも最近人気のミドルウェアなので、Sensu以外でも利用する機会があると思います。次回は、sensu-serverとsensu-client、sensu-apiのインストールと設定について、今回と同様に具体的なコマンドなどを示しながらチュートリアル形式で解説します。Talks」などを主催。2016年4月からは上京し、ICT企業でベアメタルクラウドの開発に従事。運用監視をはじめ、多くの企業が取り入れているOSS(オープンソースソフトウェア)。目的に応じて最適なものを選択し、うまく使いこなせば強力な武器となるが、それができなければかえって手間や混乱の原因にもなりかねない。本連載では注目のOSSをピックアップして実際に検証し、基本的な優位性、劣位性を明確化した。OSSを選ぶ際の参考にしてほしい。近年の「先が見えない」市場環境の中、ビジネス要請へのスピーディな対応が求められるシステム運用管理にも新しいアプローチが求められている。本特集『クラウド/OSS時代の「業務を止めない」運用ノウハウ』では、そのアプローチを一つ一つ掘り下げていく。運用管理者が知っておきたい監視・ジョブ管理向けOSS構成例4つの比較まとめシステム運用の上で重要な「監視」と「ジョブ管理」について、効率的な実現方法を解説。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。