Skip to content

Instantly share code, notes, and snippets.

@rch850
Last active January 4, 2016 09:19
Show Gist options
  • Save rch850/8601454 to your computer and use it in GitHub Desktop.
Save rch850/8601454 to your computer and use it in GitHub Desktop.

AWS で動いている nginx のログを fluentd で S3 に転送している状態で、 ログを Elastic Search に飛ばして Kibana 3 で眺めるまでの流れ。

セキュリティグループを作る

  • 拠点からの80番と9200番を許可(443にできるなら443で)
  • ログを発生させるサーバからの9200番を許可

適当なEC2インスタンスを立てる

さきほど作ったセキュリティグループを使って適当に立てる。

Elastic Search をインストールする

RPM でインストールするのが楽。RPM はここにある http://www.elasticsearch.org/download/

$ sudo rpm -ivh https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.10.noarch.rpm

nginx をインストールして設定する

$ sudo yum install nginx

location /kibana/ {
  root        /opt/kibana;

  # 念のため拠点以外からのアクセスを禁止
  allow       xx.xx.xx.xx/32;
  deny        all;
}

kibana をインストールする

http://www.elasticsearch.org/overview/kibana/installation/ からダウンロードして /opt/kibana/kibana に展開する

$ cd /tmp
$ curl -O https://download.elasticsearch.org/kibana/kibana/kibana-3.0.0milestone4.tar.gz
$ tar xzvf kibana-3.0.0milestone4.tar.gz
$ sudo mkdir /opt/kibana-3.0.0milestone4
$ sudo mv kibana-3.0.0milestone4 /opt/kibana-3.0.0milestone4/kibana

ログを fluentd で Elastic Search に転送する

ログを飛ばしたいサーバで fluentd-plugin-elasticsearch をインストールする。インストールするには gcc や ruby-devel や libcurl-devel が必要かもしれない。

$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-elasticsearch

Chef のレシピなら

gem_package "fluent-plugin-elasticsearch" do
  gem_binary "/usr/lib64/fluent/ruby/bin/fluent-gem"
end

これを入れたら td-agent.conf をこんな風に書き換えて

<match nginx.access>
  # ログを複数箇所で使うので copy で分岐する
  type copy

  <store>
    # 既存の S3 転送設定
  </store>
  
  <store>
    type elasticsearch
    host さっき立てたインスタンスの Public IP
  </store>
</match>

再起動する。

sudo /etc/init.d/td-agent restart

アクセス!

起動したインスタンスの Public IP の /kibana/ にアクセスすれば、 何か出てくると思う。

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment