2008-06-18

Alteon 2424 將 Syslog 送到 FreeBSD Syslogd Server HowTo

Alteon 本身有支援 syslog 輸出到外部 syslogd server 的方式(UDP:514),其 syslog 一些設定(訊息等級之類都雷同 Unix-like OS)

整個設定裡最麻煩的在於要讓 syslogd server 把 Alteon 跟 loacl 的訊息區分出來不要混淆,所以會造成一些麻煩事

設定我們就分 Alteon & syslogd server 兩部份來說

  1. Alteon: (參考 Alteon_OS_22.0.2_Command_Reference Page.233)
    • /cfg/sys/syslog
      host 10.0.1.62 #我們走 LAN 送 DATA 就好
      sever 6
      facil 6
      log all ena
      apply
  2. Syslogd Server: (我們以 一台 Lan Server 來當收 log 的 server)
    1. /etc/hosts #這個部份是為了讓我們的 syslog.conf 可以區分用
      10.0.1.1 alteon1.mydomain.com.tw alteon1
      10.0.1.2 alteon2.mydomain.com.tw alteon2
    2. /etc/rc.conf[.local] #rc.conf 設定 syslogd 的啟動參數,若需多個就以空白隔開,語法: ip[/netmask]:port
      syslogd_flags="-a 10.0.1.0/24:514" (註一)
    3. /etc/pf.conf[.local] #pf.conf 加一個 UDP: 514 的 port allow
      udp_private = "{ snmp 514 }" (註二)
    4. syslog.conf #在所有設定的最上面加上以下幾行
      +alteon1 (註三)
      *.* /var/log/alteon1.log
      +alteon2
      *.* /var/log/alteon2.log
      +@
  3. 以上都設定好要重跑 syslogd & pf
    1. /etc/rc.d/syslogd restart
    2. /etc/rc.d/pf restart
解說:
  • 註一:FreeBSD 上 syslogd 預設開機就會啟動,然而預設開機是有加 -s (會讓這台 Server 不能當做 Syslogd server),所以我們要加個 syslogd_flags 讓 syslogd 啟動時換掉啟動參數;若是要 allow 多網段或 IP,在網段或 IP 之間用空白隔開即可,至於 "IP/netmask" 的表示法就不多說;成功啟動後用 ps 去看會看到 syslogd 長的像這個樣子 "/usr/sbin/syslogd -a 10.0.1.0/24:514"
  • 註二:我們在 pf 部份只 allow 了 snmp,而 syslog 是走 UDP 514,所以要開放,有些人沒用 pf 是用 ipfw,也是相對應做一下設定開放 UDP 514
  • syslog.conf 的精華在這,
    • 我們在 /etc/hosts 指定好 server alias 就是為了這部份要用,最一開始有說到 Alteon 丟出來的訊息等級都跟 unix-like OS 雷同,所以不分類的話一定會混雜在一起,要分類的話就得有個明顯的"標的"可以被 syslog.conf 使用
    • 在 man page 裡有提到,
      • +[hostname] 指的是由這個 host 過來的訊息利用以下 block 的方式記錄
      • +@ 指的是 localhost 的訊息利用以下 block 的方式記錄
      • -[hostname] 跟 +[hostname] 反向,也就是除了 [hostname] 以外的都用以下 block 的方式記錄
    • 剩下的可以參考 man syslog.conf
syslog.conf 設定參考:
  • 以下列出收 Log 的 Server 的 syslog.conf 給大家參考
  • # $FreeBSD: src/etc/syslog.conf,v 1.28 2005/03/12 12:31:16 glebius Exp $
    #
    # Spaces ARE valid field separators in this file. However,
    # other *nix-like systems still insist on using tabs as field
    # separators. If you are sharing this file between systems, you
    # may want to use only tabs as field separators here.
    # Consult the syslog.conf(5) manpage.
    +alteon1
    *.* /var/log/alteon1.log
    +alteon2
    *.* /var/log/alteon2.log
    +@ #這裡要讓以下原本的設定都是跟之前一樣,所以指定為以下 block 都是記 localhost

    *.err;kern.warning;auth.notice;mail.crit /dev/console
    *.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
    security.* /var/log/security
    auth.info;authpriv.info /var/log/auth.log
    mail.info /var/log/maillog
    lpr.info /var/log/lpd-errs
    ftp.info /var/log/xferlog
    cron.* /var/log/cron
    *.=debug /var/log/debug.log
    *.emerg *
    # uncomment this to log all writes to /dev/console to /var/log/console.log
    console.info /var/log/console.log
    # uncomment this to enable logging of all log messages to /var/log/all.log
    # touch /var/log/all.log and chmod it to mode 600 before it will work
    #*.* /var/log/all.log
    # uncomment this to enable logging to a remote loghost named loghost
    #*.* @loghost
    # uncomment these if you're running inn
    # news.crit /var/log/news/news.crit
    # news.err /var/log/news/news.err
    # news.notice /var/log/news/news.notice
    !startslip
    *.* /var/log/slip.log
    !ppp
    *.* /var/log/ppp.log
參考資料:
  1. 【FreeBSD】用 FreeBSD 建置集中式 Syslog Server
  2. Unix 系統管理手冊-第十一章 Syslog 和記錄檔
  3. Alteon_OS_22.0.2_Command_Reference P.233

沒有留言: