幫助中心
技術(shù)運(yùn)維百科
Windows服務(wù)器重啟導(dǎo)致filebeat無法啟動
2017-02-14 10:03:10
  早上6點(diǎn)鐘, 收到zabbix的告警, 說一臺服務(wù)器重啟了, 回到公司馬上查看系統(tǒng)日志,發(fā)現(xiàn)只有這些記錄:
  這不是坑爹么! 肯定是意外關(guān)閉啊, 但是為什么會是意外關(guān)閉呀?
  這個問題后續(xù)需要再跟進(jìn), 現(xiàn)在暫不討論, 因?yàn)橛袀€更加急迫的故障需要處理: filebeat無法啟動.
  既然系統(tǒng)無法啟動, 咱們?nèi)シ?wù)管理那邊試下:   運(yùn)行 - 輸入services.msc;找到filebeat的服務(wù)后, 手動啟動失敗, 得到錯誤:
  在谷歌上搜索一番之后, 找到一個解決辦法:   我的電腦-->右鍵-->管理-->本地用戶和組; 選擇“組”-->雙擊Administrators-->單擊“添加”-->單擊“高級”-->單擊“立即查找”-->在下面的列表中選擇Network Service用戶-->兩次單擊“確定”-->加入   但是并沒有什么卵用, 去filebeat的根目錄, 嘗試手動運(yùn)行 filebeat.exe, 發(fā)現(xiàn)是可以執(zhí)行的, 這代表程序沒有問題, 于是懷疑是機(jī)器重啟導(dǎo)致服務(wù)管理報(bào)錯了, 于是嘗試重裝filebeat服務(wù), 但是服務(wù)啟動還是失敗   查看filebeat的日志, 發(fā)現(xiàn)有段報(bào)錯:
  Error decoding old state: invalid character '\x00' looking for beginning of value   大意就是: 在解碼舊狀態(tài)時(shí), 有無效的字符'\x00', 這個很像json解析失敗的報(bào)錯! 難道這個跟json有關(guān)系么?這個json肯定是和日志的json無關(guān)的, 應(yīng)該是某些配置的json有關(guān), 但是會改動的配置不多, 那應(yīng)該就是存放記錄文件偏移量的配置: registery.   于是在去根目錄的data目錄檢查下面的registery. old 和 registery, 但是都是很正常的兩個json文件, 并沒有所謂的 '\x00', 這就尷尬了..   考慮到手動執(zhí)行沒問題, 但是通過服務(wù)管理器啟動卻失敗, 難道是啟動方式的姿勢不對導(dǎo)致? 事不宜遲, 將服務(wù)器啟動的方式拷貝出來試下: filebeat-右鍵屬性-可執(zhí)行文件的路徑
  在黑漆漆的CMD窗口運(yùn)行下:
  雖然得到同樣的報(bào)錯, 不過我們好像發(fā)現(xiàn)有點(diǎn)問題了, -path.data "c"\\ProgramData\\filebeat", 這個目錄應(yīng)該就是存放文件偏移位置的目錄, 但是為什么不是filebeat的根目錄下呢?   難道說這個是服務(wù)注冊時(shí), 默認(rèn)的? 那可能出問題的json文件就是在這里了, 于是直接去目錄查看, 還真的有registry文件, 用notepadd++ 打開, 終于找到原因了:
  文件內(nèi)容全都是亂碼, 原因應(yīng)該是, 系統(tǒng)異常關(guān)閉, 程序沒有正常退出, 導(dǎo)致寫入了亂碼, 使得filbeat重新讀取時(shí), 無法解析.   將文件刪除后, filebeat啟動正常! 這次故障排查暫告一段落,感謝大家.
新客優(yōu)惠
特價(jià) 酷睿i3系列
性價(jià)比熱銷推薦,年銷量第一
1180/月起
USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請免費(fèi)產(chǎn)品試用服務(wù)
立即申請