Elastic Stackでシステム監視 FreeBSDのportsで6.2.3に更新

FreeBSDのportsにもElasticsearch, logstash, kibana, beatsの6.2.3が来たので更新してみた。

Elasticsearchの更新

portsupgradeでElasticsearch6のバージョンを更新する。
その後でX-Packを更新する。

% cd /tmp
% wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.2.3.zip  #新しいX-Packをダウンロード

# portupgrade textproc/elasticsearch6  #Elasticsearchを更新
# cd /usr/local/lib/elasticsearch/bin
# ./elasticsearch-plugin list  #インストール済プラグインを表示
# ./elasticsearch-plugin remove xpack  #古いX-Packを除去
# ./elasticsearch-plugin install file:///tmp/x-pack-6.2.3.zip  #新しいX-Packをインストール

以前はelasticsearch-plugin install xpackとしていたが、elasticsearch-pluginによるファイル転送が良くないのか失敗するので先にwgetなどでX-Packのファイルをダウンロードしてそのファイルを指定してインストールする。

Elasticsearchを起動する。

Logstashの更新

6.2.3用のportsの出来がよろしくないようなので手を入れる部分がある。(portsツリー更新後)
おそらくportsの次のリビジョンで修正される筈。(不要パッチ削除とディレクトリオーナー変更)

portsのパッチファイルを削除してからportupgradeによるLogstash6更新を行う。

# rm /usr/ports/sysutils/logstash6/files/patch-Gemfile
# rm /usr/ports/sysutils/logstash6/files/patch-Gemfile.lock

# portupgrade sysutils/logstash6  #Logstashを更新

portupgradeによるLogstash6更新後にデータ用ディレクトリ(とその下)のオーナー変更を行う。

# chown -R logstash:logstash /usr/local/logstash/data

LogstashにX-Packをインストール。これまで試した限りではportsでLogstashを更新するとX-Packが勝手にremoveされているので手動でX-Packプラグインを除去する必要はないと思うけど一応確認しておいた方が無難。確認方法はElasticsearchやKibanaと同じく list オプションを付けてプラグインコマンドを実行。

% cd /tmp
% wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.2.3.zip  #新しいX-Packをダウンロード

# cd /usr/local/logstash/bin
# ./logstash-plugin install file:///tmp/x-pack-6.2.3.zip
Installing file: /tmp/x-pack-6.2.3.zip
Invalid date/time in zip entry
Invalid date/time in zip entry
Invalid date/time in zip entry
Invalid date/time in zip entry
Invalid date/time in zip entry
中略 (大量に表示される)
Invalid date/time in zip entry
Invalid date/time in zip entry
Invalid date/time in zip entry
Invalid date/time in zip entry
Invalid date/time in zip entry
Invalid date/time in zip entry
Install successful
# ./logstash-plugin list
中略
x-pack           ←(最後あたりに)x-packが表示されていればOK

これまでのバージョンではエラー表示が出なかったが、6.2.3のX-PackではInvalid date/time in zip entryというメッセージが超大量に出続ける。しかし、最後にInstall successfulになれば問題ないとのこと。
Logstashを起動する。

Kibanaの更新

portupgradeでkibana6を更新する。
以下はX-Packの更新。

% cd /tmp   #1行目と2行目はLogstash用と同じファイルなので既に取得済なら不要
% wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.2.3.zip

# portupgrade textproc/kibana6  #Kibanaを更新
# cd /usr/local/www/kibana6/bin
# ./kibana-plugin list    #インストール済みのプラグインを確認
# ./kibana-plugin remove x-pack  #古いX-Packを除去
# ./kibana-plugin install file:///tmp/x-pack-6.2.3.zip   #新しいX-Packをインストール
Kibanaを起動する。

Beatsの更新

こちらは普通にportupgradeで更新して、動かしているbeatを再起動するだけっぽい。
ただし、MetricbeatとFilebeatしか試してない。

# portupgrade sysutils/beats

最近Elastic Stackなどのportsのメンテナが雑な人らしい。ビルドして動作の隅々まで確認しろとは思わないけど、最低でもビルドできるものだけをコミットしてよと思う。今回のLogstashなんて旧バージョン用のパッチを当てようとして失敗してそこで停まるレベルというか、Makefileの中の対象バージョンを書き換えただけなのでそれを素通しはちょっと酷い。

関連記事: