LoginSignup
11
24

More than 5 years have passed since last update.

CentOS7にelasticsearch+kibana5などなどをインストール

Posted at

CentOS7環境にelasticsearch,kibana,logstash,beats(全てVer5系)をインストールするメモ。
リポジトリからyumでインストールできるようになったので超簡単です。
一通り全部インストールしてkibanaでそれっぽくログが取れるようになるまでの自己満足的手順です。


elasticsearch.repoの作成

/etc/yum.repos.d/elasticsearch.repo
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

JDK1.8のインストール

develとdebuginfoの両方入れると幸せになれるらしいです。

# yum install -y java-1.8.0-openjdk-devel
# yum install -y java-1.8.0-openjdk-debuginfo --enablerepo=*debug*

elastic諸々インストール

yumでだーーっと流し込む

# yum -y install elasticsearch
# yum -y install logstash
# yum -y install kibana
# yum -y install metricbeat
# yum -y install packetbeat
# yum -y install filebeat
# yum -y install heartbeat

kibana.ymlの編集

外部からkibanaにアクセスしたい場合はserver.hostを修正する。
※公開サーバにインストールする場合、細かいサーバ稼働状況が全世界に向けて筒抜けになるのでセキュリティ設計は別途ちゃんとしておきましょう。

/etc/kibana/kibana.yml
server.host: "0.0.0.0"

elasticsearch.ymlの編集

外部からelasticsearchへのアクセスを受け付ける場合はelasticsearch.ymlのnetwork.hostをkibana.yml同様"0.0.0.0"に修正する。
自サーバ内からだけアクセスを受け付ける場合は「local」と記述。

/etc/elasticsearch/elasticsearch.yml
# 自サーバ内からだけアクセスを受け付ける場合
network.host: _local_
# 外部からのアクセスを受け付ける場合
network.host: "0.0.0.0"

packetbeat.ymlの編集

packetbeatで統計を取りたいポート番号やログの投げ先となるelasticsearchのアドレス等を記述します。
下記はhttp通信をいくつか収集し、自サーバで動作しているelasticsearchへログを投げたい時の例です。
他にもプロトコル単位で細かく設定できますのでpacketbeat.yml全体をぜひ眺めてみてください。
packetbeatは通信パケットをどんどん収集するので、あまりたくさん収集する設定を入れるとサーバが高負荷となるかもしれません。

/etc/packetbeat/packetbeat.yml
############################# Protocols #######################################
# ports:で指定するポート番号は一例
packetbeat.protocols.http:
  ports: [80, 8080, 5601]

############################ Output ##########################################
# ログ送信先となるelasticsearchサーバのアドレスを記述する。
# 自サーバ内で動いてる時は"localhost:9200"でOK
  hosts: ["localhost:9200"]

metricbeatとpacketbeat用のkibanaダッシュボードテンプレートをインストール

metricbeatとpacketbeatの収集ログをkibanaで眺められるテンプレートが用意されているので、とりあえずインストール。

# cd /usr/share/metricbeat
# ./scripts/import_dashboards
# cd /usr/share/packetbeat
# ./scripts/import_dashboards

logstash側kibana.confの編集

Elastic Stack 5.0.0 GAリリース! 早速インストール!! #elasticsearch -
Taste of Tech Topics Acroquest Technology株式会社のエンジニアが書く技術ブログ

上記サイトより設定例をお借りしました。
とりあえずkibanaのアクセスログをlogstashで収集できるようになります。

/etc/logstash/conf.d/kibana.conf
input {
  file {
    codec => "json"
    path => "/var/log/kibana/kibana.stdout"
    start_position => "beginning"
    sincedb_path => "/var/log/logstash/since_kibana"
  }
}

output {
  elasticsearch {
    index => "kibana_access-%{+YYYY.MM.dd}"
    document_type => "%{type}"
  }
}

kuromojiのインストール

日本語などの2バイト文字もログ分析対象とするプラグインです。

# /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji

一式起動

だーっと起動します。だーっとenableします。

# systemctl start elasticsearch
# systemctl start logstash
# systemctl start kibana
# systemctl start metricbeat
# systemctl start packetbeat
# systemctl start filebeat
# systemctl start heartbeat

# systemctl enable elasticsearch
# systemctl enable logstash
# systemctl enable kibana
# systemctl enable metricbeat
# systemctl enable packetbeat
# systemctl enable filebeat
# systemctl enable heartbeat

kibanaにアクセスしてみる

デフォルトではport5601で起動しています。
公開ポートはkibana.ymlから変更できます。

http://自サーバのIPアドレス:5601

アクセスできないときは?

firewalldの穴開け忘れとかありませんか?(よくやってしまう)

あれ?filebeatとheartbeatの設定は?

とりあえず入れただけでまだ勉強前です・・・
heartbeatは他サーバのping監視とかできるっぽいので複数サーバ立てて遊べそうです。
filebeatは色々なログファイルを整形してelasticsearchに投げたりできるみたいです。

数週間ローカルで動かしてみたけど

物理2コア+メモリ8GB(うち2GBをelasticに割当)マシンで1週間統計とか1ヶ月統計とか表示させると結構重たい。何事も経験である。

11
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
24