溫馨提示×

Debian syslog如何定制輸出格式

小樊
37
2025-10-17 08:48:44
欄目: 智能運維

在Debian系統中,syslog的配置文件位于/etc/rsyslog.conf(對于rsyslog)或/etc/syslog-ng/syslog-ng.conf(對于syslog-ng)。要定制輸出格式,你需要編輯相應的配置文件。

以下是針對rsyslog和syslog-ng的定制輸出格式的方法:

對于rsyslog:

  1. 打開配置文件:
sudo nano /etc/rsyslog.conf
  1. 在文件中找到template部分,如果沒有,請添加一個。例如,創建一個名為CustomFormat的模板:
$template CustomFormat,"%timegenerated% %hostname% %app-name% %procid% %msgid% %structed-data% %$!\n"

這里,我們定義了一個自定義格式,包括時間戳、主機名、應用程序名稱、進程ID、消息ID、結構化數據等。你可以根據需要修改這個格式。

  1. 在文件中找到你想要應用自定義格式的規則。例如,將所有來自authpriv設施的消息發送到本地日志文件:
if $facility-text == 'authpriv' then /var/log/auth.log
& stop
  1. 在這條規則之前,添加一行以應用自定義格式:
:msg, contains, "authpriv" -?CustomFormat

這將把自定義格式應用于所有來自authpriv設施的消息。

  1. 保存并關閉文件。

  2. 重啟rsyslog服務以應用更改:

sudo systemctl restart rsyslog

對于syslog-ng:

  1. 打開配置文件:
sudo nano /etc/syslog-ng/syslog-ng.conf
  1. 在文件中找到log部分,如果沒有,請添加一個。例如,創建一個名為CustomFormat的模板:
template t_CustomFormat {
    template("${ISODATE} ${HOST} ${PROGRAM} ${PID} ${MSGID} ${STRUCTURED-DATA}\n");
};

這里,我們定義了一個自定義格式,包括時間戳、主機名、應用程序名稱、進程ID、消息ID、結構化數據等。你可以根據需要修改這個格式。

  1. 在文件中找到你想要應用自定義格式的規則。例如,將所有來自authpriv設施的消息發送到本地日志文件:
filter f_authpriv { facility(authpriv); };
destination d_authpriv { file("/var/log/auth.log"); };
log { source(s_src); filter(f_authpriv); destination(d_authpriv); };
  1. 在這條規則之前,添加一行以應用自定義格式:
rewrite r_CustomFormat { template(t_CustomFormat); };

這將把自定義格式應用于所有匹配的日志消息。

  1. 保存并關閉文件。

  2. 重啟syslog-ng服務以應用更改:

sudo systemctl restart syslog-ng

現在,你的Debian系統應該使用自定義的syslog輸出格式。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女