Qlik Sense Enterprise on Kubernetes でのログの表示
問題およびアクティビティのデバッグに使用可能な Qlik Sense Enterprise on Kubernetes emit ログ データ内のすべてのサービス。ログは、オンデマンドで読み取るか、照合してログ集計製品にプッシュし、さらに分析および使用することができます。
サービス ログの表示
たとえば問題のデバッグのためにサービスの最近のログを調べるには、Kubernetes CLI (またはその他の Kubernetes 管理ツール) を使用してログ データをすばやく表示することができます。
以下の説明では、kubectl ツールがインストールされて Kubernetes クラスターに接続されていることが前提です。
次のコマンドを実行して実行中のサービスの全リストを取得します。これには、いずれかのサービスがそのサービス自体を問題ありとして報告しているかどうかもリスト表示されます。
kubectl get pods
ログを検査するサービスをリストから識別し、必要に応じて次のように調整したコマンドを実行します。
Kubectl log qliksense-engine-xxxxxxx
これにより、最近のログ エントリーがコンソールに JSON 形式で表示されます。
例えば、ペンディング状態になっていて pod が実行されていない場合、ログ エントリは発行されません。この場合は、次のコマンドを使用し、その pod 構成に関して Kubernetes が報告している問題を確認することができます。
kubectl describe pod qliksense-engine-XXXXX
pod が起動しない場合は、次の 2 つの一般的な理由が考えられます。
- ストレージ構成の誤り - この場合は、ボリューム クレームの可用性に関する問題が報告されます。
- リソースの不足 - Kubernetes プロバイダによっては、リソースが不足していたり、ノードで実行可能な pod の数に制限があったりする場合があります。このインスタンスでは、pod のエラーが “unschedulable” として報告されます。
ログの照合および転送
生成されるログは、ログ集計ツール内で大量データについての すべてのシステム ログを収集、保存、検索、表示するために転送可能です。
以下に、サード パーティのツールの使用例を示します。
- fluentd でのシステム ログの収集
-
Elasticsearch でのログ ファイルの保存
情報メモ Elasticsearch は、相当量のリソースを必要とするため、Kubernetes クラスターに大量の使用可能なメモリと CPU が存在しないかぎり、ローカル マシンで実行することは推奨されません。 - Kibana でのログ ファイルの消費
Elasticsearch のインストール
Elasticsearch は、HTTP Web インターフェイスとスキーマフリー JSON ドキュメントを備えた、分散型マルチテナント対応のフルテキスト検索エンジンです。
この例では、持続性を何も含まない最小セットアップの Elasticsearch をインストールします。
-
elasticsearch.yaml という名前でファイルを作成してインストールの優先設定を行い、以下の行を追加します。
image: tag: "6.1.4" client: replicas: 1 resources: limits: cpu: "0.5" memory: "1024Mi" ## not setting a limit here can take down the cluster using all available memory # requests: # use defaults # cpu: "25m" # memory: "512Mi" master: persistence: enabled: false replicas: 2 # heapSize: "512m" ## use default, should be less than request, MUST be less than limit resources: limits: cpu: "0.5" memory: "1024Mi" ## set a limit # requests: # use defaults # cpu: "25m" # memory: "512Mi" data: persistence: enabled: false replicas: 1 heapSize: "512m" resources: limits: cpu: "0.5" memory: "1024Mi" requests: cpu: "25m" memory: "512Mi"
-
次のコマンドを実行して Elasticsearch をインストールします。
helm upgrade --install elasticsearch incubator/elasticsearch -f ./elasticsearch.yaml
fluentd のインストール
Fluentd は、統合ログ レイヤーのオープン ソース データ コレクターです。これにより、データの収集と消費を統合して、データの利用効率を高め、よりよく理解することができます。次のステップに従って fluentd をインストールします。
-
fluentd.yaml という名前でファイルを作成してインストールの優先設定を行い、以下の行を追加します。
elasticsearch: host: elasticsearch-elasticsearch-client
-
次のコマンドを実行して fluentd をインストールします。
helm upgrade --install fluentd incubator/fluentd-elasticsearch -f fluentd.yaml
Kibana のインストール
Kibana により、Elasticsearch データを視覚化し、エラスティック スタックをナビゲートすることができます。また、ログを 表示および検索することもできます。次のステップに従って Kibana をインストールします。
-
kibana.yaml という名前でファイルを作成してインストールの優先設定を行い、以下の行を追加します。
env: ELASTICSEARCH_URL: http://elasticsearch-elasticsearch-client:9200
-
次のコマンドを実行して Kibana をインストールします。
helm upgrade --install kibana stable/kibana -f kibana.yaml
Kibana へのアクセス
次のコマンドを実行して Kibana にアクセスします。
export POD_NAME=$(kubectl get pods --namespace default -l "app=kibana,release=kibana" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:5601 to access Kibana"
kubectl port-forward $POD_NAME 5601
Kibana では、次のクエリを実行してセットアップをテストすることができます。
kubernetes.container_name:engine