記錄檔設定 syslog , logrotate 介紹

copy from http://canred.blogspot.tw/2013/03/logrotate.html

在各種作系統中有,有效的紀錄是不可缺的,記錄可以讓我們知道事件發生的過程,以及系統處理的方式。對於記錄,我們必須針對性質與嚴重性加以分類,而紀錄在特定的檔案之中。

  • syslog.conf
    • /etc/syslog.conf 是 syslogd 這個常駐程式的主要設定檔,它可以記錄linux的系統資訊,並且分類紀錄到各個檔案之中。
    • 每一個規則包含2個欄位,第1個欄位是訊息的種類,第2個欄位是動作,也就是記錄的方式。2個欄位中間可用空白或是<tab>鍵分隔。以#開頭的一行會被忽略。訊息的種類當中,包含了2個資訊,1是訊息的種類,另1個是嚴重性,當者以 . 分隔;如下所示
      • mail.none
        • 訊息的種類包含了下列的關鍵字。auth,authpriv,cron,daemon,kern,lpr,mail,mark,news,security(the same as auth),syslog,user,uucp,local0~local7
          • authpriv:登入系統的訊息,包含管理者首一般使用者的帳號;將消息記錄到只有相關用戶能讀取的文件內
          • cron:計時器的訊息
          • daemon:各種常駐服務程式
          • kern:系統核心
          • local7:開機系統啟動的訊息
          • lpr:列印指令的訊息
          • mail:電子郵件的訊息
          • news:新聞伺服器的訊息
          • user:使用者相關訊息
          • uucp:UNIX-toUNIX Copy Protocol之訊息
          • auth:與用戶登錄,驗証密碼有關的訊息
          • mark:定時發陝消息的時標程式
          • ftp:與ftp守護進程有關的消息
          • ntp:與網絡時間協議相關的消息
        • 嚴重性則包含:debug->info->notice->warning->warn->err->error->crit->alert->emerg->panic ; 
          • 在設置級別的時侯通常不要使用err以下的級別,否則可能大量的消息很快就充滿整個disk,並且還會引起系統性能下降。
          • 還有一個none的級別表程式中未給出選擇的偽級別
        • 如果使用*,則表示所有的種類,或是所有的嚴重性。如mail.*,*.err,*.*
        • 如果有多個重類期嚴重性相同,且使用相同的動作,可用逗號隔開。如
          • uucp,news.crit
        • 若多個種類其嚴重性不全相同,且使用相同的動作,可用分號隔開。如:
          • *.info;mail.none;authpriv.none;cron.none    /var/log/messages
        • news.=err                /var/log/news.err
          • 把關於新聞伺服器的訊息,只要優先權等於會誤的訊息記錄到/var/log/news.err中
        • cron.*  /var/log/cron
          • 所有來於cron的程序消息放入/var/log/cron的檔案中
        • *.info;mail.none;authprive.none;cron.none  /var/log/message
          • *.info表示所有的大於info的消息會記錄到/var/log/message中,其他的mail如上項目雷同。
        • mail.*     @192.168.1.10
          • 將消息發送到192.168.1.10的伺服器上
        • mail.*     @ServerName
        • authprive.*;authprive.!=info       /var/log/authprive.log
          • 將登入系統的所有訊息,統統記錄在此檔案,但是對包含優先權為info的。
    • 日誌消息的格式
      • time        hostname        process    version:informat
        • time:產生的時間
        • hostname:產生日誌的主機
        • process:產生日誌的應用程序
        • version:產生此日誌的應用程序或系統服務版本號
        • infomation:內容
    • 發出消息/記錄/日誌 logger 指令
        • logger [option] message
        • i:使用logger的pid作為消息的pid
        • p:使用指定選擇域
        • t:使用指定進程的名稱
      • sample
        • logger -i -p local7.err test.sh "Canred Test"
    • 在以上的動作是寫到記錄檔,但這個紀錄檔並不一定是真實的檔案,有可能是終端機,可能是別台主機etc。
      • 本機的檔案
        • /var/log/maillog
      • 終端機或是主機前的console
        • /dev/console , /dev/pts/0
      • 遠端的主機
        • @canredHome

再下來就要介紹一下logrotate了
日誌輪循logrotate,隨著時間越來越長syslogd將新篩選的日誌消息不斷地寫入指定的文件未尾。日誌文件會變得越來越長,占用的disk空間也越來越多。另一方面,如果系統管理員要查看娛一時刻的日誌消息,太大也不便查看,這時就要有一個日誌輪循的功能啦…

  • logrotate是一個循環、壓縮、以及郵寄系統記錄檔的系統程式。
    • 語法如下:logrotate [-dv] [-f] [-s] config_file +
    • 例如執行default的/etc/logrotate.conf,可以執行下行指令
      • logrotate /etc/logrotate.conf
  • logrotate是設計來簡化系統產生的龐大紀錄檔案,它允許自動的循環使用、壓縮、移動以及郵寄記錄檔,當紀錄檔太大時,可以每天、每週、每月的管理
  • 一般面言,logrotate可視為每天執行的例行性工作,其功能如下:
    • -d:開啟除錯模式。在除錯模式之下,紀錄檔將不會有任何的改變
    • -f:強制模制。告訴logrotate強迫循環,即使logrotate本身認為並不需要
    • -m:寄信。告訴logrotate用什麼指令去寄出紀錄檔
    • -s:告訴logrotate使用一個交換狀態的紀錄檔。當我們使用不同的帳號來設定多樣的紀錄檔,這是有用的。預設的狀態紀錄在/var/lib/logrotate/status。
    • –usage:使用量,列出使用者的狀態。
  • 範例1(以下是程式碼哦)
#紀綠檔在循環過後將被壓縮。

