Elasticsearch 6.0.0 の Docker イメージで X-Pack 不要なときのアレ(追記あり)

Elasticsearch 6.0.0 がリリースされていました。

Elastic 社の Docker レジストリにも 6.0.0 のイメージが来ていたのでさっそくお試し。

analysis-kuromoji が使いたいのと X-Pack は不要なので、おもむろに下記のような Dockerfile でビルド。

FROM docker.elastic.co/elasticsearch/elasticsearch:6.0.0
RUN elasticsearch-plugin install analysis-kuromoji
RUN elasticsearch-plugin remove x-pack

Elasticsearch 5.6.x のイメージではこれで問題なかったのですが、 6.0.0 のイメージでは以下のようなエラーで Elasticsearch が起動しません。

[2017-11-15T10:41:35,496][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: unknown setting [xpack.license.self_generated.type] please check that any required plugins are installed, or check the breaking changes documentation for removed settings
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:134) ~[elasticsearch-6.0.0.jar:6.0.0]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:121) ~[elasticsearch-6.0.0.jar:6.0.0]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:69) ~[elasticsearch-6.0.0.jar:6.0.0]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-6.0.0.jar:6.0.0]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-6.0.0.jar:6.0.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.0.0.jar:6.0.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.0.0.jar:6.0.0]

6.0.0 のイメージに含まれる elasticsearch.ymlxpack.license.self_generated.type という X-Pack の設定が入ったようです。

これを回避するには、 Dockerfile に以下のような行を加えて、 X-Pack 関連の設定を含まない elasticsearch.yml で上書きしてビルドしてしまうか...

COPY --chown=elasticsearch:elasticsearch elasticsearch.yml /usr/share/elasticsearch/config/

もしくは、 X-Pack はアンインストールせず、 docker run 時に -e "xpack.security.enabled=false" のような感じで、 X-Pack の不要な機能をオフにするのが良さそう。設定で X-Pack の機能をオフにする方法で、 X-Pack の試用期間である30日経過した場合の挙動は謎(未検証)。

ここから追記

Elastic の中の人からツッコミがありまして、 6.0.0 から X-Pack がインストールされていない oss というフレーバのイメージが追加されたとのことでした。 docker.elastic.co/elasticsearch/elasticsearch-oss:6.0.0 という名前で使えるようです。 Docker レジストリのページには現時点では記載がないですが、レジストリのページにも載ってました...)ドキュメントにしっかり書いてありましたね...

www.elastic.co

X-Pack 不要な場合は最初からこれを使えば良いですね。 Elastic 社最高!

9年目

肉の日ということで、入社9年目突入。例年は社内 SNS の日記にn年目〜と書いていたのだけど、社内 SNS は衰退してしまったのでこちらに。

去年の今頃は某所の Elasticsearch 移行をやっていたようです。今年は引き続き Elasticsearch と戯れたり、渋英(今年5回目)にラーメンを食べにいったり。

2016年振り返り(渋英編)

今年最後の渋英のラーメン(週一食以上食べないという自主規制があるのでもう増えない)を頂いてきたので、今年渋英に行った日まとめです。

  • 01/14 木
  • 01/29 金
  • 02/04 木
  • 02/10 水
  • 02/18 木
  • 03/03 木
  • 03/10 木
  • 03/24 木
  • 04/01 金
  • 04/07 木
  • 06/03 金
  • 07/14 木
  • 07/21 木
  • 07/28 木
  • 08/04 木
  • 08/09 火
  • 08/26 金
  • 09/08 木
  • 09/16 金
  • 09/21 水
  • 10/06 木
  • 10/13 木
  • 10/20 木
  • 10/27 木
  • 11/04 木
  • 11/10 木
  • 11/17 木
  • 11/24 木
  • 12/01 木
  • 12/08 木
  • 12/26 月

というわけで、 31回 でした。行き過ぎと言われますが意外と少ないですね!

最近は木曜日以外に渋英に行くとなぜか一部同僚や知人に文句を言われますが、木曜日に食べたのは31回中22回で 約70% です。意外と木曜日以外にも行くので私が渋英の写真を上げたからといって木曜日と思い込むのはやめましょう。

4月から6月にかけてあまり渋英に行ってないように見える期間は、訳あって系列店の渋三に通っていました。こちらは以下の5回でした。

  • 04/21 木
  • 05/06 金
  • 05/12 木
  • 06/16 木
  • 06/30 木

2017年も渋英のラーメン食べて健康生活。

ngx_mruby, mod_mruby で自身のバージョンを出力するスクリプト

nginx -V などのコマンドでは表示されない、 Web サーバに組み込んだ ngx_mruby, mod_mruby のようなモジュールと mruby のバージョン情報を JSON として出力する簡単なスクリプトを書きました。

使用例

location /info {
  mruby_content_handler /path/to/nginx/conf.d/mruby_info/mruby_info.rb cache;
}

Nginx ならこんな感じで設定しておくと...

$ curl -s http://localhost/info | jq
{
  "server_name": "NGINX",
  "server_version": "1.11.5",
  "mruby_version": "1.2.0",
  "module_name": "ngx_mruby",
  "module_version": "1.18.7"
}

このように curl などで確認できます。

ngx_mruby は活発に開発が行われているプロダクトですので、使っているうちにこの Nginx バイナリに入ってる ngx_mruby いつのだっけ?ということに(少くとも自分は)なりがちですが、そういうときに簡単に確認できて便利かもしれない。

口腔内改革 2016

時々痛む歯があるのと、前回がいつだったか忘れるレベル(おそらく7, 8年)で歯の検診もしてなかったので、会社近くの歯医者さんに行ってきた。

この機会に口の中の問題は一掃!口腔内改革だ!とばかりの勢いだったが、結果的には虫歯はなく、歯石を取ってきれいにしてもらって終了。とはいえ、自分の歯の状態について詳しく知ることができたし、当面の安心感も得ることができたので行って良かった。

今後はときどき検診に行くようにしていきたい。

自宅無線 LAN のアクセスポイントをリプレイス

最近、自宅の無線 LAN が調子悪かったのだけど、状況からルーター兼アクセスポイントとして使っている AirMac Extreme (縦長デザインになる前の IEEE802.11n 対応のやつ)のアクセスポイントとしての機能に問題が生じているのだろうとあたりをつけて、アクセスポイントだけリプレイスした。といっても、最近は個人向けだとほぼルーターを兼ねたものしか売ってないので NECWG1200HS という Wi-Fi ルータを購入し、ブリッジモードで設定。

今のところ問題は再現してないし、ついでに IEEE802.11ac 対応になって快適。