メインコンテンツへ移動

アプリケーションログと利用分析の異常

アプリケーションログが更新されない場合や、利用分析ページが空白になる場合は、以下の手順で対処します。

原因​

Elasticsearch のデータディスク使用率が過去に 95% に達した場合や満杯になった場合、インデックスの読み取り専用保護が作動し、新しいログを書き込めなくなることがあります。現在は空き容量が回復していても、読み取り専用設定を確認してください。主なエラーは以下のとおりです。

disk usage exceeded flood-stage watermark
index has read-only-allow-delete block

読み取り専用制限の解除​

ディスクを拡張するか不要なデータを削除して Elasticsearch のデータディスク使用率を 90% 未満に下げてから、すべてのインデックスの制限を解除します。

  1. ストレージコンポーネントのコンテナに入る

    スタンドアロンサーバーで sc コンテナに入ります。

    docker exec -it $(docker ps | grep mingdaoyun-sc | awk '{print $1}') bash
  2. すべてのインデックスの制限を解除

    sc コンテナ内で読み取り専用制限を解除します。

    curl -sS -u 'md:ESPassWD1234' -X PUT 'http://127.0.0.1:9200/*/_settings?expand_wildcards=all' \
    -H 'Content-Type: application/json' \
    -d '{"index.blocks.read_only_allow_delete": null}'
  3. 解除結果を確認

    sc コンテナ内で読み取り専用設定を確認します。

    curl -sS -u 'md:ESPassWD1234' 'http://127.0.0.1:9200/_settings/index.blocks.read_only_allow_delete?expand_wildcards=all&flat_settings=true&pretty'

    確認後、exit を実行してコンテナから退出します。

更新結果に "acknowledged": true が返され、確認結果で index.blocks.read_only_allow_delete が削除済み、または false になっていれば解除成功です。

HAP で操作を行い、新しいアプリケーションログが表示されるか確認します。読み取り専用制限が再発する場合は、各 Elasticsearch ノードのディスク容量を確認してください。

Elasticsearch データの再構築​

過去のログを再表示するには、Elasticsearch データを再構築します。サービスにより、MongoDB に保持されている元のログが Elasticsearch に再度書き込まれます。

  1. サービスを停止

    マネージャーのルートディレクトリでマネージャーと HAP サービスを停止します。

    bash ./service.sh stopall
  2. Elasticsearch データディレクトリを移動

    サービスの停止を確認してから、ホスト上の Elasticsearch データディレクトリの名前を変更します。

    mv /data/mingdao/script/volume/data/elasticsearch-8 /data/mingdao/script/volume/data/elasticsearch-8.bak-$(date +%Y%m%d%H%M%S)
  3. サービスを起動

    マネージャーのルートディレクトリでサービスを起動します。

    bash ./service.sh startall

再構築の所要時間はデータ量によって異なります。データ量が多い場合は、より長い時間がかかります。

  • アプリケーションログはデータの書き込みに伴って順次表示されます。欠けていた期間のログが復元されたか確認してください。
  • 利用分析のグラフは 24 時間キャッシュされる場合があります。再構築後すぐに更新されない場合は、翌日に再度確認してください。