您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Fluentd中怎么排查錯誤,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
查看日志
如果感覺Fluentd運行異常,請先查看日志。td-agent安裝后,默認(rèn)日志存放在/var/log/td-agent/td-agent.log。
開啟詳細(xì)日志
Fluentd日志支持多個級別,打開詳細(xì)的日志有助于發(fā)現(xiàn)問題。有以下幾種方法可以開啟詳細(xì)日志:
通過配置文件的log_level項進行設(shè)置,具體可參考Fluentd日志。
使用systemd用戶級文件
添加或修改配置文件/etc/systemd/system/td-agent,
增加如下內(nèi)容,這會覆蓋/usr/lib/systemd/system/td-agent中的
配置。
[Service]ExecStart=...existing options... -vv
修改init.d啟動腳本
編輯/etc/init.d/td-agent,在TD_AGENT_OPTIONS后增加"-vv",重啟td-agent
# at /etc/init.d/td-agent...TD_AGENT_OPTIONS="... -vv"...
命令行參數(shù)
$ fluentd .. -vv
導(dǎo)出fluentd內(nèi)部信息
Fluentd使用sigdump(https://github.com/frsyuki/sigdump)將內(nèi)部信息導(dǎo)出到本地文件中,可向fluentd進程發(fā)送SIGCONT信號以導(dǎo)出相關(guān)信息。
CPU使用率較高的原因
若發(fā)現(xiàn)Fluentd占用較高的CPU,一般可能有以下幾點原因:
某個插件發(fā)生競態(tài)問題
正則表達式錯誤
系統(tǒng)調(diào)用異常,比如inotify監(jiān)控了過多的文件
某個ruby依賴包異常
出現(xiàn)這些情況時,可使用linux perf工具來檢測問題所在。也可使用pid2line.rb(https://gist.github.com/nurse/0619b6af90df140508c2)這個腳本來輔助排查。
檢查未捕獲的日志
有時候會遇到一些異常退出的情況,這時程序返回值非0。比如:
2016-01-01 00:00:00 +0800 [info]: starting fluentd-0.12.28
2016-01-01 00:00:00 +0800 [info]: reading config file path="/etc/td-agent/td-agent.conf"
[...snip...]
2016-01-01 00:00:02 +0800 [info]: process finished code=6
這類問題可能發(fā)生在ruby內(nèi)部,比如段錯誤、某些C擴展有bug等。當(dāng)fluentd以守護進程方式運行時,我們將得不到完整的日志。
使用如下方式運行td-agent,就可以在程序異常時獲取到完整的日志。
$ sudo LD_PRELOAD=/opt/td-agent/embedded/lib/libjemalloc.so /usr/sbin/td-agent -c /etc/td-agent/td-agent.conf --user td-agent --group td-agent
關(guān)于Fluentd中怎么排查錯誤就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。