社内で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
Indexの作成は、REST APIでの作成ができます。
www.elastic.co
コマンドを投入するための画面は、Kibanaの画面のDevTool を選択します。
ConsoleタブからREST APIを使ってIndexを作成します。
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のログとグラフ作成まで出来たらいいな・・・。