溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Centos- Nagios 的Last Check更新時(shí)間與當(dāng)前時(shí)間差距分析問(wèn)題及處理方法總結(jié)

發(fā)布時(shí)間:2020-06-05 03:17:38 來(lái)源:網(wǎng)絡(luò) 閱讀:1263 作者:邱月濤 欄目:移動(dòng)開(kāi)發(fā)

故障現(xiàn)象:

  • 2014年6月4日 收到客戶(hù)郵件說(shuō):bjd nagios 的Last Check更新時(shí)間與當(dāng)前時(shí)間差距很大

具體處理過(guò)程如下:

  • 盲目處理階段:

  • 想將問(wèn)題盡快處理掉,所以有點(diǎn)只看問(wèn)題表象忽略了重點(diǎn),唉,說(shuō)多了都是淚。

  • 查詢(xún)?cè)摍C(jī)器各種log 發(fā)現(xiàn)除了一些常規(guī)報(bào)錯(cuò)信息,沒(méi)有重要發(fā)現(xiàn)。

  • 檢查機(jī)器磁盤(pán)空間,內(nèi)存,IO,CPU正常。

  • 此問(wèn)題首次出現(xiàn),之前未有遇到。通過(guò)查詢(xún)資料得知是由于此文件權(quán)限發(fā)生變化導(dǎo)致。但是任我怎么修改文件的權(quán)限和所屬組都不能解決問(wèn)題。并參考了http://myhat.blog.51cto.com/391263/692879,恕不知此問(wèn)題不是解決本次問(wèn)題的關(guān)鍵,結(jié)果造成誤導(dǎo)。

[root@nagios01 ~]#cd/usr/local/nagios/var/rw/

[root@nagios01 rw]#ll

total 0

prwxrwxrwx 1 nagios nagios 0Jun  7 02:11 nagiosNaNd

  1. 5.    繼續(xù)為繞此問(wèn)題進(jìn)行分析和嘗試,并進(jìn)行多次重啟服務(wù)操作均未解決,但在重啟服務(wù)時(shí)發(fā)現(xiàn),服務(wù)啟過(guò)程中有報(bào)錯(cuò):/etc/init.d/nagios: line 67: kill: (1777) - No such process 在之前重啟服務(wù)中均未出現(xiàn)此問(wèn)題,覺(jué)得應(yīng)該不正常,于是查之,陷于分析過(guò)程,參考網(wǎng)絡(luò)文章無(wú)數(shù)未找到解決方法,先忽略之。此時(shí)主服務(wù)一直未啟動(dòng)具然不知道,并且沒(méi)有引起足夠的重視。

  2. 6.    比對(duì)運(yùn)行正常的機(jī)器,各種比對(duì),配置文件均一致,無(wú)解。

  3. 7.    沒(méi)有找到合理的解決方法,重啟機(jī)器,重啟完成后未解決,心灰意冷了。

  4. 8.    由于時(shí)間差距大,與用戶(hù)商議先決定開(kāi)啟備機(jī)上的報(bào)警功能,。

  5. 9.    備機(jī)啟動(dòng)時(shí)也是多災(zāi)多難,不過(guò)最終切至備機(jī)上開(kāi)始運(yùn)行。

  6. 10.  關(guān)閉當(dāng)前機(jī)器報(bào)警功能,讓同事將此機(jī)器生成快照,為了日后找到問(wèn)題時(shí)回退。

  7. 11.  把之間忽略的信息重新分析并解決,但問(wèn)題已然存在。

  8. n  發(fā)現(xiàn)轉(zhuǎn)折點(diǎn)階段:

  9. 1.    備機(jī)開(kāi)啟,沒(méi)有什么提心了,繼續(xù)排查。

  10. 2.    此時(shí)發(fā)現(xiàn)nagios主服務(wù)未啟動(dòng),但是web訪問(wèn)的頁(yè)面也能打開(kāi),各種數(shù)據(jù)都有,詫異各種詫異,之前的處理都是被誤導(dǎo)到天國(guó)去了。

  11. 3.    隨即開(kāi)啟nagios主程序,發(fā)現(xiàn)啟動(dòng)1-3分鐘后就自動(dòng)停止。于是先打開(kāi)日志文件保持更新?tīng)顟B(tài),一邊開(kāi)啟nagios主程序,觀察啟動(dòng)過(guò)程。這次在日志中有重大發(fā)現(xiàn):

啟動(dòng)nagios時(shí)在系統(tǒng)日志中出現(xiàn)如下報(bào)錯(cuò)信息:

