關於elk中filebeat定義好日誌輸出,可是redis裏面卻沒有輸出內容的問題

這兩天在搞elk的時候,filebeat中指定輸出日誌至Broker(此處Broker採用redis做爲緩存),可是redis中卻沒有內容,因此就開始排查來redis

filebeat採用RPM安裝的方式來的。數據庫

一、首先是檢查filebeat的配置文件是否有問題:緩存

注意:這個配置文件的這個紅色方框中的內容是我本身定義的,是在網上搜的一個例子來編寫的。不過事實上咱們能夠在/etc/filebeat這個目錄下的filebeat.reference.yml按照這個文件中來進行仿寫,可是最終要寫到filebeat.yml文件中才算生效。這是filebeat服務指定的配置文件。日誌

也出現過一個問題就是filebeat服務老是啓動不了,老是失敗,報錯也是跟服務沒有關係的一個錯誤,後來修改了這個配置文件成功了,咱們這裏是將日誌收集在redis中,除了redis以外的其餘broker都要註釋掉。blog

二、接下來是指定redis配置文件參數集羣

其中在redis中主要指定的參數是:bind 0.0.0.0  以及protected-mode no 這兩項,要修改爲如今的這個樣子才行。或者說把bind 這一行註釋掉也行。配置

三、這個時候再重啓filebeat服務和redis服務。今天出現的狀況是redis裏面的數據庫「2」裏面什麼文件都沒有,查詢不到filebeat收集的信息。file

此時沒有收集到信息我就去查看這兩個服務的日誌文件,redis的日誌裏面沒有報錯,初始化也成功了,因此沒有問題。這個時候就去查看filebeat服務elk

四、filebeat服務的日誌文件在/var/log/filebeat目錄下,主要有如下幾個:logstash

這裏查看filebeat這個文件,其餘的都是每次重啓後都會自動生成一個filebeat文件名字加一個數字的這個文件。主要看這裏的第一個文件「filebeat」

五、咱們從這個文件的最後幾行獲取error信息便可,就能定位到錯誤在哪裏,不過我本身定位了好幾回才找到。若是最後幾行長時間不報錯的狀況下,說明redis能夠創建鏈接成功。若是報redis 的錯誤refuse等,說明redis拒絕外部IP鏈接,這個時候要去配置redis的配置文件便可。但是對我來講filebeat沒有報錯可是redis數據庫就是沒有信息,後來我就在filebeat服務的配置文件裏面修改了數據庫,此次修改成「4」,(這是數據庫的名字),這個時候再重啓filebeat,,竟然成功了,好吧,估計是我對redis不太熟形成的。這個時候filebeat的日誌文件也沒有報錯,再去查看數據庫,發現裏面有東西了。

六、今天看到一篇文章講的是logstash從redis中取出數據後,redis裏面也是沒有數據的,這個時候其實集羣是沒有錯誤的,只是被logstash取出數據放在了es裏面。因此你們沒必要驚慌。

----------------------------------------------------------更新---------------------------------------------------------------

此刻3月16日,今天作個實驗,是把filebeat的輸入端中的-type想自定義修改爲errorlog,結果沒有輸出日誌,後來才發現,這個type的內容是filebeat固定好的,不能修改。

出問題最好查日誌。精準問題所在,及時解決問題。

相關文章
相關標籤/搜索