´ÙÀ½ ÀÌÀü Â÷·Ê

6. Syslogd

6.1 ¹®Á¦µé

Syslogd´Â ÀϹÝÀûÀÎ À¯´Ð½º ½Ã½ºÅÛ¿¡¼­ »ç¿ëµÇ´Â ½Ã½ºÅÛ ±â·Ï µµ±¸ÀÌ´Ù. Syslogd´Â FIFO¶ó ºÒ¸®´Â Ưº°ÇÑ ÆÄÀÏÀ» ¿©´Â µ¥¸óÀε¥, FIFO´Â ÇϳªÀÇ ÆÄÀÌÇÁ¿Í °°ÀÌ ÀÛµ¿Çϴ Ưº°ÇÑ ÆÄÀÏÀÌ´Ù. ¾²´Â ÂÊ¿¡¼­ ±â·ÏÇÑ ³»¿ëÀº ¸ðµÎ Àд ÂÊ¿¡ ³ªÅ¸³ª°Ô µÈ´Ù. Syslogd´Â Àд ÂÊ¿¡¼­ º¸³»´Â µ¥ÀÌÅ͸¦ ±â´Ù¸®°í ÀÖ´Ù. CÀÇ ÇÔ¼ö °¡¿îµ¥¿¡´Â ¾²´Â ÂÊ¿¡ ¹«¾ð°¡¸¦ ±â·ÏÇÒ ¼ö ÀÖ´Â ÇÔ¼ö°¡ Àִµ¥, ÇÁ·Î±×·¥¿¡¼­ ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù¸é, ´ç½ÅÀÇ Ãâ·Â °á°ú´Â syslogd·Î °¡°Ô µÈ´Ù.

Chroot¸¦ »ç¿ëÇϴ ȯ°æ¿¡¼­´Â syslogd°¡ (/dev/log)¿¡¼­ ÀоîµéÀÏ FIFO°¡ Á¸ÀçÇÏÁö ¾Ê°Ô µÈ´Ù. ÀÌ°ÍÀº ¸ðµç °¡»ó ȯ°æ¿¡¼­ syslogd·Î µé¾î°¥ ¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.

6.2 Solution

Setup Links

Syslogd´Â ¸í·É¾î ¶óÀο¡¼­ ¼³Á¤À» ÇØÁØ´Ù¸é ´Ù¸¥ FIFO¸¦ ãÀ» ¼ö ÀÖ´Ù:

syslogd -p /virtual/log

±×¸®°í´Â /virtual/log¸¦ /dev/log·Î ½Éº¼¸µ ¸µÅ©½ÃŲ´Ù:

ln -sf /virtual/log /dev/log

±×¸®°í´Â ¸ðµç /dev/logÀÇ º¹»çº»À» ÀÌ ÆÄÀÏ·Î Çϵ帵ũ ½ÃŲ´Ù:

ln -f /virtual/log /virtual/domain1.com/dev/log 

virtfs ½ºÅ©¸³Æ®´Â ÀÌ¹Ì ÀÌ °úÁ¤À» ¼öÇàÇÑ´Ù. /virtualÀÌ µð½ºÅ© °ø°£¿¡ ÀÎÁ¢ÇØ ÀÖ°í /dev/log°¡ Çϵ帵ũµÇ¾î ÀÖ´Â »óÅÂÀ̱⠶§¹®¿¡, À̵éÀº °°Àº inode ¼ýÀÚ¸¦ °¡Áö°í °°Àº µ¥ÀÌÅ͸¦ °¡¸®Å°°í ÀÖ´Ù. ¸ðµç °¡»óÀÇ /dev/log µéÀÌ µ¿½Ã¿¡ ÀÛµ¿ÁßÀ̱⠶§¹®¿¡ chrootµµ ÀÌ°ÍÀ» ¸ØÃâ ¼ö ¾ø´Ù. ¸ðµç ȯ°æ¿¡¼­ºÎÅÍÀÇ ¸ðµç ¸Þ¼¼Áö°¡ ÇϳªÀÇ Àå¼Ò¿¡ ±â·ÏµÈ´Ù´Â »ç½ÇÀ» ±â¾ïÇ϶ó. ÇÏÁö¸¸, ÀÌ µ¥ÀÌÅÍ¿¡¼­ ¿øÇÏ´Â ÀڷḸ °É·¯³»´Â µ¶¸³ÀûÀÎ ÇÁ·Î±×·¥À» ½±°Ô ¸¸µé ¼ö ÀÖÀ» °ÍÀÌ´Ù.

Syslogd.init

syslogd.initÀÇ ÀÌ ¹öÀüÀº syslogd°¡ ½ÃÀÛÇÒ ¶§¸¶´Ù /dev/log FIFO¸¦ Áö¿ì°í »õ·Î ¸¸µé±â ¶§¹®¿¡ ¸Å¹ø /dev/log¿¡ Çϵ帵ũ½ÃÄÑ¾ß ÇÑ´Ù. ¿©±â º¯ÇüµÈ syslogd.init ÆÄÀÏÀÌ ÀÖ´Ù:

#!/bin/sh

. /etc/rc.d/init.d/functions

