研究のシステムを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使えば問題ないと思います。
$ 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
$ 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
監視対象マシンの設定
環境確認
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
つづく