compress

#要撐握 /var/log/message 的記錄檔,紀錄再經過5週的循環後將被移除,也
#就是說備存5週,並且在循環後,系統會透過/sbin/killall -HUP syslogd的指令
#來重新啟動syslogd服務

/var/log/message {
    rotate 5
    weekly
    postrotate
    /sbin/killall -HUP syslogd
    endscript 
#設定2個紀錄檔案的規則;這2個檔案將進行循環當內容達到100k的時侯,並且
#在遍環5次時,會將檔案寄給管理者,並移除檔案
"/var/log/httpd/access.log" /var/log/httpd/error.log {
    rotate 5
    mail canred.chen@gmail.com
    size=100k
    sharedscripts
    postrotate
    /sbin/killall -HUP httpd
    endscript
#當中每個檔案都是以一個月為基底來做遍環。這被考慮成一個單獨的循環目錄,
#且若是錯誤發生超過1個檔案,亡錄檔將不會被壓縮
#在使用*字元時要特別小心,因為是循環所有檔案
/var/log/news/* {
    monthly
    rotate 2
    olddir /var/log/news/old
    missingok
    postrotate
    kill -HUP `cat /var/run/inn.pid`
    endscript
    nocompress
  • 範例2(底下將列出並說明RedHat9中的/etc/logrotate.conf),以下內容是一體看的哦
    • weekly
      • 每週循環一次日誌檔的相關紀紀錄
    • rotate 4
      • 最多保留4週
    • create
      • 清除舊的日誌檔時,會自動產生新的日誌檔
    • compress
      • 將紀錄檔壓縮
    • include /etc/logrotate.d
      • RPM的套件會將相關設定檔置於/etc/logrotate.d/之下
    • /var/log/wtmp{
    •     monthly
    •     carete 0644 root utmp
    •     rotate 1

—-編輯紀錄

  • 2013/4/24:
    • syslog.conf 訊息種類的設定方式還可以加上"=","!"的用法

Read more

How to migrate Raspberry Pi 5 OS from micro SD to NVME m.2 SSD

首先我買了Raspberry Pi CM5後來買了Raspberry Pi CM5 I/O board來當個人電腦使用,系統是安裝在256GB SD卡上運行的很好。用久了在開啟較肥的程式像Web Browser或LiberOffice會有慢半拍的反應,而有了升級NVME m.2 SSD念頭。 因為Raspberry Pi 5支援的最快PCIe gen3 x 4就不去考慮快的Gen4 or Gen5 m.2 SSD。找了ADATA出的 LEGEND 710入門級的產品,會利用HMB(Host Memory Buffer)來加速I/O速度,因為是Raspberry Pi OS kernel會認不得而無法正常使用 事先在SD卡的/boot/firmware/cmdline.txt 加入 kernel command line參數如下,然後重開機m.

By Phillips Hsieh

How to document Home Lab and Network

運維機房和跨域的網路,會遇到各式需求與問題,用對工具才能分析問題,個人覺得最重要的是使用能處理問題的工具。 推薦目前想學和正在使用的平台與軟體,協助將公司/家用機房文件化 佈告欄任務管理 Focalboard 白板可管理任務指派 網路架構文件編寫 netbox 精細管理網路設備與連接線路 IP 資源管理 phpipam 專注網路IP分配 邏輯塊文件編寫 draw.io 視覺化概念圖 機房設備管理 ITDB 管理設備生命週期與使用者

By Phillips Hsieh

如何在Raspberry Pi4上安裝Proxmox for ARM64

第一步 準備好Raspberry Pi 4 / CM4 4GB RAM,這裡要留意CM4如果是買有內建eMMC storage會限制不能使用SD卡開機而限制本地空間容量,如果沒有NAS外接空間或使用USB開機的話,建議買CM4 Lite插上大容量SD卡 第二步 去Armbian官網下載最小化Debian bookworm image https://www.armbian.com/rpi4b/ Armbian 25.2.2 Bookworm Minimal / IOT 然後寫入SD/USB開機碟,寫入方法參考官方文件 https://github.com/raspberrypi/usbboot/blob/master/Readme.md Note: 官方提供的預先設定系統方法,可以在Armbian初次啟動自動化完成系統設定。連結在此 https://docs.armbian.com/User-Guide_Autoconfig/

By Phillips Hsieh

世界越快心越慢

在晚飯後的休息時間,我特別享受在客廳瀏灠youtube上各樣各式創作者的影音作品。很大不同於傳統媒體,節目多是針對大多數族群喜好挑選的,在youtube上我會依心情看無腦的動畫、一些旅拍記錄、新聞時事談論。 尤其在看了大量的Youtube的分享後,我真的感受到會限制我的是我的無知,特別是那些我想都沒想過的實際應用,在學習後大大幫助到我的生活和工作層面。 休息在家時,我喜歡想一些沒做過的菜,動手去設計生活和工作上的解決方案,自己是真的很難閒著沒事做。 如創作文章,陪養新的習慣都能感覺到成長的喜悅,是不同於吃喝玩樂的快樂的。 創作不去限制固定的形式,文字是創作、影像聲音也是創作,記錄生活也是創作,我想留下的就是創造—》實現—》回憶,這樣子的循環過程,在留下的足跡面看到自己一路上的成長、失敗、絕望、重新再來。 雖然大部份的時候去做這些創作也不明白有什麼特別的意義,但不去做也不會留下什麼,所以呀不如反事都去試試看,也許能有不一樣的水花也許有意想不到的結果,投資自己永遠不會是失敗的決定,不是嗎?先問問自己再開始計畫下一步,未來沒人說得準。 像最近看youtube仍大一群人在為DOS開

By Phillips Hsieh