ヒトリ歩き

愚痴とかいろいろ書きます

KibanaとElasticsearchをインストールしてみた

社内でElasticsearchやKibanaを使っているグループが増えてきており、そこそろ触ったことがないとやばそうという焦りが出てきたので、ローカル環境にインストールしてみることにしました。
ゴールとしては、vmstatのログをエクセルでグラフ化しているので、サクッとKibanaでグラフを表示出来たらなと。
そもそも、それが出来るか自体を理解していない・・・

ElasticsearchとKibanaのバージョン、動作環境、使用ポートは次の通りです。

ElasticsearchとKibanaのバージョン
App Version
Elasticsearch 7.6.0
Kibana 7.6.0
動作環境
Key Value
OS CentOS Linux release 7.6.1810 (Core)
IPアドレス 192.168.56.10
Java openjdk version "11.0.6"
使用ポート
App Port
Kibana 9100
ElasticSearch 9200

前準備

Javaなどをインストールしておく。

yum install -y wget curl java-11-openjdk

OSの設定をします。

swapoff -a
ulimit -n 65535
sysctl -w vm.max_map_count=262144
ulimit -u 4096

Elasticsearchのインストール

Elasticsearchのインストールをします。
今回は、yumコマンドではなく、rpmでインストールします。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.0-x86_64.rpm
rpm -ivh elasticsearch-7.6.0-x86_64.rpm

Elasticsearchのサービス登録と起動をします。

systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch.service

/etc/elasticsearch/elasticsearch.ymlファイルのport番号などを編集します。
network.host、http.port、discovery.seed_hostsのコメントアウトを外し、サーバに合わせて設定します。
私の環境では、次のように設定しました。

network.host: 192.168.56.10
http.port: 9200
discovery.seed_hosts: ["192.168.56.10"]

Elasticsearchを再起動します。

systemctl restart Elasticsearch.service

Elasticsearchの動作確認のため、次のコマンドを実行します。

curl -X GET "192.168.56.10:9200/?pretty"

応答結果が取得できたら設定は完了です。

{
  "name" : "localhost.localdomain",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "_na_",
  "version" : {
    "number" : "7.6.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
    "build_date" : "2020-02-06T00:09:00.449973Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
参照ページ

ElasticsearchのインストールはElasticsearchのリファレンスを参考にしました。
www.elastic.co

Kibanaのインストール

Elasticsearchと同様にyumコマンドではなく、rpmでインストールします。

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.0-x86_64.rpm
rpm -ivh kibana-7.6.0-x86_64.rpm

Kibanaのサービスを登録し、起動します。

systemctl daemon-reload
systemctl enable kibana.service
systemctl start kibana.service

/etc/kibana/kibana.ymlを編集し、Elasticsearchが動作しているホストを指定します。

server.port: 9100
server.host: "192.168.56.10"
elasticsearch.hosts: ["http://192.168.56.10:9200"]

kibanaを再起動します。

systemctl restart kibana.service

Webブラウザで下記のURLにアクセスします。Kibanaの画面が表示されたら、Kibanaの設定は完了です。
http://192.168.56.10:9100
f:id:kotapontan:20200304224716p:plain

Indexの作成は、REST APIでの作成ができます。
www.elastic.co

コマンドを投入するための画面は、Kibanaの画面のDevTool を選択します。
f:id:kotapontan:20200304225219p:plain

ConsoleタブからREST APIを使ってIndexを作成します。
f:id:kotapontan:20200306215908p:plain

Indexの作成

Indexを作成する場合は、PUTメソッドを使用します。

PUT /my-index

フィールド情報も一緒に登録する場合は、次のように追加することが出来ます。

PUT /my-index
{
  "mappings": {
    "properties": {
      "id": {
        "type": "integer"
      },
      "name": {
        "type": "text"
      }
    }
  }
}

データの投入

IndexにJSONドキュメントを追加する場合、
PUT /Index名/_doc/<_id> を使います。

PUT /my-index/_doc/2
{
  "id": 2,
  "name": "tamago",
  "test": null
}

Indexの削除

Indexの削除は、DELETEメソッドで削除します。

DELETE /my-index

まとめ

ElasticsearchとKibanaのインストールからElasticsearchのIndex作成までやってみました。
インストールでは、ElasticsearchとKibanaを起動する前にコンフィグファイルを変更するとKibanaが起動しないという問題があり、ワークアラウンドを調べるのに時間がかかりましたが、何とか起動できたので良かったです。
Indexの構成を理解出来ていないので、Indexについてもう少し調べて、腹落ちさせたいと思います。
次は、vmstatのログとグラフ作成まで出来たらいいな・・・。

kotapontan.hatenablog.com