syslog에 특정 문자열이 로깅이 되면 알람을 보내거나 특정 사용자에게 메일을 보내는 방법 ?
글쓴이: yves1 / 작성시간: 월, 2009/12/21 - 12:42오후
안녕하십니까.
CentOS를 사용중인대요..
Syslog에 특정 문자열이 로깅이되면, "Port Scan" 이런 문자열이 syslog에 로깅이 되면 이 이벤트 상황에 대해서 관리자에게 알람을 줄 수 있는 방법을 찾고 있습니다.
일반 syslog 관리툴 (kiwi syslog)에는 이런 기능이 없는 것 같아서요.
혹시, 리눅스 자체에 이런 기능을 구현할 수 있는 방법이 있나요 ?
아니면 일반적인 syslog 관리툴에서 위와 같은 기능을 제공하는 툴이 있으며 (당연 무료툴이면 더 좋고요) , 확인 부탁드립니다.
감사합니다.
Forums:


SEC ( Simple Event Correlator ) 를 추천
SEC ( Simple Event Correlator ) 를 추천
SEC는 박사논문 과정에서 Perl로 만들어진 스크립트로 HP OpenView NNM and Operations, CiscoWorks, BMC Patrol, Nagios, SNMPTT, Snort IDS, Prelude IDS 등의 고가 상용솔루션에서도 로그패턴검출 및 처리용으로 쓰이고 있습니다.
http://simple-evcorr.sourceforge.net/
http://www.campin.net/newlogcheck.html
http://www.occam.com/sa/CentralizedLogging2008.pdf
쉘 스크립트로 예전에 했었는데..
모니터링하는 PC 에서 putty 로 해당 서버에 접근해 놓고,
스크립트를 띄워서, 특정 문자열 노출시 알람이 발생하게 했습니다.
좀 고쳐서 하셔도 될거 같네요.
#!/usr/bin/env bash #set -x # Description : DB Error Alarm Script. # Ver : 0.1v # Date : 20090327 BELL='tput bel' ERRMSG='(Shuting down instance|checkpoint)' PRINTMSG="DB Error !!!!" DestFile='/oracle/app/oracle/admin/rac/bdump/alert_rac1.log' BellLIMIT=10 ## Define Functions BELL() { for (( a=0; a < BellLIMIT ; a++ )); do echo -e "\n\t\t $(date) $PRINTMSG" tput bel sleep 1 done } # Main while :; do tail -1 $DestFile | egrep -q "$ERRMSG" RETVAL=$? if [ $RETVAL -eq 0 ]; then BELL fi sleep 0.1 doneVery interesting, it's
Very interesting, it's useful for me, because it help me for my firs project about Campina
Rsyslogd
안녕하세요.
저도 이 부분때문에 Rsyslogd에 대해서 알아보고 있는 중입니다.
Rsyslogd에서는 로깅레벨에 따라서 관리자에게 메일을 보낼 수 있는 기능을 포함하고 있는것으로 알고 있는데,
특정 문자열이 로깅 되었을때도 가능한지 알아봐야 겠습니다. 물론 특정 문자열에 대해서 로깅레벨을 다르게 설정하고
관리자에게 알릴수 있지만요.
저도 알아보고 있는 부분이기 때문에 한마디 거들었습니다.