/var/log/messages文件監控


近來項目中遇到一個問題,情況是這樣的,我們使用ELK中的LOGSTASH來監控LINUX的系統日志文件:/var/log/messages文件,但這個文件默認的權限是600,這樣很為難,

我們使用特定的日志收集用戶啟動LOGSTASH進程,這樣對於沒有權限的文件就無法監控了.

以下記錄我尋找答案的經歷.

我不熟LINUX文件權限管理,知其一二,主要是不懂UMASK,直接的想法是chmod o+r /var/log/message不就行了.

但是這個文件是會滾動的,滾動后生成的日志權限又變成600了, 總不能一直啟動一個進程來檢查,然后再改,而且這個進程要運行在ROOT權限下.

1.使用SUDO來操作LOGSTASH,這個方案最好,但現在我們通過SHELL來進行,現在有些小麻煩,但是我覺得還是得通過這種方法,這是最合理的方法.

2.想辦法獲取讀的權限

我曾開始想到使用chmod -R o+r /var/log 的方法來測試,隨便測試了一個文件,以為是正確的,其實我的測試是錯誤的,因為ROOT的UMASK默認就是022.

所以不用改,默認生成的文件其他組用戶就有讀的權限.

經同事提醒,我轉移到UMASK上面.找了一些資料.

默認情況下的umask值是022(可以用umask命令查看),此時你建立的文件默認權限是644(6-0,6-2,6-2),建立的目錄的默認 權限是755(7-0,7-2,7-2)
umask 0003 創建后的文件權限是rw-rw-r--
而且一開始也不熟/var/log/messages的來源,找到SYSLOG,找到RSYSLOG,然后再慢慢清楚了.

rsyslog是SYSLOG的替代品,現在默認很多系統就使用RSYSLOG了,我用的CENTOS,還有REDHAT都是這樣.

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch05_:_Troubleshooting_Linux_with_syslog#.V7HLZbM_Dod

然后找到/etc/init.d/rsyslog 編緝查看 ,找到 umask 077 ,釋然.終於找到你了.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM