元RX-7乗りの適当な日々 このページをアンテナに追加 RSSフィード Twitter

RX-7(FD3S)WRX STI関連のキーワードで検索されて来られた方へ。
右サイドのカテゴリ『』をクリックすると関連する項目だけが表示されます。
日々の写真は『Flickr』で公開しています。

2014/05/02

by Javier García

Sensu Serverをインストールする手順メモ


ゴールデンウィークに突入したタイミングで色々忘れてしまいそうなので、ここにSensu Serverの作り方をメモっておく。

ちなみに、Sensuは最近ナウなヤングにバカうけのモニタリングツール。インストールした環境は、CentOS 6.5 (Linux version 2.6.32-431.11.2.el6.x86_64)。


ちなみに、Sensu関連のインストールについてはChefPuppetの使用が、推奨されてるっぽいので、今回はChefのCookbookをありがたく利用させていただいた。(このエントリではchef-soloを使って環境構築している。)

SensuのChef Cookbookは以下のGitHubリポジトリで公開されている。


sensu-chefの取得

# yum install -y git gcc

まず、最低限必要なパッケージをyumでインストールして、、、


# curl -L https://www.opscode.com/chef/install.sh | bash

Chef(Client)をインストール。


# mkdir -p /var/chef/{cookbooks,data_bags,nodes}

Cookbookとかの置き場を掘っておく。


# mkdir ~/workspace
# cd ~/workspace

リポジトリをcloneする適当なワークスペースを作って、、、


# git clone https://github.com/sensu/sensu-chef.git

GitHubからsensu-chefのリポジトリをcloneする。


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

# PATH=/opt/chef/bin:/opt/chef/embedded/bin:${PATH}

Chefでインストールされた実行ファイル群にパスを通しておく。

(Ruby関連のソフトウェアはChefにembeddedされているものを使った。この辺はお好みで。)


# cd sensu-chef/
# bundle install

sensu-chefでGemfileを準備してくれているので、ありがたく関連gemパッケージをbundleでインストールする。


鍵の準備

# cd examples/ssl/

# ./ssl_certs.sh generate
Generating a Sensu SSL data bag item ...
Generating a 2048 bit RSA private key

・・・・・省略・・・・・

Write out database with 1 new entries
Data Base Updated
Data bag item created: ssl.json

SSL鍵を作って、、、


# mkdir -p /var/chef/data_bags/sensu
# cp ssl.json /var/chef/data_bags/sensu/

data_bags用のディレクトリにコピー。


# ./ssl_certs.sh clean
Cleaning up ...

generateしたファイルは一応消しておく。


必要な依存Cookbookの取得

# cd ../..
# librarian-chef install --path=/var/chef/cookbooks

sensu-chefでCheffileが準備されているので、librarian-chefを実行して、関連しているCookbookを集めておく。ここではPathを指定して、必要なCookbookは"/var/chef/cookbooks"に集約している。


chef-soloの実行

# mkdir -p /etc/chef /tmp/chef-solo

chef-soloの実行に必要となるディレクトリを作って、、、

cat <<'EOF' >/etc/chef/solo.rb
file_cache_path "/tmp/chef-solo"
cookbook_path "/var/chef/cookbooks"
data_bag_path "/var/chef/data_bags"
EOF
cat <<'EOF' >/var/chef/nodes/sensu-server.json
{
  "run_list": [
    "sensu::default",
    "sensu::redis",
    "sensu::rabbitmq",
    "sensu::server_service",
    "sensu::api_service",
    "sensu::dashboard_service"
  ]
}
EOF

↑のような感じで、chef-soloの実行に必要な設定ファイル2つを生成。


# chef-solo -j /var/chef/nodes/sensu-server.json

で、あとはchef-soloを実行されれば、自動でSensu Serverと、関連するミドルウェア群がインストール&設定されて、動き出す。


この時点で、上記の"sensu-server.json"でrun_listに指定したRecipeのソフトウェアが動いているはず。

ということで、試しにダッシュボードにアクセスしてみる。

http://(Sensu ServerのIPアドレス):8080

上記のURLで、アクセスできるはずです。

ちなみにBasic認証がかかっている。デフォルトだと(admin/secret)でログインできる。

f:id:rx7:20140502135244p:image:w480


ちなみに、このダッシュボードのパスワードや、その他rabbitmqとかのユーザ/パスワード情報は、Chefリポジトリの"attributes/default.rb"で定義されているので、ここをみて確認したり、変えたかったらここを設定すればOK。(https://github.com/sensu/sensu-chef/blob/master/attributes/default.rb)


erlangのインストールでエラーが出たとき

今日試したときは特にエラーが出なかったので、修正されたと思うんですが、前に触ってたときは、chef-soloでインストールしている途中で、erlangがうまく入らなかったことがあった。

そのときは、以下のような感じで、リポジトリに存在している正しいバージョンを指定してやれば問題なく動いた。

# diff -c /var/chef/cookbooks/erlang/recipes/package.rb{.bak,}
*** /var/chef/cookbooks/erlang/recipes/package.rb.bak   2014-04-02 17:00:10.347278714 +0900
--- /var/chef/cookbooks/erlang/recipes/package.rb       2014-04-02 17:06:53.963274363 +0900
***************
*** 43,47 ****
      include_recipe 'yum-erlang_solutions'
    end

!   package 'erlang'
  end
--- 43,51 ----
      include_recipe 'yum-erlang_solutions'
    end

!   execute "yum install -y erlang-R16B03" do
!     user "root"
!     command "yum install -y erlang-R16B03"
!     not_if { File.exists? "/usr/bin/erl" }
!   end
  end

・・・ちなみに、このSensu Serverだけだと、当然、何もモニタリングできていないので、監視やクライアントの設定については別のエントリに記載することにします。

それでは! =͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́


はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/rx7/20140502/p1

オススメ (一部は、最近読んでいる本とも言う)
Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus) クラウド Amazon EC2/S3のすべて~実践者から学ぶ設計/構築/運用ノウハウ~ [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ) エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド [24時間365日] サーバ/インフラを支える技術 ~スケーラビリティ、ハイパフォーマンス、省力運用 Linux-DB システム構築/運用入門 (DB Magazine SELECTION) キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置 スケーラブルWebサイト 実践ハイパフォーマンスMySQL 第3版 ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE) SQLアンチパターン インターネットのカタチ―もろさが織り成す粘り強い世界― ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)