logrotate機制及與監控結合測試

來源:互聯網
上載者:User

標籤:監控   檢測   切割   日誌   

   目的:測試監控在日誌做切割時是否正常取到資料,並且無資料丟失或重複。

理論上:logrotate是通過mv進行日誌的切換,而監控則是通過檢查檔案的最近修改時間來判斷是否讀取檔案內容,所以從理論上來說是不會遺失資料的,但還需要進行檢測下

    初期思路:類比日誌的產生,不停的寫資料到一檔案中,讓監控端監控這一檔案,然後類比logrotate機制,對檔案進行切割,最後檢查監控端取到的資料是的和本地的一樣,完成測試。

    寫入的指令碼如下:

[[email protected] logtest]# cat w.sh #!/bin/bashecho start >  /logtest/testlogfor j in {1..600}dofor i in {1..1000}doecho $j time $i >> /logtest/testlogdonedone

切換的指令碼如下:

[[email protected] logtest]# cat c.sh #!/bin/bashmv /logtest/testlog /logtest/testlog.1

本地的測試結果:

[[email protected] logtest]# tail testlog.1 110 time 148110 time 149110 time 150110 time 151110 time 152110 time 153110 time 154110 time 155110 time 156110 time 157[[email protected] logtest]# head testlog110 time 158110 time 159110 time 160110 time 161110 time 162110 time 163110 time 164110 time 165110 time 166110 time 167

可以看到本地是沒有遺失資料的,而監控端監控本地的testlog*檔案;由於監控端的問題,沒有取到本地的資料,該檢測方案終止

   後來想到,本地安裝了syslog伺服器,而本地的/var/log/message*是很早就被監控端監控著的,於是想到第二套方案:

   手動進行日誌切換,檢查監控端是否有資料的丟失或者重複:

logrotate在很多Linux發行版上都是預設安裝的。系統會定時運行logrotate,一般是每天一次。系統是這麼實現按天執行的。crontab會每天定時執行 /etc/cron.daily 目錄下的指令碼,而這個目錄下有個檔案叫logrotate 。在測試伺服器上指令碼內容是這樣的:

[[email protected] /]# cd /etc/cron.daily/[[email protected] cron.daily]# lscups  logrotate  makewhatis.cron  mlocate.cron  prelink  readahead.cron  rhsmd  tmpwatch[[email protected] cron.daily]# cat logrotate #!/bin/sh/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1EXITVALUE=$?if [ $EXITVALUE != 0 ]; then    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"fiexit 0[[email protected] cron.daily]#

  可以看到logrotate被crontab調用,每天運行一次,

由於測試的Log Service器一直沒有安裝crontab,所以所有接受到的日誌都存放在/var/log/message中,手動切割日誌:

/usr/sbin/logrotate  -vf  /etc/logrotate.conf >/dev/null 2>&1

最後對比本地檔案內容和監控端取到的內容進行對比,發現沒有資料丟失及重複;測試通過。


   該測試不足之處,望大家指點。

logrotate機制及與監控結合測試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.