ラベル Elasticsearch の投稿を表示しています。 すべての投稿を表示
ラベル Elasticsearch の投稿を表示しています。 すべての投稿を表示

Fess #10:Elasticsearch サービス起動

ElasticsearchをBAT起動でなくサービス起動させるには?


手順

コマンドプロンプト(管理者)で "c:\elasticsearch\bin" フォルダを開き、
elasticsearch-service.bat install
を実行する。
その後コンパネのサービスを開き、Elasticsearchのサービスを起動

サービスの削除は
elasticsearch-service.bat remove


Elasticsearch

Fess #9:Elasticsearchインストール (Windows 10)

Fess単体でも動作するが、これは"開発モード"らしく、本番系ではElasticsearchのインストールが必要、とのことらしい。
ということで Elasticsearchのインストールを行う。

※ 前回記事:#6 URLで検索対象を分けたい
記事一覧


バージョン

Windows 10 20H2 19042.985
Fess 13.12.2 (C:\fess-113.12.2 にインストール)
OpenJDK 16.0.1 (C:\jdk-16.0.1 にインストール)
Elasticsearch 7.12.1 (C:\elasticsearch-7.12.1 にインストール)

手順

Fessのドキュメント https://fess.codelibs.org/ja/13.12/install/install.html を参考にインストールを行う。
※ 上記ドキュメントの "ZIPパッケージを利用する場合 (Windows)" を参照

1. JDKとFessのインストール

全文検索 Fess + Windows 10 #1:インストール を参考にインストールしておく。

2. ダウンロード

https://www.elastic.co/jp/ - 画面上部の[製品] - [Elascitsearch] - [ダウンロードして使いはじめる] - [(1) Get Elasticsearch] - [Windows] をクリック

3. 展開

ダウンロードした elasticsearch-7.12.1-windows-x86_64.zip を解凍し、解凍後の elasticsearch-7.12.1 フォルダを C:\ へ移動

4. Elasticsearchプラグインインストール

システム環境変数に ES_JAVA_HOME を追加、Javaのパス(C:\jdk-16.0.1) を指定する。

コマンドプロンプトを起動し以下コマンドを入力する
cd /d c:\elasticsearch-7.12.1\bin
elasticsearch-plugin install org.codelibs:elasticsearch-analysis-fess:7.12.0
elasticsearch-plugin install org.codelibs:elasticsearch-analysis-extension:7.12.0
elasticsearch-plugin install org.codelibs:elasticsearch-minhash:7.12.0
・コマンドを入力すると "Continue with installation? [y/N]" と聞いてくる場合があるので "y" を入力し先に進む
・コマンド末尾の数字"7.12.0"はElasticsearchのバージョンと思われるが "7.12.1" へ変更したところエラーでインストールできなかった。
とりあえず 7.12.0 のまま作業を進める。
・インターネット接続が必要。接続されていないとエラーとなる。
・ちょうどのタイミングで Elasticsearch 7.13.0 がリリースされた。しかし7.13.0のプラグインは存在しなかった(エラーとなった)ため、Elasticsearch 7.12.1 で作業を進める。

5. コンフィグ設定

c:\elasticsearch-7.12.1\config\elasticsearch.yml ファイルをエディタで開き、末尾に以下行を追加
configsync.config_path: c:/elasticsearch-7.12.1/config/
・Fessのドキュメントでは "configsync.config_path: [absolute path of $ES_HOME]/data/config/" と記載があるが Elasticsearchのフォルダ内に /data/config/フォルダ は存在しない。

6. configsync展開

https://repo.maven.apache.org/maven2/org/codelibs/elasticsearch-configsync/7.12.0/elasticsearch-configsync-7.12.0.zip をダウンロードし解凍
C:\elasticsearch-7.12.1\modules\configsyncフォルダを作成し、解凍後の4つのファイルを作成したフォルダへ移動

C:\elasticsearch-7.12.1\config\elasticsearch.ymlをエディタで開き、末尾に以下内容を貼り付け保存
configsync.config_path: c:/elasticsearch-7.12.1/config/

7. Fess起動オプション設定

C:\fess-13.12.2\bin\fess.in.bat をエディタで開き、最後の方にある以下行先頭の "REM" を取り除く
2行目については値が誤っている?ので変更する。
REM set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.es.http_address=http://localhost:9200
REM set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.dictionary.path=%ES_HOME%/config/
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.es.http_address=http://localhost:9200
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.dictionary.path=c:/elasticsearch-7.12.1/config/

