1. 程式人生 > 其它 >es傳送的資料在kibana上discover不顯示,但是可以query到

es傳送的資料在kibana上discover不顯示,但是可以query到

最近在做一個日誌解析的專案,遇到一個問題,資料傳送到es,返回成功。但是kibana上discover不顯示,時間範圍調整到一個月內也搜尋不到,devtool上query可以查到。

F12檢視discover裡的傳參,發現有時間範圍以及時區的引數。懷疑跟時區有關,既然剛剛嘗試了提前一個月無效,那就延後8小時看看

果然,資料可以搜尋出來。

找到了問題的原因。結合我們後續需要接入kibana的圖表展示,因此不能更改kibana的配置,只能從es傳送資料端下手。

查詢資料發現,可以給timestamp(kibana上用於時間排序的欄位)加上時區,格式為2021-06-28 10:49:39.850500+08:00(普通不帶時區的格式:2021-06-28 10:49:39.850500)

    es_client = es_send_data()
    shanghai_tz = pytz.timezone('Asia/Shanghai')
#指定時區,用於es欄位timestamp的傳送 week_end_tmp
= datetime.datetime.now(tz=shanghai_tz) week_end = str(week_end_tmp).split(".")[0] week_end_month = str(week_end_tmp).split("-")[0] + "-" + str(week_end_tmp).split("
-")[1] week_start = str(week_end_tmp - datetime.timedelta(minutes=5)).split(".")[0] offset_data = action.get_offset_time_window(week_start, week_end) send_data = { "project_name": project, "topic_name": analyse_topic, "server_name": server_name, "offsets_five_min_ago
": offset_data, "timestamp": week_end_tmp } index_name = "qa-analyse-" + analyse_topic + "-" + week_end_month print(index_name)

參考資料:https://segmentfault.com/a/1190000021445915