kibanaの日本語化まで(Dockerベース)

## 背景
- 久しぶりにElastic系が使いたくなり、立ち上げてみた（Elastic cloudではなく）
- 日本語化をしてなかったのでしたくなった
- 日本語化がほんの少し面倒だったので、備忘のため

## ベース
- ubuntu19.04
- Dockerは導入済み
- kibanaは7.6.1で立てる

## コンテナの起動
このあたりを参考にさせてもらった。そのまま掲載
https://qiita.com/ajitama/items/c2deb9c3bdde61660f92

- ネットワークブリッジの用意  

```
docker network create elasticsearch --driver bridge
```

- Elastic Search (7.6.1) のコンテナ起動

```
docker run -d -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" -e "xpack.security.enabled=false" -e "xpack.monitoring.enabled=false"     -e "xpack.watcher.enabled=false" -e "xpack.graph.enabled=false" -e "xpack.ml.enabled=false" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -p 9200:9200 -p 9300:9300 --name elasticsearch --network="elasticsearch" docker.elastic.co/elasticsearch/elasticsearch:7.6.1
```

- Kibana (7.6.1) のコンテナ起動
    - XXXXXはElastic Searchは適当に合わせて変更する
    - --privilegedは消してもOK（この後の手順でKibanaの再起動時にsystemctlを使おうと思ったけどダメだったこともあり）

```
docker run -d --privileged --name kibana -p 5601:5601 -e "ELASTICSEARCH_URL=http://XXXXXX:9200" -e "xpack.graph.enabled=false" -e "xpack.security.enabled=false" -e "xpack.ml.enabled=false" --network="elasticsearch" docker.elastic.co/kibana/kibana:7.6.1
```

- ここまでで一旦サービスは起動済みのはず

```
root@xxx:~# docker ps -a
CONTAINER ID        IMAGE                                                 COMMAND                  CREATED             STATUS                    PORTS                                            NAMES
9ded6340d965        docker.elastic.co/kibana/kibana:7.6.1                 "/usr/local/bin/dumb…"   29 minutes ago      Up 22 minutes             0.0.0.0:5601->5601/tcp                           kibana
a0161d387e5b        docker.elastic.co/elasticsearch/elasticsearch:7.6.1   "/usr/local/bin/dock…"   2 hours ago         Up 2 hours                0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch
```

## 日本語化まで
- root権限が必要なので、```-u 0```オプション等をつけて起動すること

```
docker exec -u 0 -it kibana bash
```

- お目当ての日本語化ファイルの配置場所に```cd```すると既にファイルが存在する
    - translataionファイルの居場所は```/usr/share/kibana/x-pack/plugins/translations/translations/```
    - 念のためwgetする場合は```https://github.com/elastic/kibana/raw/master/x-pack/plugins/translations/translations/ja-JP.json```から取得し置き換える
    - 自分は面倒だったので変えなかった。話題のDeepLとかで翻訳したほうが実はいいかも

```
[root@9ded6340d965 kibana]# cd /usr/share/kibana/x-pack/plugins/translations/translations/
[root@9ded6340d965 translations]# ll
total 3152
-rw-rw-r-- 1 kibana root 1746780 Feb 29 00:51 ja-JP.json
-rw-rw-r-- 1 kibana root 1478465 Feb 29 00:51 zh-CN.json
```

- ymlの書き換えを実施
    - Editorが入ってないと思うので、```yum install -y vim```とかでinstallすること
    - ymlの居場所は```/usr/share/kibana/config/kibana.yml```

```
[root@9ded6340d965 translations]#vim /usr/share/kibana/config/kibana.yml
#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

↓↓ここから追加した↓↓
# Specifies locale to be used for all localizable strings, dates and number formats.
# #i18n.locale: "en"
i18n.locale: "ja-JP"
```

- あとはサービスの再起動
    - ここでsystemctlを使おうとしたら、```Failed to get D-Bus connection: Operation not permittedc```のエラーが出てしまったので、早々に諦め
    - コンテナ自体を再起動でDone
    
```
docker restart kibana
```

### でアクセスすると、日本語で起動してるね！ＯＫ！

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249358/2bb16c3a-9adf-65de-e647-4697827524ad.png)

### 備考
- こういう時だからこそ、たまには記事書くのもいいかも