Elasticsearchをアップデートしたら起動できなくなったのでKuromojiプラグインを再インストールした
Ubuntuのパッケージを更新したところ、ElasticsearchとKibanaのバージョンが5.6.7にアップデートされていました。 OS再起動ののちElasticsearchとKibanaの起動状態を見てみたところElasticsearchだけ起動していません。
$ sudo service --status-all | grep -e "elastic" -e "kibana" [ - ] elasticsearch [ + ] kibana
以前、Elasticsearchを5.0.0から5.4.0にアップデートした時、Kuromojiプラグインがバージョン非対応になり起動できなくなった経緯*1があります。恐らく同事象だと思いElasticsearchのログ(/var/log/elasticsearch/elasticesarch.log
)を見たところ、やはりKuromojiプラグインのバージョンが原因のようです。
[2018-02-06T23:49:32,824][ERROR][o.e.b.Bootstrap ] Exception java.lang.IllegalArgumentException: plugin [analysis-kuromoji] is incompatible with version [5.6.7]; was designed for version [5.4.0] at org.elasticsearch.plugins.PluginInfo.readFromProperties(PluginInfo.java:146) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Spawner.spawnNativePluginControllers(Spawner.java:80) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:168) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) [elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) [elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) [elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) [elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) [elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) [elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) [elasticsearch-5.6.7.jar:5.6.7] [2018-02-06T23:49:32,845][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main] org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: plugin [analysis-kuromoji] is incompatible with version [5.6.7]; was designed for version [5.4.0] at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) ~[elasticsearch-http://blog.hatena.ne.jp/mamori017/mamori017.hatenablog.com/edit#5.6.7.jar:5.6.7] at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.6.7.jar:5.6.7] Caused by: java.lang.IllegalArgumentException: plugin [analysis-kuromoji] is incompatible with version [5.6.7]; was designed for version [5.4.0] at org.elasticsearch.plugins.PluginInfo.readFromProperties(PluginInfo.java:146) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Spawner.spawnNativePluginControllers(Spawner.java:80) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:168) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) ~[elasticsearch-5.6.7.jar:5.6.7] at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) ~[elasticsearch-5.6.7.jar:5.6.7] ... 6 more
ログにはインストールされているKuromojiプラグインはElasticsearch 5.4.0用で、 5.6.7は非対応と書かれているのでプラグインを手動で更新します。 プラグインを上書きインストールをしようとするとエラーになったので一旦削除ののち再インストールします。
# 削除 $ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin remove analysis-kuromoji # インストール $ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
Kuromojiプラグインを再インストール後、Elasticsearchを手動起動したところサービスが立ち上がるようになりました。
$ sudo /etc/init.d/elasticsearch start [ ok ] Starting elasticsearch (via systemctl): elasticsearch.service. $ sudo service --status-all | grep "elastic" [ + ] elasticsearch
データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]
- 作者: 鈴木健太,吉田健太郎,大谷純,道井俊介
- 出版社/メーカー: 技術評論社
- 発売日: 2017/09/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
*1:2017/5/7、5.0.0->5.4.0アップデート時に同様の記事を書いていたので削除した。
UbuntuにJenkinsをインストールした
Ubuntuの環境を新しく作ることにしたので手始めにJenkinsをインストールしました。
手順はJenkinsのWikiを参照しました。
Installing Jenkins on Ubuntu - Jenkins - Jenkins Wiki
こちらのページの手順通りにコマンドを実行しましたが、扱いとしては古いようで新しいページが公開されています。
リポジトリの参照先が異なっていたりはしますが手順としてやることは変わりません。2018/1/29時点だとどちらもバージョン2.89.3がインストールされました。
古いページの手順
# 公開鍵の追加 wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - # パッケージリストにリポジトリを追加 sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' # パッケージリストのチェック sudo apt-get update # Jenkinsをインストール sudo apt-get install jenkins
新しいページの手順
# 公開鍵の追加 wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - # deb https://pkg.jenkins.io/debian-stable binary/ をパッケージリストに追加 sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list' # パッケージリストのチェック sudo apt-get update # Jenkinsをインストール sudo apt-get install jenkins
画面
Unlock Jenkins
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
で表示されるアンロック用のパスワードを入力します。
Customize Jenkins
プラグインはあとでインストールするのでおすすめされている方を選択しました。
Getting Started
待つ。
Create First Admin User
管理者ユーザーの設定をします。
Jenkins is ready!
Jenkinsのインストールが完了しました。
Function Appにリクエストクォータの上限値を設定する
Function Appにデプロイしている関数にHTTPリクエストをトリガーとしているものがあるため、 念のためリクエストクォータの上限値を設定することにしました。
この設定を行うと、1日あたりのリソースの使用量が設定値に到達すると関数が自動的に停止するようになります。 設定するリソースの使用量は、Function Appの利用料金を計算した際に使った値を使用しました。
Function Appの課金対象となる要素はリソースの使用量と実行回数になります。 ただし、400,000GB秒のリソース使用量と1,000,000回の実行回数をAzureが無料提供してくれているので、 実際の使用量からこの無料提供分の値を引いたものが請求対象となります。 とりあえず今回は実行回数1,000,000回を基準に設定することにしました。
対象となる関数の平均実行時間は1.564秒、リソースの使用量は128MBになるので、計算するとリソースの使用量は195,500GB秒になります。 リソース使用量は無料提供分の400,000GB秒以内で収まるので課金対象とならないはずです。
- リソースの使用量(秒):1,000,000(回) * 1.564(秒) = 1,564,000(秒) - リソースの使用量(GB):128MB / 1024MB = 0.125GB - リソースの使用量(GB秒):1,564,000(秒) * 0.125(GB) = 195,500(GB秒)
リソースの使用量を195,500(GB秒)とすると、1ヶ月31日として1日あたり6,306.45(GB秒)を上限にできます。
この値をFunction Appの設定にある「日ごとの使用量クォータ (GB - 秒) 」の項目に入力し「クォータの設定」ボタンをクリックすることで上限値の設定が完了します。 (対象としている関数は別に停止しても問題なく、実際のリソースの使用量は月1,000GB秒程度あれば運用できるものなので深く考えず設定しています。)
試しに適当な値を日ごとの使用量クォータに入力して関数を呼んでみると403エラーが返ってきました。
コンソール上でも関数が停止していることが確認できます。
停止した関数は手動で起動するか、日本時間の朝9時になると起動するようです。