8. メモリ使用量の調整

自動調整が推薦されているが、Elasticsearchのメモリ使用量を少なくしたい場合は C:\elasticsearch-7.12.1\config\jvm.options ファイルを編集する
例えば最大ピープサイズを1GBにするには、以下の記述を追加する
- Xms2g
- Xmx2g

9. 起動

C:\elasticsearch-7.12.1\bin\elasticsearch.bat を起動
C:\fess-13.12.2\bin\fess.bat を起動


全文検索, Fess, Elasticsearch

Fess #8:Elasticsearch サービス起動しなくなった

Elasticsearchのサービスが起動しなくなってしまった。

※ 記事一覧


環境

Ubuntu 20.04.1 LTS
Elasticsearch 7.9.1
OpenJDK 11.0.8

現象

Elasticsearchのサービスを起動してみるがエラーで起動できない。
user@user-pc:~$ sudo systemctl start elasticsearch.service
Job for elasticsearch.service failed because the control process exited with error code.
See "systemctl status elasticsearch.service" and "journalctl -xe" for details.
おそらく "apt upgrade -y" でシステム全更新したのが原因と思われる。

"systemctl status elasticsearch.service" でステータスを確認してみる。
user@user-pc:~$ systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
    Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Fri 2020-09-04 16:39:00 JST; 2min 11s ago
      Docs: https://www.elastic.co
    Process: 13533 ExecStart=/usr/share/elasticsearch/bin/systemd-entrypoint -p ${PID_DIR}/elasticsearch.pid --quiet (code=exited, status=1>
  Main PID: 13533 (code=exited, status=1/FAILURE)

9月 04 16:38:59 user-pc systemd-entrypoint[13533]:         at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)
9月 04 16:38:59 user-pc systemd-entrypoint[13533]:         at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161)
9月 04 16:38:59 user-pc systemd-entrypoint[13533]:         at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareComman>
9月 04 16:38:59 user-pc systemd-entrypoint[13533]:         at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
9月 04 16:38:59 user-pc systemd-entrypoint[13533]:         at org.elasticsearch.cli.Command.main(Command.java:90)
9月 04 16:38:59 user-pc systemd-entrypoint[13533]:         at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)
9月 04 16:38:59 user-pc systemd-entrypoint[13533]:         at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
9月 04 16:39:00 user-pc systemd[1]: elasticsearch.service: Main process exited, code=exited, status=1/FAILURE
9月 04 16:39:00 user-pc systemd[1]: elasticsearch.service: Failed with result 'exit-code'.
9月 04 16:39:00 user-pc systemd[1]: Failed to start Elasticsearch.
Elasticsearchのログ(/var/log/elasticsearch/elasticsearch.log)を見てみる。
(suでスーパーユーザーにしておなかいと見れなかった)
[2020-09-04T16:38:59,553][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [user-pc] fatal error in thread [main], exiting
java.lang.NoSuchMethodError: org.elasticsearch.index.mapper.MappedFieldType: method 'void ()' not found
        at org.codelibs.elasticsearch.minhash.index.mapper.MinHashFieldMapper$MinHashFieldType.(MinHashFieldMapper.java:144) ~[?:?]
        at org.codelibs.elasticsearch.minhash.index.mapper.MinHashFieldMapper$Defaults.(MinHashFieldMapper.java:62) ~[?:?]
        at org.codelibs.elasticsearch.minhash.index.mapper.MinHashFieldMapper$Builder.(MinHashFieldMapper.java:79) ~[?:?]
        at org.codelibs.elasticsearch.minhash.index.mapper.MinHashFieldMapper$TypeParser.parse(MinHashFieldMapper.java:107) ~[?:?]
        at org.elasticsearch.index.mapper.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:319) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.index.mapper.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:237) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.index.mapper.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:141) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:108) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:88) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.index.mapper.MapperService.internalMerge(MapperService.java:421) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.index.mapper.MapperService.internalMerge(MapperService.java:377) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:355) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.cluster.metadata.MetadataIndexUpgradeService.checkMappingsCompatibility(MetadataIndexUpgradeService.java:188) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.cluster.metadata.MetadataIndexUpgradeService.upgradeIndexMetadata(MetadataIndexUpgradeService.java:92) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.gateway.GatewayMetaState.upgradeMetadata(GatewayMetaState.java:247) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.gateway.GatewayMetaState.upgradeMetadataForNode(GatewayMetaState.java:230) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.gateway.GatewayMetaState.start(GatewayMetaState.java:161) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.node.Node.start(Node.java:786) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:317) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:402) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127) ~[elasticsearch-cli-7.9.1.jar:7.9.1]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.9.1.jar:7.9.1]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126) ~[elasticsearch-7.9.1.jar:7.9.1]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.9.1.jar:7.9.1]
