1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ゼロから始めたElasticなんたら

Last updated at Posted at 2020-09-29

ログ収集するにあたり噂に聞くElasticSearchとKibanaに関して調べてみました。

ElasticSearchとは

公式サイト(Elasticsearchって?) をみると最初に

分散型でオープンソースの検索・分析エンジン

と書いてあります。
ただ「検索エンジン」と言われると何となくgoogle、yahooみたいなのを想像してしまいます。
ログ収集なのに、あれ?なんかやりたい事と違う?と思ったり思わなかったりですが、とりあえずそれは置いといて...
そこでもう少しだけ調べてとりあえず、データベースっぽいものという認識で一旦落ち着きました。
ちなみに、作っているのはエラスティック社(Elastic N.V.)(N.V.は日本でいう株式会社のオランダ的な表記らしいです=オランダの企業)です。

Kibanaとは

公式サイト(Kibanaについて) には

Elasticsearchでインデックスされたデータに、検索と可視化の機能を提供します

とあり、こちらは認識どおりでした。

とりあえず動かしてみる

実行環境ですが、ローカル仮想環境上のAmazon Linux2(Linux version 4.14.193-149.317.amzn2.x86_64)です。
まずは /etc/yum.repos.d/elasticsearch.repo を作ります

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

調べるといろいろ必要そうな雰囲気だったのですが、とりあえずElasticSearchとKibanaを動かすだけならこれだけで良いっぽいです。
systemctl status で確認したところ問題なさそうです。
ただ脆弱なローカル仮想環境では速攻メモリ不足に陥ったのでメモリ使用量らしき場所を1GB→128MBに変更しました。

/etc/elasticsearch/jvm.options
# -Xms1g
# -Xmx1g
-Xms128m
-Xmx128m

systemctl restart elasticsearchで再起動し、とりあえずcurlでelasticsearchの動作確認
(もし入ってない場合はyum -y install curlなどでインストールを)

# curl http://127.0.0.1:9200
{
  "name" : "*******",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "*****15sQh6fdLnom*****",
  "version" : {
    "number" : "7.9.2",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "*****0ea4a966c4e49417f2da2f244e3e97*****",
    "build_date" : "2020-09-**T**:45:33.626720Z",
    "build_snapshot" : false,
    "lucene_version" : "8.6.2",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

なんか動いてることを確認(よくわかってないので一部を一応*でマスク)

curl -X PUT "http://127.0.0.1:9200/test_index"

index(RDBでいうデータベースのことらしい)の追加ということでこちらも実行

さて一方Kibanaですが何も設定していないので設定します。

/etc/kibana/kibana.yml
# コメント外して変更します。どこからでもアクセスできる状態?にとりあえず変更します
#server.host: "localhost"
server.host: "0.0.0.0"

#コメント外します。まんまですがelasticsearchの場所の指定ですね
#elasticsearch.hosts: ["http://localhost:9200"]
elasticsearch.hosts: ["http://localhost:9200"]

こちらもsystemctl restart kibanaで再起動ししばらく待ってホストのブラウザで確認します。
で、http://192.168.1.1:5601 (当然IPアドレスは環境によって変更してください)を入力

00.jpg

Kibanaの起動を確認!

左上のメニューの下の方の「Stack Management」を選択すると
01.jpg

先程PUTしたtest_indexがあることを確認
02.jpg

ElasticSearchとKibanaの動作確認ができました!

メモ

/etc/elasticsearch/elasticsearch.yml
# network.host: 192.168.0.1
network.host: 0.0.0.0
# ↑を追記(他からデータを入れるならこれが必要?)
/var/log/messagesみたらパーミッションエラーが出ていた際にやってみたこと
# chown elasticsearch:elasticsearch -R /var/log/elasticsearch
# chown elasticsearch:elasticsearch -R /etc/elasticsearch
# elasticsearch操作いろいろ

# インデックス作成
curl -X PUT "http://127.0.0.1:9200/test_index"

# prettyとつけるとjsonが整形
curl "http://127.0.0.1:9200/test_index?pretty"

# エイリアスはインデックスに着けられる別名
curl http://127.0.0.1:9200/_aliases?pretty

# インデックスの各設定が表示されます
curl http://127.0.0.1:9200/sample_index/_settings?pretty

# 全データ削除
curl -XDELETE 'http://localhost:9200/*'
1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?