なおすけの落書き帳

毎日がエブリデイ。

Fedora25にElasticsearchとかKibanaとか入れてログ監視の形をつくった (1)

研究のシステムをRails+Sidekiqで作ったんですが、Sidekiqのジョブの状態が監視したくて、Elasticsearchあたりを入れたのでメモ。
今日はVPSじゃなくてローカルのマシンで作業です。
ログ監視サーバがFedora25、監視対象はCentOS6です。 割りと長くなったのでその1です。

可視化マシンの設定

環境確認

$ uname -r
4.8.11-300.fc25.x86_64

$ cat /etc/redhat-release
Fedora release 25 (Twenty Five)

Elasticsearchのインストール

このあたりからURL取得してきます。
Fedoraだし、RPM使えば問題ないと思います。

www.elastic.co

$ sudo rpm -ivh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.2.rpm
$ sudo systemctl enable elasticsearch
$ sudo systemctl start elasticsearch

起動したかどうかの確認はcurlで確認

$ curl localhost:9200
{
  "name" : "なんか文字列",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "なんか文字列",
  "version" : {
    "number" : "5.1.2",
    "build_hash" : "c8c4c16",
    "build_date" : "2017-01-11T20:18:39.146Z",
    "build_snapshot" : false,
    "lucene_version" : "6.3.0"
  },
  "tagline" : "You Know, for Search"
}

Kibanaの導入

ここからrpmでインストールすればOK

www.elastic.co

$ sudo rpm -ivh https://artifacts.elastic.co/downloads/kibana/kibana-5.1.2-x86_64.rpm
$ sudo systemctl enable kibana
$ sudo systemctl start kibana

KibanaとElasticsearchの設定

Elasticsearchのほうは、外部からでもアクセスできるようにしとく必要があります。
/etc/elasticsearch/elasticsearch.ymlの55行目と59行目あたりをいじります。

↓変更前

# Set the bind address to a specific IP (IPv4 or IPv6):
#
#network.host: 0.0.0.0
#
# Set a custom port for HTTP:
#
#http.port: 920

↓変更後

# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0
#
# Set a custom port for HTTP:
#
http.port: 920

で、KibanaのほうはElasticsearchの情報を読めるように設定します。 /etc/kibana/kibana.yml の21行目あたりをいじります。

↓変更後

# The URL of the Elasticsearch instance to use for all your queries.
elasticsearch.url: "http://<global address of kibana host>:9200"

Kibanaに外から繋げれるよう設定

nginxの設定ファイルをいじります。
/etc/nginx/nginx.conf の48行目あたり。

location / {
  proxy_pass http://127.0.0.1:5601;
}

これでこんな画面がでればOK

f:id:naosuke2dx:20170131193106p:plain:w300

監視対象マシンの設定

環境確認

fluentdはカーネルバージョンが2.6以上じゃないとダメみたいです。
デフォルトのCentOS6.5でも一応2.6だった気がするので、まあ大丈夫かと*1

$ cat /etc/redhat-release
CentOS release 6.8 (Final)

$ uname -r
3.10.104-1.el6.elrepo.x86_64

fluentdのインストール

コマンド一発です。簡単ですね!

$ sudo curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

このあと、Elasticsearchにログを投げれるようプラグインを入れます

$ sudo td-agent-gem install fluent-plugin-elasticsearch

つづく

naosuke2dx.hatenablog.com

*1:このサーバはDockerを使うためにカーネルアップデートしてる