UJP - 技術情報1

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

MacOS X 10.4 Serverでsyslogを受け取る

MacOS X 10.4 Serverでsyslogを受け取る


0.改訂履歴

  • 2007.03.26 新規作成

1.はじめに

 このドキュメントでは,MacOS X 10.4サーバにて,RTX1100あたりのネットワーク機器から,syslogを受け取る為の設定手順を説明する. デフォルトでは外部のサーバからsyslogを受け取れる設定になっていないため,それを許可し,lanchctlを使ってunload/loadで設定を読み込ませて反映させるまでの手順となる. また,OSに最初から設定してある毎日のログローテーションの/etc/dailyの不具合により,syslogがロギング手されなくなる不具合に対応する為の手法も記載されている.

2.設定の変更

  • Syslogdの設定ファイルは,XMLファイルで記述されている.
  • 以下のファイルを編集する.
    • /System/Library/LaunchDaemons/com.apple.syslogd.plist
変更前
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.apple.syslogd</string>
    <key>ServiceDescription</key>
    <string>Apple System Log Daemon</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
            <string>/usr/sbin/syslogd</string>
    </array>
    <key>ServiceIPC</key>
    <false/>
</dict>
</plist>
変更後
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.apple.syslogd</string>
    <key>ServiceDescription</key>
    <string>Apple System Log Daemon</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
            <string>/usr/sbin/syslogd</string>
            <string>-u</string>
            <string>-m</string>
            <string>0</string>
    </array>
    <key>ServiceIPC</key>
    <false/>
</dict>
</plist>

3.設定を反映させる

  • 設定を反映させるために,syslogデーモンを再起動させる.
  • launchctlでデーモンの確認を行う.
203:/Users/admin root# launchctl list
com.apple.KernelEventAgent
com.apple.mDNSResponder
com.apple.nibindd
com.apple.periodic-daily
com.apple.periodic-monthly
com.apple.periodic-weekly
com.apple.portmap
com.apple.servermgrd
com.apple.syslogd
com.vix.cron
com.apple.xftpd
org.clamav.freshclam
org.postfix.master
org.xinetd.xinetd
com.openssh.sshd
com.apple.ppp.pptp
org.amavis.amavisd
edu.cmu.andrew.cyrus.master
203:/Users/admin root#
  • syslogdを停止する.
203:/Users/admin root# launchctl stop com.apple.syslogd
203:/Users/admin root#
  • 設定ファイルを再読込させ,syslogdを起動する.
203:/Users/admin root# launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
203:/Users/admin root# launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
203:/Users/admin root# launchctl start com.apple.syslogd
203:/Users/admin root#
  • これで終了.

4.動作確認

  • /var/log/system.logを参照することで,syslogが出力されているか,確認することが出来る.
203:/var/log root# tail -f system.log
Mar 26 00:40:17 xxx.xxx.xxx.xx [INSPECT] PP[01][out][101] TCP 192.168.0.]: 54286 > nnn.nnn.nn.nnn:80
 (2007/03/26 00:40:48)

5.syslogのログファイルローテーション対応

  • これまでの設定のままであると,syslogのログローテーションのタイミングで,ログが吐き出されない状態となる.
  • ログファイルを確認してみる.
203:~ admin$ cd /var/log
203:/var/log admin$ ls -lat
total 212944
-rw-r--r--     1 root    wheel  58018649 Mar 26 11:40 alias.log
-rw-r-----     1 root    admin     28868 Mar 26 11:38 lastlog
-rw-r--r--     1 root    admin      1440 Mar 26 11:38 wtmp
drwxr-xr-x     3 root    wheel       102 Mar 26 10:10 ppp
drwxr-xr-x    38 root    wheel      1292 Mar 26 10:10 .
-rw-r-----     1 clamav  admin      7692 Mar 26 03:44 freshclam.log
-rw-r--r--     1 root    wheel   1820231 Mar 26 03:15 asl.log
-rw-r--r--     1 root    wheel  46591219 Mar 26 03:15 daily.out
-rw-r--r--     1 root    wheel   1132140 Mar 26 03:15 diskspacemonitor.log
-rw-r-----     1 root    admin         0 Mar 26 03:15 system.log
-rw-r-----     1 root    admin    739264 Mar 26 03:14 mailaccess.log
-rw-r-----     1 root    admin     94392 Mar 26 03:08 mail.log
-rw-r-----     1 root    admin    337415 Mar 26 00:17 secure.log
drwxr-xr-x     5 root    wheel       170 Mar 25 18:37 cups
  • ログローテーションが行われた3時15分から,ログが記録されていない.
  • これは,/etc/dailyファイルで設定してあるsyslogのログローテーションが,kill -HUPによって行われているためで,その方法ではうまくいかない.
  • よって,lanchctlに切り替える.
  • /etc/dailyファイルを,以下のように記述する.