Jun  7 00:41:41nagios01 kernel: EXT3-fs warning (device dm-0): ext3_dx_add_entry: Directoryindex full!

Jun  7 00:41:41nagios01 kernel: EXT3-fs warning (device dm-0): ext3_dx_add_entry: Directoryindex full!

Jun  7 00:41:50nagios01 /usr/sbin/gmetad[2964]: data_thread() got no answer from any [MonitorHost] datasource

Jun  7 00:41:56nagios01 kernel: EXT3-fs warning (device dm-0): ext3_dx_add_entry: Directoryindex full!

Jun  7 00:41:56nagios01 kernel: EXT3-fs warning (device dm-0): ext3_dx_add_entry: Directoryindex full!

  1. 4.    當(dāng)nagios自動(dòng)停止后,此日志不在出現(xiàn),根據(jù)經(jīng)驗(yàn)判斷有重大嫌疑,于時(shí)查之。隨著深入查閱資料更能加深這一判斷:

找到相關(guān)資料http://www.linuxquestions.org/questions/linux-server-73/ext3-fs-warning-device-dm-0-ext3dxaddentry-directory-index-full-631376/

此問(wèn)題為inodes(索引節(jié)點(diǎn))已滿(mǎn),引用"inode譯成中文就是索引節(jié)點(diǎn),每個(gè)存儲(chǔ)設(shè)備(例如硬盤(pán))或存儲(chǔ)設(shè)備的分區(qū)被格式化為文件系統(tǒng)后,應(yīng)該有兩部份,一部份是inode,另一部份是Block,Block是用來(lái)存儲(chǔ)數(shù)據(jù)用的。而inode呢,就是用來(lái)存儲(chǔ)這些數(shù)據(jù)的信息,這些信息包括文件大小、屬主、歸屬的用戶(hù)組、讀寫(xiě)權(quán)限等。inode為每個(gè)文件進(jìn)行信息索引,所以就有了inode的數(shù)值。操作系統(tǒng)根據(jù)指令,能通過(guò)inode值最快的 找到相對(duì)應(yīng)的文件。"通過(guò)幾臺(tái)的情分析判斷,每一G的空間,有120000左右的inodes可以在格式化分區(qū)時(shí)指定inodes的大小,加個(gè) -N參數(shù),如

mkfs.ext3 -N 2500000/dev/sda6 #2500000 為inodes的大小

實(shí)際應(yīng)用需要要根據(jù)分區(qū)的大小來(lái)定,造成此問(wèn)題通常是產(chǎn)生了大量的小文件(附合nagios的特點(diǎn))

  1. 5.    再進(jìn)一步落實(shí)

檢查磁盤(pán)空是未滿(mǎn),但是檢查Inodes時(shí)發(fā)現(xiàn) /data目錄還有1%

[root@nagios01 etc]#df -i

Filesystem           Inodes   IUsed   IFree IUse% Mounted on

/dev/sda3             65952   10062   55890   16% /

/dev/mapper/lv01-vm01

                   12816384   66867 12749517    1% /data

/dev/sda8             65952      90   65862    1%/tmp

/dev/sda7            328000   23317  304683    8% /home

/dev/sda6            655360   10724  644636    2% /var

/dev/sda5            655360  100483  554877   16% /usr

/dev/sda1             26104      44   26060    1%/boot

tmpfs               1021913       1 1021912    1%/dev/shm

[root@nagios01 etc]#df -h

Filesystem           Size  Used Avail Use% Mounted on

/dev/sda3           1020M  477M  492M  50% /

/dev/mapper/lv01-vm01

                      48G   35G   11G  77% /data

/dev/sda8           1020M   35M  934M   4% /tmp

/dev/sda7            5.0G  2.4G  2.4G  50% /home

/dev/sda6             10G  2.7G  6.8G  29% /var

/dev/sda5             10G  2.2G  7.3G  24% /usr

/dev/sda1             99M   23M   71M  25% /boot

tmpfs                3.9G     0  3.9G   0% /dev/shm

[root@nagios01 etc]#

  1. 6.    繼續(xù)確認(rèn):

在/data/pnp4/pnp4nagios/var/spool這個(gè)目錄下有18G的文件,都是小文件有46萬(wàn)多個(gè)

[root@nagios02 spool]#find .-type f |wc -l

