환경은 Redhat 7.2 버전입니다.
was. db, 응용서버 3대가 운영중이며 was 서버에 원격 로그를 저장하고 이를 처리합니다.
rsyslogd 설정으로 오류를 기록하고 있습니다.
#cat /etc/rsyslog.conf
. . .
authpriv.error @192.168.0.11 <= 아래 로그의 dev-was 임.
. . .
세대의 서버에 위와 같이 설정되어 있습니다.
ssh 접속을 하여 작업을 수행하다가 접속을 끊게 되면 접속 관련 /var/log/secure 로그 파일에 다음과 같이
. . .
Mar 4 16:07:27 dev-app sshd[14381]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
Mar 4 19:05:22 dev-db sshd[3664]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
Mar 4 16:07:15 dev-was sshd[9346]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
. . . 디스크가 다 찰때까지 위의 세가지 오류 내용 기록
서버의 디스크가 full이 될때까지 기록합니다.
dev-was 시스템에서 #journalctl _COMM=sshd 확인을 해보면
. . .
3월 04 15:37:44 dev-was sshd[9346]: Accepted password for root from 192.168.0.206 port 56019 ssh2
3월 04 15:37:44 dev-was sshd[9346]: pam_unix(sshd:session): session opened for user root by (uid=0)
. . .
3월 04 16:07:15 dev-was sshd[9346]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
3월 04 16:07:15 dev-was sshd[9346]: pam_unix(sshd:session): session closed for user root
. . .
15:37:44에 9346으로 sshd가 접속이 되고 작업을 수행하고 16:07:15에 ssh 접속을 끊으면 Interrupted system call이 발생하여
하염없이 로그를 기록합니다. 마찬가지로 db와 응용 서버에서 작업을 마치고 접속을 종료할 때도 발생하는데 이게 간헐적으로 발생합니다.
logrotate 설정으로 시간으로 체그 주기를 설정하고 파일 크기를 제한하면 되지만 현재는 원인 분석을 위해 그대로 둔 상태입니다.
어느 쪽의 문제일까요 아니면 시스템의 버그일까요 ?
-------------------------------------------------------------------------------------------------------
** rsyslogd.conf 파일의 설정 오류입니다.
Àǽɽº·´´Ù¸é ·Î±× ÀúÀåÇÏ´Â Àå¼Ò¸¦ º¯°æÇؼ ¿ø°ÝÀ» ·ÎÄ÷Π¹Ù²ÛÈÄ È®ÀÎÇØ º¸¼¼¿ä
¶È°°Àº ·Î±×°¡ °è¼Ó ÀúÀå µÉ°Ì´Ï´Ù.
·Î±× ÀϺθ¸ ¿Ã·Á¼ ÃßÃøÀÌÁö¸¸
·Î±×»ý¼ººóµµ³ª ½Ã°£À» ºÃÀ»¶§ µð½ºÅ© Ç®ÀÌ »ý±æÁ¤µµ¸é ·Î±×ÀúÀåµÇ´Â°÷ÀÌ ³Ê¹« ÀÛÀº ¿ë·® °°³×¿ä
°³ÀÎÀûÀ¸·Î ·Î±× º¸°üÇÒ¶§ ¿ø°Ý¿¡ ÀúÀåÇÏ´õ¶óµµ ·ÎÄÿ¡ ÀÏÁ¤Á¤µµ º¸°üÇϵµ·Ï ¼³Ä¡ÇÕ´Ï´Ù.
2. ½Ã½ºÅÛ¹ö±×?
½Ã½ºÅÛ¹ö±×´Â ¾Æ´Ñ°Å °°³×¿ä
¸¸µå½Å ÇÁ·Î±×·¥, ½ºÅ©¸³Æ® Á¡°ËÇØ º¸¼¼¿ä
Åð±Ù±æ¿¡ itx¿¡¼ Â÷ºÐÈ÷ »ý°¢Çغ¸´Ï
rsyslogd¼³Á¤ÀÌ À߸øµÈ °ÍÀ¸·Î ÆÇ´ÜÇß½À´Ï´Ù
was¼¹ö¿¡ ¼³Á¤ÀÌ ÀÚ±â ÀÚ½ÅÀ¸·Î ¶Ç º¸³»µµ·Ï
µÇ¾î ÀÖ¾î¼ ·ÎÄÿ¡ ±â·ÏÇÏ°í ¶Ç Àڽſ¡°Ô º¸³»¼
¶Ç ¾²°í ¶Çº¸³»°í Çϴ°Š°°½À´Ï´Ù
¼Ö·ç¼Ç¾÷ü¿¡¼ Á¦Ç°¼³Ä¡ÇÏ°í rsyslogd·Î ¿©·¯ ¼¹öÀÇ
·Î±×¸¦ ¼öÁýÇϵµ·Ï ±â´ÉÀ» ±¸ÇöÇÑ °ÍÀε¥
¹®Á¦°¡ ¹ß»ýÇؼ ¿øÀÎÀ» ã´Â ÁßÀÔ´Ï´Ù
½Ã½ºÅÛ ¹ö±×³ª rsyslogd ¹®Á¦°¡ ¾Æ´Ñ°Í °°½À´Ï´Ù
jounalctl·Î Ãâ·ÂµÈ °á°ú·Î ¹Ì·ç¾î ¿À·ù°¡ Çѹø ³ª°í
Á¤»óÁ¾·áÇÑ °ÍÀε¥ rsyslogd¼³Á¤¿¡ authpriv ±â·ÏÀ»ÇÏ°í
was ¼¹ö°¡ ¿ø°Ý·Î±×ÀúÀå ¼¹öÀε¥ ¶Ç Àü¼ÛÇÑ °ÍÀÌ ¿øÀÎÀÔ´Ï´Ù
dbÇÏ°í ÀÀ¿ë¼¹ö¿¡µµ ÀÚü ±â·ÏÇϵµ·Ï ¼³Á¤µÇ¾î Àִµ¥ ¹Ìó È®ÀÎÀ» ¸øÇß½À´Ï´Ù
¾Æ¸¶ ±â·ÏµÇ¾î ÀÖ°í ´ÜÀÏ ¹®Á¦·Î·Î ÇÑÁÙ¾¿ ±â·ÏµÇ¾î ÀÖÀ»°Å °°½À´Ï´Ù
Ãâ±ÙÇÏ¸é ¹Ù·Î Å×½ºÆ®ÇÒ ¿¹Á¤ÀÔ´Ï´Ù
ÇÑÂÊ ¼¹ö¸¸ ÁýÁßÇؼ ´Ù¸¥ÂÊ ¼¹ö »óŸ¦ Á¦´ë·Î Å×½ºÆ® ¸øÇ߳׿ä
¿ÍÀ̾î»þÅ©·Î ´Ù¸¥ ¼¹ö¿¡¼ ·Î±×°¡ Àü¼ÛÁßÀÎÁö üũÇߴµ¥ ¾ÈÇÏ°í ÀÖ½À´Ï´Ù
ÀÚü ¼¹ö¿¡¼´Â ÀÌ·ç¾îÁö°í ÀÖ´Ù¸é È®½ÇÇÑ °Í °°½À´Ï´Ù
ÀÚü·çÇÁ¹éÀÌ´Ï ´Ù¸¥ Åø »ç¿ëÇؼ üũÇÏ¸é ´äÀÌ ³ª¿Ã°Ì´Ï´Ù
´Ù½Ã Çѹø °¨»çµå¸³´Ï´Ù
pam_systemd(sshd:session): Failed to release session: Interrupted system call
À§ ¸Þ½ÃÁö°¡ »ý±â´Â ¿øÀÎÀº rsyslogd ¿Í´Â °ü·ÃÀÌ ¾ø½À´Ï´Ù. (ssh Á¢¼ÓÇؼ µ¹¸®´Â ÇÁ·Î±×·¥ °ü·Ã¹®Á¦·Î ÃßÁ¤µÊ)
log °ü·Ã ±¸Á¶³ª µ¿ÀÛ °úÁ¤À» À߸ø ¾Ë°í °è½Åµí ÇÕ´Ï´Ù.
·Î±×¸¦ ÀϺθ¸ ¿Ã¸®¼Ì±â¿¡ È®Á¤ÇÒ¼ö ¾øÀ¸³ª
¿Ã¸®½Å ³»¿ë¸¸À¸·Î´Â Áߺ¹ ¶Ç´Â ·çÇÁ°¡ µµ´Â ±â·ÏÀÌ ¾ø½À´Ï´Ù.
¾î¶²°É º¸°í Àü¼ÛÀÌ ¾ÈµÆ´Ù°í ÇϽôÂÁö.......
Âü°í·Î ·Î±× Àü¼Û Å×½ºÆ®´Â logger ¸¦ »ç¿ëÇÏ¿© Á¡°ËÇÒ¼ö ÀÖ½À´Ï´Ù.
¸®¸ðÆ® Àü¼Û¹æ¹ýµµ ¼³Á¤¿¡ µû¶ó ¿©·¯°¡Áö¶ó ¾î¶²½ÄÀ¸·Î ¿ÍÀ̾î»þÅ©·Î Á¡°ËÇϼ̴ٴ°ÇÁö........
À§ÀÇ ¿À·ù´Â ssh Å͹̳ΠÇÁ·Î±×·¥ ¹®Á¦·Î ¹ß»ýÇÑ °Í ÀÔ´Ï´Ù.
. . .
Mar 4 16:07:27 dev-app sshd[14381]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
Mar 4 19:05:22 dev-db sshd[3664]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
Mar 4 16:07:15 dev-was sshd[9346]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
. . .
ÀÌ·¸°Ô Ç¥½ÃÇߴµ¥ Á¦°¡ À߸ø ±ÛÀ» ½è½À´Ï´Ù.
°è¼Ó ±â·ÏµÇ°í ÀÖ´Ù°í . . .À¸·Î¸¸ Ç¥½ÃÇؼ ¿ÀÇØ°¡ ÀÖ¾ú½À´Ï´Ù.
À§ ±ÛÀ» ¼öÁ¤Çß½À´Ï´Ù.
·Î±× ÀúÀåÀåÄ¡´Â Àåºñ¸¶´Ù ´Ù¸¥µ¥ ÃÖ¼Ò 2tÀÔ´Ï´Ù.
rsyslogd¼³Á¤ÀÌ À߸øµÈ °ÍÀ¸·Î was ¼¹ö°¡ ·Î±× ¼öÁý ¼¹ö·Î µÇ¾î Àִµ¥ °ü·Ã ¼³Á¤À»
»©°í ±ÛÀ» ¿Ã·È½À´Ï´Ù. /etc/rsyslogd.conf ÆÄÀÏ ¼³Á¤¿¡ ´ÙÀ½°ú °°ÀÌ was, db, app ¼¹ö°¡ ¸ðµÎ µ¿ÀÏÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù.
authpriv.error @192.168.0.11
was ¼¹ö°¡ log ¼öÁý ¼¹ö°¡ µÇ´Âµ¥ authpriv.error ¸¦ ±â·ÏÇÏ°í ´Ù½Ã ÀÚ±â Àڽſ¡°Ô Àü¼ÛÇÏ°Ô ¼³Á¤ÀÌ µÇ¾î¼
µð½ºÅ©°¡ ´Ù Âû¶§±îÁö ±â·ÏÇÏ°í ÀÖ¾ú½À´Ï´Ù.
À§ ³»¿ë°ú ´õ ºÙ¿©¼ was ¼¹öÂÊ rsyslogdÀÇ ¼¹ö ¼³Á¤¿¡ ´ÙÀ½ ³»¿ëÀÌ Ãß°¡µÇ¾î ÀÖ¾î¼
. . . Áß·«
if ($fromhost-ip == '127.0.0.1') then {
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
}
authpriv.error @192.168.0.11
. . . Áß·«
·Î±×¿¡ ±â·ÏÇÏ°í ´Ù½Ã Àڽſ¡°Ô ÀçÀü¼ÛÇؼ »ý±ä ¹®Á¦ÀÔ´Ï´Ù.
db ¼¹ö¿Í app ¼¹ö¿¡¼ ÆÐŶÀÌ wasÂÊÀ¸·Î Áö¼ÓÀûÀ¸·Î ³ª°¡´Â °ÍÀÎÁö ¿ÍÀ̾î»þÅ©·Î Á¡°ËÇÑ °ÍÀÔ´Ï´Ù.
°á±¹ Àڽſ¡°Ô º¸³»´Â local loopback Á¡°ËÀÌ¶ó¼ ´ÙÀ½ ¸í·ÉÀ¸·Î È®ÀÎÇß½À´Ï´Ù.
#tcpdump -i lo
10:45:34.919129 IP dev-was.4694 > mcso6-wwp.syslog: SYSLOG authpriv.error, length: 120
10:45:34.919231 IP dev-was.4694 > mcso6-wwp.syslog: SYSLOG authpriv.error, length: 119
10:45:34.919238 IP dev-was.4694 > mcso6-wwp.syslog: SYSLOG authpriv.error, length: 120
. . . Áß·« - ¹«Çѹݺ¹À¸·Î loopbackÀ¸·Î Àü¼Û
°á±¹ Àڽſ¡°Ô ´Ù½Ã º¸³»´Â
authpriv.error @192.168.0.11
À§ ¼³Á¤¹®Á¦¿´½À´Ï´Ù.
¾Ë·ÁÁֽŠlogger Å×½ºÆ®´Â ±¸±ÛÀ» ÅëÇØ°Ë»öÇÏ°í ÀçÇö Å×½ºÆ® Çß½À´Ï´Ù.
´Ù½Ã Çѹø °¨»çÇÕ´Ï´Ù.