変更前
cd /var/log
for i in system.log; do
    if [ -f "${i}" ]; then
        printf %s " ${i}"
        if [ -x /usr/bin/gzip ]; then gzext=".gz"; else gzext=""; fi
        if [ -f "${i}.6${gzext}" ]; then mv -f "${i}.6${gzext}" "${i}.7${gzext}"; fi
        if [ -f "${i}.5${gzext}" ]; then mv -f "${i}.5${gzext}" "${i}.6${gzext}"; fi
        if [ -f "${i}.4${gzext}" ]; then mv -f "${i}.4${gzext}" "${i}.5${gzext}"; fi
        if [ -f "${i}.3${gzext}" ]; then mv -f "${i}.3${gzext}" "${i}.4${gzext}"; fi
        if [ -f "${i}.2${gzext}" ]; then mv -f "${i}.2${gzext}" "${i}.3${gzext}"; fi
        if [ -f "${i}.1${gzext}" ]; then mv -f "${i}.1${gzext}" "${i}.2${gzext}"; fi
        if [ -f "${i}.0${gzext}" ]; then mv -f "${i}.0${gzext}" "${i}.1${gzext}"; fi
        if [ -f "${i}" ]; then
              touch "${i}.$$" && chmod 640 "${i}.$$" && chown root:admin "${i}.$$"
              mv -f "${i}" "${i}.0" && mv "${i}.$$" "${i}" && if [ -x /usr/bin/gzip ]; then
                gzip -9 "${i}.0"; fi
        fi 
    fi
done
if [ -f /var/run/syslog.pid ]; then kill -HUP $(cat /var/run/syslog.pid | head -1); fi
echo ""
変更後
cd /var/log
for i in system.log; do
    if [ -f "${i}" ]; then
        printf %s " ${i}"
        if [ -x /usr/bin/gzip ]; then gzext=".gz"; else gzext=""; fi
        if [ -f "${i}.6${gzext}" ]; then mv -f "${i}.6${gzext}" "${i}.7${gzext}"; fi
        if [ -f "${i}.5${gzext}" ]; then mv -f "${i}.5${gzext}" "${i}.6${gzext}"; fi
        if [ -f "${i}.4${gzext}" ]; then mv -f "${i}.4${gzext}" "${i}.5${gzext}"; fi
        if [ -f "${i}.3${gzext}" ]; then mv -f "${i}.3${gzext}" "${i}.4${gzext}"; fi
        if [ -f "${i}.2${gzext}" ]; then mv -f "${i}.2${gzext}" "${i}.3${gzext}"; fi
        if [ -f "${i}.1${gzext}" ]; then mv -f "${i}.1${gzext}" "${i}.2${gzext}"; fi
        if [ -f "${i}.0${gzext}" ]; then mv -f "${i}.0${gzext}" "${i}.1${gzext}"; fi
        if [ -f "${i}" ]; then
              touch "${i}.$$" && chmod 640 "${i}.$$" && chown root:admin "${i}.$$"
              mv -f "${i}" "${i}.0" && mv "${i}.$$" "${i}" && if [ -x /usr/bin/gzip ]; then
                gzip -9 "${i}.0"; fi
        fi 
    fi
done
#if [ -f /var/run/syslog.pid ]; then kill -HUP $(cat /var/run/syslog.pid | head -1); fi
launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
launchctl stop com.apple.syslogd
launchctl start com.apple.syslogd 
echo ""
  • 直ぐに実行してみる.
203:/var/log root# /etc/daily 

Removing scratch and junk files:

Removing scratch fax files
msgs: /var/msgs/bounds: No such file or directory

Backing up NetInfo data

Checking subsystem status:

disks:
Filesystem   1K-blocks     Used    Avail Capacity  Mounted on
/dev/disk0s7  26298048 10756996 15285052    41%    /
/dev/disk0s3  31697596  8402460 23295136    27%    /disk1
/dev/disk0s5  19761844  4837916 14923928    24%    /disk2

Last dump(s) done (Dump '>' file systems):

mail:
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
340A051D201     2871 Sat Mar 24 04:02:29  MAILER-DAEMON
           (connect to rc.yahoo.akadns.net[66.94.234.13]: Operation timed out)
                                         gyehfltuef3921332@mail.yahoo.com.hk

EA3FA51D20D     3708 Sat Mar 24 04:03:11  MAILER-DAEMON
           (connect to rc.yahoo.akadns.net[66.94.234.13]: Operation timed out)
                                         gyehfltuef3921332@mail.yahoo.com.hk

-- 6 Kbytes in 2 Requests.

network:
Name  Mtu   Network       Address            Ipkts Ierrs    Opkts Oerrs  Coll
lo0   16384 <Link#1>                       5866255     0  5866255     0     0
lo0   16384 127           localhost        5866255     -  5866255     -     -
lo0   16384 localhost   ::1                5866255     -  5866255     -     -
lo0   16384 localhost   fe80::1            5866255     -  5866255     -     -
gif0* 1280  <Link#2>                             0     0        0     0     0
stf0* 1280  <Link#3>                             0     0        0     0     0
en0   1500  <Link#4>    00:0d:93:7b:5e:fe  3168330     7  2558899     0 43028
en0   1500  localhost   fe80::20d:937b:ff  3168330     -  2558899     -     -
en0   1500  203.141.135.1 243.241.153.20.  3168330     -  2558899     -     -
fw1   2030  <Link#5>    00:93:93:ff:d0:7b:7f:5e        0     0        0     0     0

ruptime: no hosts in /var/rwho.

Rotating log files: system.log
203:/var/log root# 
  • loggerコマンドを使い,syslogにメッセージを書き出すして,ロギングされるか,テストしてみる.
203:/var/log root# /usr/bin/logger syslog test
203:/var/log root# tail -n 1 /var/log/system.log 
Mar 26 12:22:39 203 server: syslog test
203:/var/log root# 
  • ログローテーション後も,正しくログが記録されていることが確認できた


広告スペース
Google