468954

  • 定位問(wèn)題階段:

  • 是存放pnp4nagios的數(shù)據(jù)文件,Pnp4nagios使用的是RRDtool工具來(lái)實(shí)現(xiàn)畫(huà)圖的,用rrdtool是將nagios采集的數(shù)據(jù)繪制圖表的工具。簡(jiǎn)單來(lái)說(shuō)就是對(duì)于服務(wù)和主機(jī),添加“小太陽(yáng)”監(jiān)控圖標(biāo)來(lái)使的,是歷史數(shù)據(jù)。

  • 經(jīng)過(guò)以上的落實(shí)確認(rèn)基本上可以判定,由于inodes(索引節(jié)點(diǎn))已滿(mǎn),造成的nagios程序啟動(dòng)后自動(dòng)停止。

  • 解決問(wèn)題:

刪除小文件/data/pnp4/pnp4nagios/var/spool

重啟nagios 主服務(wù)一切正常,問(wèn)題解決。

經(jīng)刪除這些文件后,驗(yàn)證了小太陽(yáng)中的歷史數(shù)據(jù)圖表還有數(shù)據(jù),證明可以刪除,沒(méi)有影響。

個(gè)人總結(jié):

  1. 遇到問(wèn)題不要慌,亂了陣腳,不可取。

  2. 判斷問(wèn)題要用排除法,不能頭腦發(fā)熱和想當(dāng)然,否則會(huì)給后續(xù)判斷帶來(lái)重大的方向性錯(cuò)誤。

  3. 實(shí)在沒(méi)法的時(shí)候就要把所有懷疑的關(guān)鍵點(diǎn)逐個(gè)進(jìn)行落實(shí)和分析,得出一條關(guān)鍵路徑,最后得出正確的方向。

  4. 請(qǐng)教人不如自己查,在關(guān)鍵問(wèn)題上還是要靠本人。雖然對(duì)方是高手,但是通過(guò)電話或郵件根本不可能描述你所面臨的問(wèn)題,因?yàn)槟氵€有沒(méi)定位問(wèn)題的所在,多少次的經(jīng)驗(yàn)驗(yàn)證了這一條。但不是說(shuō)不讓問(wèn),度希望自己揣摩和掌握。

  5. 強(qiáng)烈推薦googlebaidu ,沒(méi)有強(qiáng)大的搜索功能,也不會(huì)締造我們這些IT民工的成長(zhǎng),謝謝你們。

  6. 吐槽國(guó)內(nèi)的某些組織,google,googlegoogle,上不去啊。

  7. 有些手冊(cè)還需完善和建立。

以上代表個(gè)人關(guān)點(diǎn),如有不同意見(jiàn)線下來(lái)討論。

后續(xù)工作:

  1. 目前還建議切換回10.219.240.12,因?yàn)樵谔幚磉^(guò)程中修改了很多配置文件參數(shù)。

  2. 運(yùn)行一段時(shí)間看看效果,觀察觀察。

  3. 觀察后沒(méi)問(wèn)題,需要將做的快照恢復(fù)到之前。并從10.219.240.35上將監(jiān)控狀態(tài)信息同步到10.219.240.12上。

  4. 還有一些技術(shù)問(wèn)題需要討論。

 

 

 

附贈(zèng)送一點(diǎn)Linux 小知識(shí)共勉:

  • 在Linux 下刪除大文件時(shí)有時(shí)會(huì)用到這個(gè)命令:

測(cè)試時(shí)在目錄下創(chuàng)建了20w個(gè)左右的空文件,想刪除這些文件,進(jìn)入目錄,輸入命令:
rm -rf *
屏幕顯示:
-bash: /bin/rm: Argument list too long
通過(guò)google后,找到解決方法,輸入下面的命令,刪除成功:
ls | xargs -n 10 rm -fr ls
命令解釋為:輸出所有的文件名(用空格分割) xargs就是將ls的輸出,每10個(gè)為一組(以空格為分隔符),作為rm -rf的參數(shù)也就是說(shuō)將所有文件名10個(gè)為一組,由rm -rf刪除

 

  • Linux下面查看目錄大小以及文件數(shù)量命令

  • 查看目錄的大小:
    [root@vps 1010 shellp_w_picpath]#du -sh

上面這個(gè)是查看當(dāng)前目錄的大小,如果是要查看指定目錄的大小則:

[root@vps 1010 shellp_w_picpath]#du -sh/uploadp_w_picpaths

這里是查看根目錄下的uploadp_w_picpaths目錄的大小.

 

2.查看當(dāng)前目錄文件總數(shù):

[root@vps 1010 shellp_w_picpath]#find .-type f |wc -l

上面這個(gè)是查看當(dāng)前目錄文件總數(shù),如果是要查看指定目錄的總數(shù)則:

[root@vps 1010shellp_w_picpath]#find /uploadp_w_picpaths -type f |wc -l

這里的f是表示文件,改成d則表示目錄.

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI