アプリケーション(エラー)ログのインデックス作成のためにelasticsearchとKibanaをセットアップします。問題は、Kibanaの[検出]タブにデータが表示されないことです。
現在の状況
http://elasticserver.com:9200/applogs/_search?q=*
のようなElasticsearchでクエリを直接実行すると、多くの結果が返されます(単一の見つかったレコードがどのように見えるかについては以下を参照)applogs
インデックスも検出しますapplogs
ドキュメントの正しいプロパティとデータ型も表示します任意のアイデア??
Kibanaがapplogs
インデックスをどのように見るか:
弾性検索クエリ結果オブジェクトは次のようになります。
{
_index: "applogs",
_type: "1",
_id: "AUxv8uxX6xaLDVAP5Zud",
_score: 1,
_source: {
appUid: "esb.Idman_v4.getPerson",
level: "trace",
message: "WS stopwatch is at 111ms.",
detail: "",
url: "",
user: "bla bla bla",
additionalInfo: "some more info",
timestamp: "2015-03-31T15:08:49"
}
},
..and 検出タブに表示されるもの:
問題がある人like this:
右上隅の時間枠を変更します。
デフォルトでは、データを表示します最後の15分間のみ。
これをコメントにしたかったのですが、残念ながら、そのための不足しているレポを提供することはできません。 @Ngeunpoが示唆したように、これは、作成中にインデックスに時間フィールドを追加する方法です。。インデックスの作成中にこれを行わなかった場合は、そのインデックスを削除して再作成することをお勧めします。 gifのインデックス名logstash-*は、インデックスapplogsに類似しています。この場合、フィールド@ timestampが時間フィールドとして追加されます。これが機能するかどうかを教えてください。
編集:画像提供:これ 素晴らしいELKセットアップガイド
Kibanaは、フォーマットが正しくない場合、timestampフィールドを認識しません。Timestamp、をクリックして選択した時間フィールド名インデックスパターンを設定する場合、次のとおりにする必要があります。
"timestamp":"2015-08-05 07:40:20.123"
次のようにインデックスマッピングを更新する必要があります。
curl -XPUT 'http://localhost:9200/applogs/1/_mapping' -d'
{
"1": {
"timestamp": {
"enabled": true,
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss.SSS",
"store": true
}
}
}'
こちらをご覧ください 質問と回答
UPDATE
ES 2.Xを使用している場合、次のように"format"
を"Epoch_millis"
に設定できます。
curl -XPUT 'http://localhost:9200/applogs/1/_mapping' -d'
{
"1": {
"timestamp": {
"type": "date",
"format": "Epoch_millis",
"store": true,
"doc_values": true
}
}
}'
これを試してください:[時間ベースのイベントを含むインデックス]チェックボックスをオフにして、インデックス名を指定し、データが含まれるかどうかを[検出]で確認します
私は同じ問題を抱えており、これは私のために働いた:
時系列の問題は確かに問題になる可能性がありますが、実際に[検出]タブにフィールドが表示されない場合は、元のレポーターと私が持っていたものと同じ問題がある可能性があります。
おそらく同じ問題がありました-ダッシュボードにデータが表示されますが、検出結果は0です。 [管理]> [インデックスパターン]> [ファイルリストの更新]ボタン(更新アイコンのみのボタン)に移動すると解決しました。
私は同じ問題を抱えていましたが、@ tAn-のコメントはそれを解決するのに役立ちました。日付フィールドを@timestampに変更するとうまくいきました。ありがとう!
次のステップは、myカスタム日付フィールドで間違っていたことを見つけることです。
OPには関係ありませんが、インデックスを認識しようとして(設定>インデックスで)Kibanaインスタンスがクラッシュした場合は、 https://github.com/elastic/kibana/issues/6419 を参照してください=これは私にとっても問題を解決しました。
私も同じエラーを経験しました。 ほとんどの場合、これは時間形式のために発生します。基本的に、データの有効な時間枠があることを確認してください(右上のフィルター)。とにかく、私の場合、タイムスタンプにエポック時間形式を使用しましたが、うまくいきませんでした。そのため、代わりにEpoch_millisecに変更しました。これは魅力のように機能しました。
要するに、Kibanaが日付時刻形式を理解できることを確認してください。 Epoch_millisecはデフォルトではエポックだけでなく必須です。
私は同じ問題を抱えていましたが、今ではうまく機能しています。問題は@timestampにありました。実際、elasticsearch
を使用してlogstash
にファイルをアップロードしたため、@ timestampフィールドが自動的に生成されます。 Kibana
この@timestampと時間範囲を比較します。つまり、実際のイベントが発生したときです。新しいインデックスパターンページの追加で[インデックスに時間ベースのイベントが含まれる]オプションを選択解除しても、kibana
@timestampフィールド。だから、@ timestampフィールドに基づいてkibana
の時間枠を切り替えます。また、タイムスタンプなしでインデックスパターンを追加して確認し、[インデックスに時間ベースのイベントが含まれる]オプションを選択解除します。何が起こるかを確認します。[今すぐkibana
検出ページに時間枠選択オプションはありません。ほとんどの場合、発見ページで結果が得られます。これらはすべて私の観察であり、確かではありません。この解決策はあなたのケースに適合します..あなたは試してみることができます..
私の状況では、以前はすべてが機能していたため、2月1日から最新のデータを見ることができませんでした(実際、1か月振り返ってみるとわかりました)。カスタムタイムフィールドのマッピング形式が間違っていたことがわかりました。私のマッピング形式はYYYY-MM-DD'T'HH:mm:ss.SSSZ
でした。問題は、DD
が年の日として解釈され、dd
である月の日が必要だったことです。マッピングの変更とインデックスの再作成により、問題が修正されました。
私は同じ問題を抱えていたので、上の解決策の1つに示されているように、設定に行って以前のインデックスを削除し、@ timestampで新しいものを作成しました。
しかし、それは問題を解決しませんでした。そのため、問題を調査し、展開後、Kibanaに何も入ってこないことを確認しました。
それで、私はサーバーに入り、インデックスが破損しているのを見ました。 SOインスタンス/サーバーでlogstashとelasticsearchを停止し、サービスを再起動しました。そしてVoila、サービスを正常に再起動し、kibanaが戻ってきました。
なぜDID IT HAPPEN?
誰かがサーバーを突然停止させたために、インデックスが破損した可能性があります。