<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          日志系統(tǒng)rsync和日志切割logrotate-Linux每日一練(9)

          共 4233字,需瀏覽 9分鐘

           ·

          2020-09-27 01:12

          上一節(jié)留的問題本來是網(wǎng)絡(luò)的,但是我還是打算把網(wǎng)絡(luò)留到最后一次來更新,因為我任性~

          我發(fā)現(xiàn)了一些公眾號大號整天轉(zhuǎn)發(fā)垃圾文章引發(fā)焦慮,讓看得人懷疑自己,讀者越是焦慮他們就越是開心,方便做廣告賣課程,賺錢也沒錯,賣廣告也是為了恰飯,但是一周推兩三次廣告誰能受得了啊。

          說真的,買課程的人大多也看不完,就是買個安心,買了就相當(dāng)于學(xué)了,然后繼續(xù)心安理得的玩,其實現(xiàn)在的線上課程完課率只有不到10%,想想我買了那么多極客時間實際上看完的也只有部分,酌情安排自己的時間才是王道。

          扯遠(yuǎn)了,步入正題,Linux自帶的 日志系統(tǒng)rsync

          日志系統(tǒng)rsync

          Linux日志機(jī)制的核心是 rsyslog 守護(hù)進(jìn)程,該服務(wù)負(fù)責(zé)監(jiān)聽Linux下的日志信息,并把日志信息追加到對應(yīng)的日志文件中,一般在 /var/log 目錄下。

          它還可以把日志信息通過網(wǎng)絡(luò)協(xié)議發(fā)送到另一臺Linux服務(wù)器上,或者將日志存儲在 MySQLOracle 等數(shù)據(jù)庫中。

          對于日志收集,基本所有人都聽說過 ELK(ElasticSearch+Logstash+Kibana)的大名,其實所有的 Linux 日志管理系統(tǒng)都基于 rsyslog ,他們配置的第一步都是配置 rsyslog 發(fā)送端。

          所以我們只要對這個服務(wù)進(jìn)行簡單配置,就可以把線上環(huán)境的日志集中化收集起來,不僅方便開發(fā)調(diào)試;還避免了直接到線上環(huán)境查看,發(fā)生安全隱患。

          啟動停止

          在centOS5及更早版本中使用的是 syslogrsyslogsyslog 的增強版本。rsyslog 一般默認(rèn)都會安裝且設(shè)置為自動啟動

          $?ps?-ef?|grep?rsyslogd
          root?923?1?0?Aug21???00:03:02?/usr/sbin/rsyslogd?-n
          $?/etc/init.d/rsyslog?start
          $?/etc/init.d/rsyslog?stop
          $?/etc/init.d/rsyslog?restart

          配置文件寫法

          可以參考官網(wǎng):https://www.rsyslog.com/doc/master/configuration/basic_structure.html

          執(zhí)行文件:/sbin/rsyslogd主配置文件: /etc/rsyslog.conf自定義配置文件: /etc/rsyslog.d/*.conf修改配置文件后,重啟服務(wù):sudo /etc/init.d/rsyslog restart一份配置文件主要包括以下幾個部分:MODULESRULES 、全局指令,模板,模塊參數(shù)等,回頭有機(jī)會講解 ELK 的時候再展開,這里只用關(guān)心 RULES , 他表達(dá)了三個信息,只要全部滿足就可以完成日志輸出。

          rsyslog.conf 文件里找如下格式內(nèi)容,代表含義為:什么服務(wù). 日志等級、輸出到哪里

          mail.info?/var/log/maillog_info

          我們自己寫的程序根本沒有必要使用rsyslog來自定義輸出日志(個人理解,有誤請指出),因為我們會用自己的日志組件輸出的應(yīng)該輸出的位置。這里了解下日志設(shè)施有哪些即可,你可以去看這個配置文件知道這些日志被輸出到哪里了,方便運維和定位問題。

          日志設(shè)施有:

          • auth(security), authpriv: 授權(quán)和安全相關(guān)的消息
          • kern: 來自Linux內(nèi)核的消息
          • mail: 由mail子系統(tǒng)產(chǎn)生的消息
          • cron: cron守護(hù)進(jìn)程相關(guān)的信息
          • daemon: 守護(hù)進(jìn)程產(chǎn)生的信息
          • news: 網(wǎng)絡(luò)消息子系統(tǒng)
          • lpr: 打印相關(guān)的日志信息
          • user: 用戶進(jìn)程相關(guān)的信息
          • local0 to local7: 保留,本地使用

          日志級別有(升序):

          • debug:包含詳細(xì)的開發(fā)情報的信息,通常只在調(diào)試一個程序時使用。
          • info:情報信息,正常的系統(tǒng)消息,比如騷擾報告,帶寬數(shù)據(jù)等,不需要處理。
          • notice:不是錯誤情況,也不需要立即處理。
          • warning:警告信息,不是錯誤,比如系統(tǒng)磁盤使用了85%等。
          • err:錯誤,不是非常緊急,在一定時間內(nèi)修復(fù)即可。
          • crit:重要情況,如硬盤錯誤,備用連接丟失。
          • alert:應(yīng)該被立即改正的問題,如系統(tǒng)數(shù)據(jù)庫被破壞,ISP連接丟失。
          • emerg:緊急情況,需要立即通知技術(shù)人員。

          例如:把所有來自cron守護(hù)進(jìn)程的消息保存到/var/log/cron文件中。當(dāng)指定日志級別時,所有等于或大于該日志等級的信息都要被處理。

          cron.*??/var/log/cron

          日志切割

          日積月累日志會越來越大,直到撐爆你的磁盤,歷史日志就沒有必要保留了,最好永遠(yuǎn)只保留近期的日志,超過某個大小或者某段保留時間的日志自動刪除。

          python 的日志組件中支持日志滾動,可以規(guī)定每個日志文件有多大,保留多少個文件;也可以規(guī)定保留幾天內(nèi)的日志。在 Linux 里面也有類似的組件,也是自帶的:logrotate ,他本身是通過計劃任務(wù)讀取配置定時執(zhí)行的。

          吶,這就是 Linux 定時任務(wù)涉及的目錄,下面的腳本會按文件名寫的時間定時執(zhí)行。

          /etc/cron.daily:
          logrotate??man-db.cron??mlocate

          /etc/cron.hourly:
          0anacron

          /etc/cron.monthly:

          /etc/cron.weekly:

          可以看到 logrotatecron.daily 下面,內(nèi)容使用到了 logrotate.conf 配置文件,這個配置文件記錄了日志滾動規(guī)則的全局配置,你可以手動執(zhí)行下面這個腳本來手動輪轉(zhuǎn)日志。

          $?cat?/etc/cron.daily/logrotate
          #!/bin/sh

          /usr/sbin/logrotate?-s?/var/lib/logrotate/logrotate.status?/etc/logrotate.conf
          ....

          需要注意的是這幾項全局配置,一般是無須改動的,可以打開日志壓縮減少空間占用

          $?cat?/etc/logrotate.conf
          weekly?????//輪轉(zhuǎn)的周期,一周輪轉(zhuǎn)
          rotate?4???//保留4份
          create?????//輪轉(zhuǎn)后創(chuàng)建新文件
          dateext????//使用日期作為后綴
          #compress??//是否壓縮
          include?/etc/logrotate.d???//包含該目錄下的文件??

          日志輪轉(zhuǎn)配置

          假如你的服務(wù)本身不支持日志輪轉(zhuǎn),可以在/etc/logrotate.d下新增任意名稱的文件實現(xiàn)配置,舉個例子。

          $?vim?/etc/logrotate.d/log-file?
          /var/log/log-file?{
          ????monthly
          ????rotate?5
          ????compress
          ????delaycompress
          ????missingok
          ????notifempty
          ????create?644?root?root
          ????postrotate
          ????????/usr/bin/killall?-HUP?rsyslogd
          ????endscript
          }

          上面的模板是通用的,而配置參數(shù)則根據(jù)你的需求進(jìn)行調(diào)整,不是所有的參數(shù)都是必要的。也可以通過man手冊中的例子進(jìn)行配置。

          • monthly 每月一次,也可以改成'daily','weekly'或者'yearly'
          • rotate 5 保留5個日志,超過刪除最老的
          • compress 已輪循的用gzip壓縮
          • delaycompress 一般和compress選項一起用,最近的歸檔不壓縮,方便查看。
          • missingok 在日志輪循期間忽略錯誤
          • notifempty 如果日志文件為空,輪循不會進(jìn)行。
          • create 644 root root 以指定的權(quán)限創(chuàng)建全新的日志文件,同時logrotate也會重命名原始日志文件。
          • postrotate/endscript 在所有其它指令執(zhí)行完后,中間包含的命令會被執(zhí)行。在這種情況下,rsyslogd 進(jìn)程將立即再次讀取其配置并繼續(xù)運行。也可以包含一些提醒服務(wù)重新讀取配置的命令

          以上信息來源 "man logrotate"

          手動執(zhí)行與日志驗證

          可以這樣手動執(zhí)行

          logrotate?/etc/logrotate.conf

          也可以單獨切割某個日志

          logrotate?-vf?/etc/logrotate.d/log-file?

          logrotate本身的日志位于

          cat?/var/lib/logrotate/logrotate.status?
          logrotate?state?--?version?2
          "/var/log/yum.log"?2020-1-1-3:48:1
          "/var/log/boot.log"?2020-8-22-3:17:1
          "/var/log/chrony/*.log"?2019-12-21-12:0:0
          "/var/log/wtmp"?2019-12-21-12:0:0
          "/var/log/spooler"?2019-12-21-12:0:0
          "/var/log/btmp"?2020-9-1-3:16:1
          "/var/log/maillog"?2019-12-21-12:0:0
          "/var/log/wpa_supplicant.log"?2019-12-21-12:0:0
          "/var/log/secure"?2020-8-11-3:47:1
          "/var/log/messages"?2020-8-26-3:16:1
          "/var/log/cron"?2020-8-13-3:19:1

          引用

          • https://blog.csdn.net/qq_29344757/article/details/86700898
          • https://medium.com/pizzas/rsyslog%E4%BB%8B%E7%B4%B9%E8%88%87%E4%BD%BF%E7%94%A8-cfb36497092d
          • https://www.cnblogs.com/sunsky303/p/7677370.html
          • https://www.jianshu.com/p/e129ed893362
          瀏覽 82
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一级做a爰片性色毛片成人久久久国产 | 国产区激情 | 欧美一级视频在线免费观看 | 大香蕉俺来也 | 精品成人18 |