原因不明のため、とりあえず "apt-get install elasticsearch=7.8.0" で 元々のバージョン Elasticsearch 7.8.0 にバージョンダウンしてみる。
root@user-pc:/var/log/elasticsearch# apt-get install elasticsearch=7.8.0
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libfprint-2-tod1 libllvm9
これを削除するには 'apt autoremove' を利用してください。
以下のパッケージは「ダウングレード」されます:
  elasticsearch
アップグレード: 0 個、新規インストール: 0 個、ダウングレード: 1 個、削除: 0 個、保留: 0 個。
319 MB 中 0 B のアーカイブを取得する必要があります。
この操作後に 111 kB のディスク容量が解放されます。
続行しますか? [Y/n] y
dpkg: 警告: elasticsearch を 7.9.1 から 7.8.0 にダウングレードしています
(データベースを読み込んでいます ... 現在 202389 個のファイルとディレクトリがインストールされています。)
.../elasticsearch_7.8.0_amd64.deb を展開する準備をしています ...
elasticsearch (7.8.0) で (7.9.1 に) 上書き展開しています ...
elasticsearch (7.8.0) を設定しています ...
新バージョンの設定ファイル /etc/elasticsearch/log4j2.properties をインストールしています ...
Created elasticsearch keystore in /etc/elasticsearch/elasticsearch.keystore
systemd (245.4-4ubuntu3.2) のトリガを処理しています ...
Elasticsearchのサービスを起動してみる。
user@user-pc:~$ sudo systemctl start elasticsearch.service
[sudo] user のパスワード:
user@user-pc:~$ systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
    Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
    Active: active (running) since Fri 2020-09-04 17:02:06 JST; 15s ago
      Docs: https://www.elastic.co
  Main PID: 14152 (java)
      Tasks: 82 (limit: 4656)
    Memory: 1.3G
    CGroup: /system.slice/elasticsearch.service
            ├─14152 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative>
            └─14356 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

9月 04 17:01:44 user-pc systemd[1]: Starting Elasticsearch...
9月 04 17:02:06 user-pc systemd[1]: Started Elasticsearch.
lines 1-13/13 (END)
Fessのサービスを起動してみる。
user@user-pc:~$ sudo systemctl start fess.service
user@user-pc:~$ systemctl status fess.service
● fess.service - Fess
    Loaded: loaded (/lib/systemd/system/fess.service; enabled; vendor preset: enabled)
    Active: active (running) since Fri 2020-09-04 17:02:44 JST; 12s ago
      Docs: http://fess.codelibs.org/
  Main PID: 14429 (java)
      Tasks: 32 (limit: 4656)
    Memory: 608.4M
    CGroup: /system.slice/fess.service
            └─14429 /bin/java -Xms512m -Xmx512m -XX:MaxMetaspaceSize=256m -XX:CompressedClassSpaceSize=32m -Djava.awt.headless=true -Dhttp>

9月 04 17:02:44 user-pc systemd[1]: Started Fess.

正常に起動できた。


Elasticsearch

■ Metricbeat:アンインストール

Metricbeat ?
https://www.elastic.co/jp/beats/metricbeat


アンインストール方法


PowerShell にて Metricbeat フォルダ内の "uninstall-service-metricbeat.ps1" スクリプトを実行、
これで metricbeat のサービス停止とサービス削除が完了する。

※ PowerShellでスクリプトを実行するには実行ポリシーの変更が必要。
設定方法は過去ブログを参照。
PowerShell学習 #2:スクリプトを実行するには?


Metricbeat, Elasticsearch

Elastic Stack #7:Twitterのつぶやき履歴を集めてみる 3



Elasticsearchにデータを送る

outputにelasticsearchプラグイン設定を追加する
output {
  stdout {
    codec => rubydebug
  }
  elasticsearch {
    hosts => "http://localhost:9200/"
  }
}
Elasticsearchの起動は
C:\apps\elasticsearch-7.4.0\bin\elasticsearch.bat

logstash起動し、コンソールにCSV内容が表示されることを確認
 : 省略
{
      "@version" => "1",
          "path" => "d:/temp/20191011/CSV/work191010.csv",
          "host" => "DESKTOP-37HDMPE",
    "@timestamp" => 2019-10-31T08:13:09.688Z,
          "tags" => [
        [0] "csv"
    ],
       "message" => "\"1182187647629873152\",\"191010 155433\",\"テスト\""
}

CSVフィルターの設定

CSVファイルを読み込む場合はCSVフィルターを使う
logstash.confにCSVフィルターの設定を追記
filter {
  csv {
  }
}
この状態でlogstashを起動するとコンソールにCSVの内容が表示される
 : 省略
{
          "tags" => [
        [0] "csv"
    ],
      "@version" => "1",
       "message" => "\"1182187647629873152\",\"191010 155433\",\"テスト\"",
       "column1" => "1182187647629873152",
    "@timestamp" => 2019-10-31T22:31:34.928Z,
          "path" => "d:/temp/20191011/CSV//work191010.csv",
          "host" => "DESKTOP-37HDMPE",
       "column2" => "191010 155433",
       "column3" => "テスト"
}
不要な項目(フィールド)を消したい場合は remove_fieldオプションを指定 "remove_field => [フィールド名,…]"

例)
filter {
  csv {
    remove_field => ["column1","host","path"]
  }
}
出力結果
{
       "column2" => "191010 155433",
      "@version" => "1",
       "message" => "\"1182187647629873152\",\"191010 155433\",\"テスト\"",
          "tags" => [
        [0] "csv"
    ],
    "@timestamp" => 2019-10-31T22:42:03.559Z,
       "column3" => "テスト"
}
@timestampはLogstashがデータを取り込んだ時間。
CSVログの日時は"column2"フィールド。
column2フィールドを@timestampとして使用する場合は、CSVフィルターのconvertオプションに "フィールド名 => 型" の書式で指定。
また書式を指定する場合はdateフィルタのmatchオプションを使用する。

例)
filter {
  csv {
    convert => {
     "column2" => "date_time"
    }
    remove_field => ["column1","host","path"]
  }
  date {
    match => [ "column2", "YYMMdd HHmmss" ]
  }
}
出力結果
{
       "column2" => "191010 155433",
       "message" => "\"1182187647629873152\",\"191010 155433\",\"テスト\"",
    "@timestamp" => 2019-10-10T06:54:33.000Z,
      "@version" => "1",
       "column3" => "テスト",
          "tags" => [
        [0] "csv"
    ]
}

コンフィグテスト

設定したコンフィグが正しいかテストを行う場合は-tオプションを指定
.\bin\logstash.bat -f .\config\logstash.conf -t



Elastic Stack, Elasticsearch

Elastic Stack #6:Twitterのつぶやき履歴を集めてみる 2



input file(CSVファイル)が読み込めない件への対処

input - file - pathの記述変更:
1) パス区切りは "\" でなく "/"(スラッシュ) を使用する
2) 拡張子は大文字で指定 ("csv" → "CSV")
3) ワイルドカードのアスタリスクは2つ書く必要なし

1)の対処で直ることが多いが動作不安定 (CSVファイルを正しく読み込めたり、読み込めなかったり…)
読み込めない場合は2)の対処で直ったり、最後の"/"を"//"にすると直ったり、よくわからない。

ちなみに読み込めた時のコンフィグファイル:
input{
  file{
    path => "d:/temp/20191011/csv//*.CSV"
    start_position => "beginning"
    tags => "csv"
  }
}
output{
  stdout{ codec => rubydebug }
}
そういうものか、ということで先に進む。


Elastic Stack, Elasticsearch

Elastic Stack #5:Twitterのつぶやき履歴を集めてみる 1



Twilogサービスへの登録

Twitterの情報を集めるため https://twilog.org/ へアカウントを登録する

というか、まったくツイートしたことが無いので、1件だけツイートした。

Twilogの [管理] メニューを選択
ログのダウンロードで [CSV(UTF8)] ボタンをクリックしダウンロード

ダウンロードしたファイルは 拡張しgz の圧縮ファイルなので7-Zipで解凍
以下フォルダ直下にCSVファイルをコピー
"d:\temp\20191011\CSV"

logstash.conf設定

Logstashの設定 → "C:\apps\logstash-7.4.0\config\logstash.conf"

この設定ファイルは3つの部分に分けれている
1) input … データの取得元を指定
2) filter … データの加工方法を指定
3) output … データの送り先を指定

1) input
ログをどこから取得するか?
ログの取得間隔
Logstashサービス再開時の挙動

2) filter
ログをどのように加工・整形するか?

3) データをどこに送るか?
Elasticsearch以外にもCSV形式なども可能

fileプラグイン
input部分では情報の取得元ごとにプラグインが提供されている
今回はCSVファイル取得のため fileプラグイン を使用

プラグインの一覧は https://www.elastic.co/guide/en/logstash/index.html
→ [Logstash Reference: 7.4 (current)] - [Input plugins] にて確認

inputプラグインの記載方法
input{
  利用するプラグイン名{
    設定を記載
  }
}
pathの記載
fileプラグインではpath指定は必須
"path => ファイルパス" のように指定する
input{
  file{
    path => "/フォルダのフルパス/logs/**.csv"
  }
}
標準出力への出力
outputにstdoutを指定することで、コンソール上に標準出力できる
output{
  stdout{ codec => rubydebug }
}
ファイルの読み込み位置指定
既定ではLogstash起動後の更新分しかデータを取得しないので、最初から取得するように設定
「start_position => "beginning"」

ファイルにタグをつけて分類
「tags => "好きな名前"」で指定
ここでは「tags => "csv"」とする

以上をまとめると
次の内容をlogstash.confに書き込み
input{
  file{
    path => "d:\temp\20191011\csv\**.csv"
    start_position => "beginning"
    tags => "csv"
  }
}
output{
  stdout{ codec => rubydebug }
}

Logstash起動

コマンドプロンプトより以下コマンドで起動
C:\Windows\system32>cd /d c:\apps\logstash-7.4.0
c:\apps\logstash-7.4.0>.\bin\logstash.bat -f .\config\logstash.conf
→ コンソールにCSVデータが出力される、らしいが出ない…
[2019-10-11T17:03:53,279][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}


ElasticSearch, ElasticStack

Elastic Stack #4:インストール 3

※ 前回記事:#3:インストール 2
記事一覧


Kibanaのインストール

以下サイトの [WINDOWS] をクリックしダウンロード
https://www.elastic.co/jp/downloads/kibana

ダウンロードした kibana-7.4.0-windows-x86_64.zip を解凍し C:\apps\kibana-7.4.0 へコピー

設定ファイル編集
C:\apps\kibana-7.4.0\config\kibaya.ymlを編集
"#elasticsearch.hosts:" の行を探し (7.4.0では28行目) ElasticsearchのURLに変更

今回作成したElasticsearchのURLは「http://localhost:9200」のはず
ということで以下のように修正(コメントを外しただけ)
#elasticsearch.hosts: ["http://localhost:9200"]

elasticsearch.hosts: ["http://localhost:9200"]

Kibanaの起動確認

C:\apps\kibana-7.4.0\bin\kibana.bat をダブルクリックし実行
すると、以下メッセージ
WindowsによってPCが保護されました。
Windows Defender SmartScreenは認識されないアプリの起動を停止しました。
アプリを実行すると、PCに問題が起こる可能性があります。


[詳細情報]リンクをクリックすると[実行]ボタンが出てくるので、実行する.

ブラウザ(Chrome)で以下URLにアクセス
http://localhost:5601

とりあえず何か画面が表示されたので大丈夫と思われる


Elastic Stack, Elasticsearch, Kibana

Elastic Stack #3:インストール 2



Logstashのインストール

以下サイトよりダウンロード
https://www.elastic.co/jp/products/logstash
[ダウンロード] - [ZIP] をクリック

ダウンロードした logstash-7.4.0.zip を解凍 C:\apps\logstash-7.4.0 へコピー

設定
c:\apps\logstash-7.4.0\config\logstash.conf を新規作成し以下内容を書き込む
input {
  stdin { }
}

output {
  stdout { codec => rubydebug }
}

動作テスト

コマンドプロンプトより以下コマンドを実行
D:\>cd /d c:\apps\logstash-7.4.0

c:\apps\logstash-7.4.0>.\bin\logstash -f .\config\logstash.conf
しばらく待つと Successfully started Logstash API endpoint の表示で待機となる。
Thread.exclusive is deprecated, use Thread::Mutex
Sending Logstash logs to c:/apps/logstash-7.4.0/logs which is now configured via log4j2.properties
[2019-10-10T12:23:46,021][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2019-10-10T12:23:46,039][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"7.4.0"}
[2019-10-10T12:23:48,327][INFO ][org.reflections.Reflections] Reflections took 48 ms to scan 1 urls, producing 20 keys and 40 values
[2019-10-10T12:23:51,869][WARN ][org.logstash.instrument.metrics.gauge.LazyDelegatingGauge][main] A gauge metric of an unknown type (org.jruby.RubyArray) has been create for key: cluster_uuids. This may result in invalid serialization.  It is recommended to log an issue to the responsible developer/development team.
[2019-10-10T12:23:51,877][INFO ][logstash.javapipeline    ][main] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>4, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50, "pipeline.max_inflight"=>500, :thread=>"#"}
[2019-10-10T12:23:52,014][INFO ][logstash.javapipeline    ][main] Pipeline started {"pipeline.id"=>"main"}
The stdin plugin is now waiting for input:
[2019-10-10T12:23:52,124][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2019-10-10T12:23:52,518][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}
適当に "hello world" と入力してみる
hello world
C:/apps/logstash-7.4.0/vendor/bundle/jruby/2.5.0/gems/awesome_print-1.7.0/lib/awesome_print/formatters/base_formatter.rb:31: warning: constant ::Fixnum is deprecated
{
       "message" => "hello world\r",
      "@version" => "1",
          "host" => "DESKTOP-37HDMPE",
    "@timestamp" => 2019-10-10T03:26:16.934Z
}
とりあえず問題なし?と思われる

※ 次回記事:#4 インストール 3

Elastic Stack, Elasticsearch

Elastic Stack #2:インストール 1



インストールの順序

[Elaticsearch] ⇒ [Logstash(Beats)] ⇒ [Kibana]

Java

Elasticsearch、Logstashの起動にはJava(バージョン8以上)が必要

評価環境

・仮想上のWindows10 1903 (18995.1)
・Javaはすでに入っている
C:\Windows\system32>java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

Elasticsearchインストール

以下サイトよりWindows版をダウンロード
https://www.elastic.co/jp/downloads/elasticsearch

ファイル名は elasticsearch-7.4.0-windows-x86_64.zip
zipファイルを解凍し、C:\apps\elaticsearch-7.4.0 へコピー

メモリ使用率の変更
C:\apps\elasticsearch-7.4.0\config\jvm.options を開き、-Xmsxx、-Xmxxxの部分を確認。
最大ヒープサイズ(Xms)は物理メモリの50%以下となるように設定する。
仮想マシンのメモリは4GBなので、とりあえず設定変更せずにおく。
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms1g
-Xmx1g
Elasticsearch起動
C:\apps\elasticsearch-7.4.0\bin\elasticsearch.bat をダブルクリックし実行
しばらく待ってDOS窓のログが
[INFO ][o.e.x.s.s.SecurityStatusChangeListener] [DESKTOP-37HDMPE] Active license is now [BASIC]; Security is disabled
から動かなくなったので、おそらく起動完了

Chromeから以下URLでアクセス
http://localhost:9200/?pretty

以下結果が表示された。おそらく正常起動している
{
  "name" : "DESKTOP-37HDMPE",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "2Nl7BGrzRM-qwq8P8NhAng",
  "version" : {
    "number" : "7.4.0",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
    "build_date" : "2019-09-27T08:36:48.569419Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

※ 次回記事:#3:インストール 2

Elastic Stack, Elasticsearch

Elastic Stack #1:基本



Elastic社が提供するツール

・Elastic Stack
・Logstash
・Elasticsearch
・Kibana
・Beats
・Elastic Cloud

Logstash

各環境に散らばっているログを集め、指定した対象に連携できるツール
ログの連携だけではなく、ログの加工機能も持つ。
コード自体はRuby言語で記載。

Elasticsearch

Javaで作られている分散処理型の検索エンジン

Kibana

Elasticsearchに貯めた情報を整形し可視化するツール。
JavaScriptde開発されており、Node.js上で実行される。

Beats

機器のデータをElasticsearchやLogstashに転送する簡易的なデータ収集ツール

Elastic Cloud

Elastic社が提供するクラウド環境
有償

※ 次回記事:#2 インストール 1

Elastic Stack, Elasticsearch

その他の記事