case "$1" in
  start)
        echo -n "Starting dev log: "
        ln -sf /virtual/log /dev/log
        echo done
        echo -n "Starting system loggers: "
        daemon syslogd -p /virtual/log
        daemon klogd
        echo
        echo -n "Starting virtual dev log: "
        for i in /virtual/*
        do
                if [ ! -d "$i" ]
                then
                        continue
                fi
                if [ "$i" = "/virtual/lost+found" ]
                then
                        continue
                fi
                ln -f /virtual/log $i/dev/log
                echo -n "."
        done
        echo " done"
        touch /var/lock/subsys/syslogd
        ;;
  stop)
        echo -n "Shutting down system loggers: "
        killproc syslogd
        killproc klogd
        echo
        rm -f /var/lock/subsys/syslogd
        ;;
  *)
        echo "Usage: syslogd {start|stop}"
        exit 1
esac

exit 0

6.3 ¿©·¯°³ÀÇ Syslogd

ÇϳªÀÇ µð½ºÅ©¿¡ ÇÑ°³ÀÇ syslogd

¸¸¾à ´ç½ÅÀÌ ¼³Á¤ÇÑ ÇϳªÀÇ ÆÄÀϽýºÅÛÀÌ ³ÑÃļ­ ´Ù¸¥ µð½ºÅ©¿¡ ÀÖ´Â °ø°£À» °¡»ó ½Ã½ºÅÛ¿¡¼­ »ç¿ëÇÏ°íÀÚ ÇÑ´Ù¸é, ÇÏµå ¸µÅ©¸¦ ÅëÇؼ­ ¼­·Î ´Ù¸¥ µð½ºÅ©¸¦ ¿¬°áÇÒ ¼ö ¾ø´Ù´Â »ç½ÇÀ» ¸í½ÉÇϱ⠹ٶõ´Ù. ÀÌ°ÍÀº ÇÑ µµ¸ÞÀο¡ ´ëÇؼ­µµ ¼­·Î ´Ù¸¥ µð½ºÅ©¿¡¼­´Â °¢°¢ÀÇ syslogd¸¦ ½ÇÇà½ÃÄÑ¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÇÑ ¿¹·Î, ¸¸¾à ´ç½ÅÀÌ /virtual1¿¡ 13°³ÀÇ µµ¸ÞÀÎÀ» °¡Áö°í ÀÖ°í, /virtual2¿¡ 15°³ÀÇ µµ¸ÞÀÎÀ» °¡Áö°í ÀÖ´Ù¸é, 13°³ÀÇ µµ¸ÞÀο¡ ´ëÇؼ­´Â /virtual1/log¿¡ ÇÏµå ¸µÅ©¸¦ ½ÃŲ ÈÄ, syslogd -p /virtual1/log ¿Í °°Àº ¹æ¹ýÀ¸·Î °¢°¢ syslogd¸¦ ½ÇÇà½ÃŲ´Ù. ¸¶Âù°¡Áö ¹æ¹ýÀ¸·Î /virtual2¿¡ 15°³ÀÇ ´Ù¸¥ µµ¸ÞÀÎÀ» /virtual2/log¿¡ Çϵ帵ũ ½ÃŲ ÈÄ syslogd -p /virtual2/log ÀÇ ¹æ¹ýÀ¸·Î syslogd¸¦ ½ÇÇà½ÃŲ´Ù.

ÇϳªÀÇ µµ¸ÞÀο¡ ÇϳªÀÇ syslogd

¸¸¾à ´ç½ÅÀÌ ¸ðµç ±â·ÏµéÀ» ÇϳªÀÇ À§Ä¡·Î ÁýÁß½ÃÅ°°í ½ÍÁö ¾Ê´Ù¸é °¢°¢ÀÇ µµ¸ÞÀο¡ ´ëÇؼ­ syslogd¸¦ µû·Î ½ÇÇà½Ãų ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ÇÁ·Î¼¼½º ID¸¦ ³¶ºñÇϱ⠶§¹®¿¡ ±ÇÇÏ°í ½ÍÀº ¹æ¹ýÀº ¾Æ´ÏÁö¸¸, ÀÌ°ÍÀ» ±¸ÇöÇÏ´Â °ÍÀº ½¬¿î ÀÏÀÌ´Ù. ´ç½ÅÀº syslogd.init ÆÄÀÏ¿¡¼­ chroot /virtual/domain1.com syslogd·Î °¢°¢ÀÇ µµ¸ÞÀο¡ ´ëÇØ syslogd¸¦ ½ÇÇà½Ãų ¼ö ÀÖ´Ù. ÀÌ°ÍÀº chroot ¾È¿¡¼­ °¢°¢ÀÇ syslogd¸¦ ½ÇÇà½ÃÅ°¸ç ±× ±â·ÏÀº /var/log°¡ ¾Æ´Ï¶ó /virtual/domain1.com/var/log¿¡ ±â·ÏµÉ °ÍÀÌ´Ù. ¸ÞÀÎ ½Ã½ºÅÛ¿¡¼­ ÀÏ¹Ý syslogd¿Í Ä¿³Î ±â·ÏÀ» À§ÇÑ klogd¸¦ ½ÇÇà½ÃÅ°´Â °ÍÀ» ÀØÁö ¸»¶ó.


´ÙÀ½ ÀÌÀü Â÷·Ê