kubernetes
X-Pack
ELK
ibmcloudprivate

IBM Cloud Private(ICP)標準ELKのX-Packにライセンスを導入する

目的

IBM Cloud Private(ICP)は標準でELKスタックが導入され、システムやアプリケーションのログを管理しています。そしてELKの拡張機能であるX-Packもプラグインとして導入されていますが、機能は無効化されています。それは、X-Packがライセンス製品のためだと考えられます。しかしX-Packには便利な機能が多いため、今回はこの標準ELKにX-Packのライセンスを導入してみます。

検証環境
- IBM Cloud Private 2.1.0.2 (Kubernetes 1.9.1)
- ELK 5.5.1

手順

X-Packライセンスの取得

公式サイトでライセンスを取得することができます。Basicライセンスは無料ですので、今回はこれを使います。ライセンスの有効期間は1年間ですので、これで本番運用する場合は、ライセンスの更新にご注意ください。

具体的な手順はサイトに従ってください。しばらく待つとガイドがメール送信されてきます。

現在のライセンスの確認

ElasticsearchにAPIを投げて確認します。elasticsearch-client Podのes-clientコンテナを使います。

$ kubectl get pods -n kube-system | grep elasticsearch-client
elasticsearch-client-56cf688d8f-7cwzj                     2/2       Running   2          8d

$ kubectl exec -it -n kube-system -c es-client elasticsearch-client-56cf688d8f-7cwzj bash

[elasticsearch-client]$ curl http://elasticsearch:9200/_xpack/license
{
  "license" : {
    "status" : "active",
    "uid" : "c49e0cb6-17e3-4e58-89a9-a4865fb3224e",
    "type" : "trial",
    "issue_date" : "2018-03-25T05:33:15.951Z",
    "issue_date_in_millis" : 1521955995951,
    "expiry_date" : "2018-04-24T05:33:15.951Z",
    "expiry_date_in_millis" : 1524547995951,
    "max_nodes" : 1000,
    "issued_to" : "elasticsearch-cluster",
    "issuer" : "elasticsearch",
    "start_date_in_millis" : -1
  }
}

"type": "trial"になっているのがわかります。

ライセンスの更新

先ほどダウンロードしたライセンスファイルをコンテナ内にファイルとして保存します。viでもechoでも何でもいいです。

次のコマンドでライセンスを更新します。

[elasticsearch-client]$ curl -XPUT http://elasticsearch:9200/_xpack/license?acknowledge=true -H 'Content-type: application/json' -d @lic.txt
{"acknowledged":true,"license_status":"valid"}

[elasticsearch-client]$ curl http://elasticsearch:9200/_xpack/license 
{
  "license" : {
    "status" : "active",
    "uid" : "f38c7929-6cd5-453e-b829-bccf542c85fd",
    "type" : "basic",
    "issue_date" : "2018-04-08T00:00:00.000Z",
    "issue_date_in_millis" : 1523145600000,
    "expiry_date" : "2019-04-08T23:59:59.999Z",
    "expiry_date_in_millis" : 1554767999999,
    "max_nodes" : 100,
    "issued_to" : "Teruyuki Takazawa (***)",
    "issuer" : "Web Form",
    "start_date_in_millis" : 1523145600000
  }
}

"type": "basic"になりました。これでライセンスの導入は完了です。