'2012/03'에 해당되는 글 4
2012/03/30  rsyslog + mysql  
2012/03/30  아이유 "키세스해줘"  
2012/03/26  Postfix 설치 (CentOS)  
2012/03/26  gearmand 설치 (CentOS)  
Development  2012/03/30 20:46
1. rsyslog 설치

mysql을 소스컴파일로 설치를 하였기 때문에 yum을 사용하지 않고 rsyslog도 소스컴파일을 통해 설치함.
소스 다운로드
# /etc/init.d/syslog stop
# tar zxf rsyslog-5.8.9.tar.gz
# cd rsyslog-5.8.9
# ./configure --enable-mysql
# make
# make install
# cp ./rsyslog.conf /etc/
# cp /etc/sysconfig/syslog /etc/sysconfig/rsyslog
# vi /etc/init.d/rsyslog
#!/bin/bash
# chkconfig: 2345 12 88
# Source function library.
. /etc/init.d/functions
 
RETVAL=0
 
start() {
    [ -x /usr/local/sbin/rsyslogd ] || exit 5
 
    # Source config
    if [ -f /etc/sysconfig/rsyslog ] ; then
        . /etc/sysconfig/rsyslog
    else
        SYSLOGD_OPTIONS="-c3"
    fi
 
    umask 077
 
    echo -n $"Starting system logger (rsyslog): "
    daemon /usr/local/sbin/rsyslogd $SYSLOGD_OPTIONS
    RETVAL=$?
    echo
    return $RETVAL
}
 
stop() {
    echo -n $"Shutting down system logger (rsyslog): "
    killproc rsyslogd
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/rsyslog
    return $RETVAL
}
 
rhstatus() {
    status rsyslogd
}
restart() {
    stop
    start
}
 
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        rhstatus
        ;;
    restart|reload)
        restart
        ;;
    condrestart)
        [ -f /var/lock/subsys/rsyslog ] && restart || :
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart}"
        exit 2
esac
 
exit $?
# chmod +x /etc/init.d/rsyslogd
# /etc/init.d/rsyslog start

여기까지 하면 syslog를 대체하는 rsyslog의 설치가 끝난 것이다.
하지만 rsyslog의 log format과 syslog의 log format은 차이가 있으므로
syslog에 익숙한 사용자라면 rsyslog.conf를 변경을 해주면 된다.
@@ -9,6 +9,9 @@
 $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
 $ModLoad imklog   # kernel logging (formerly provided by rklogd)
 
+$template OldFormat,"%timegenerated% %HOSTNAME% %syslogtag% %msg%\n"
+$ActionFileDefaultTemplate OldFormat
+
 # Log all kernel messages to the console.
 # Logging much else clutters up the screen.
 #kern.*                                                 /dev/console


2. mysql 연동

우선은 기본으로 제공하는 sql파일을 사용하도록 하자.
# mysql -uroot -p < ./plugins/ommysql/createDB.sql

mysql에 들어가 보면 Syslog라는 DB와 SystemEvents, SystemEventsProperties라는 테이블이 생성된 걸 확인할 수 있다.
rsyslog에서 mysql 접속을 위한 사용자 추가한다(user 및 password는 변경 가능).
GRANT ALL ON Syslog.* to rsyslog@'localhost' identified by 'rsyslog';

이제 rsyslog.conf에 들어가 설정하면 된다.

@@ -8,6 +8,7 @@

 $ModLoad immark   # provides --MARK-- message capability
 $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
 $ModLoad imklog   # kernel logging (formerly provided by rklogd)
+$ModLoad ommysql
 
 $template OldFormat,"%timegenerated% %HOSTNAME% %syslogtag% %msg%\n"
 $ActionFileDefaultTemplate OldFormat
@@ -25,6 +26,7 @@
 
 # Log all the mail messages in one place.
 mail.*                                                  -/var/log/maillog
+mail.*                                                  :ommysql:localhost,Syslog,rsyslog,rsyslog
 
 # Log cron stuff
 cron.*                                                  -/var/log/cron

위 설정의 경우는 로그를 파일과 DB에 모두 남기도록 하는 것이다. DB에 만 남기고 싶다면 윗줄 삭제.
rsyslog를 재시작한 뒤 DB에 로그가 제대로 들어가는지 확인해보자.
2012/03/30 20:46 2012/03/30 20:46
http://blog.combel.net/trackback/25
Funny  2012/03/30 00:00
 
2012/03/30 00:00 2012/03/30 00:00
http://blog.combel.net/trackback/24
Development  2012/03/26 22:45
Postfix 다운로드 (2.8.9 기준)

# make makefiles \
CCARGS="-DUSE_SASL_AUTH \
-I/usr/include/sasl \
-I/usr/include/openssl" \
-DUSE_CYRUS_SASL \
-DUSE_TLS \
AUXLIBS="-L/usr/lib64 -lsasl2 -lssl -lcrypto"
# make
# make install (업그레이드시 upgrade)


init script

# vi /etc/init.d/postfix
#!/bin/bash
#
# postfix      Postfix Mail Transfer Agent
#
# chkconfig: - 80 30
# description: Postfix is a Mail Transport Agent, which is the program \
#              that moves mail from one machine to another.
# processname: master
# pidfile: /var/spool/postfix/pid/master.pid
# config: /etc/postfix/main.cf
# config: /etc/postfix/master.cf
#
# Based on startup script from Simon J Mudd <sjmudd@pobox.com>

### BEGIN INIT INFO
# Provides: postfix MTA
# Required-Start: $local_fs $network $remote_fs
# Required-Stop: $local_fs $network $remote_fs
# Short-Description: start and stop postfix
# Description: Postfix is a Mail Transport Agent, which is the program that 
#              moves mail from one machine to another.
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

RETVAL=0
prog="postfix"

status master >/dev/null 2>&1
running=$?

conf_check() {
    [ -x /usr/sbin/postfix ] || exit 5
    [ -d /etc/postfix ] || exit 6
    [ -d /var/spool/postfix ] || exit 5
}

start() {
    # Check that networking is up.
    [ ${NETWORKING} = "no" ] && exit 1
    conf_check
    # Start daemons.
    echo -n $"Starting postfix: "
    /usr/bin/newaliases >/dev/null 2>&1
    /usr/sbin/postfix start 2>/dev/null 1>&2 && success || failure $"$prog start"
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/postfix
    echo
    return $RETVAL
}

stop() {
    conf_check
    # Stop daemons.
    echo -n $"Shutting down postfix: "
    /usr/sbin/postfix stop 2>/dev/null 1>&2 && success || failure $"$prog stop"
    RETVAL=$?
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/postfix
    echo
    return $RETVAL
}

reload() {
    conf_check
    echo -n $"Reloading postfix: "
    /usr/sbin/postfix reload 2>/dev/null 1>&2 && success || failure $"$prog reload"
    RETVAL=$?
    echo
    return $RETVAL
}

abort() {
    conf_check
    /usr/sbin/postfix abort 2>/dev/null 1>&2 && success || failure $"$prog abort"
    return $?
}

flush() {
    conf_check
    /usr/sbin/postfix flush 2>/dev/null 1>&2 && success || failure $"$prog flush"
    return $?
}

check() {
    conf_check
    /usr/sbin/postfix check 2>/dev/null 1>&2 && success || failure $"$prog check"
    return $?
}

# See how we were called.
case "$1" in
    start)
        [ $running -eq 0 ] && exit 0
        start
        ;;
    stop)
        [ $running -eq 0 ] || exit 0
        stop
        ;;
    restart|force-reload)
        stop
        start
        ;;
    reload)
        [ $running -eq 0 ] || exit 7
        reload
        ;;
    abort)
        abort
        ;;
    flush)
        flush
        ;;
    check)
        check
        ;;
    status)
        status master
        ;;
    condrestart)
        [ $running -eq 0 ] || exit 0
        stop
        start
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart|reload|abort|flush|check|status|condrestart}"
        exit 2
esac

exit $?

# chmod 755 /etc/init.d/postfix
# /etc/init.d/postfix start
2012/03/26 22:45 2012/03/26 22:45
http://blog.combel.net/trackback/23
# vi /etc/yum.repos.d/drizzle.repo
[drizzle]
name=drizzle
baseurl=http://rpm.drizzle.org/7-dev/redhat/$releasever/$basearch/
enabled=1
gpgcheck=0

[drizzle-src]
name=drizzle-src
baseurl=http://rpm.drizzle.org/7-dev/redhat/$releasever/source
enabled=1
gpgcheck=0

# yum -y install gcc44 gcc44-c++ boost-devel
# ldconfig


gearmand 다운로드 (현재버전 0.29)

# tar zxf gearmand-0.29.tar.gz
# cd gearmand-0.29
# export CC='gcc44'
# export CXX='g++44'
# ./configure --prefix=설치경로
# make
# make install


init script

# vi /etc/init.d/gearmand

#!/bin/sh

### BEGIN INIT INFO
# Provides: gearmand
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the gearmand job queue
# Description: starts gearmand using start-stop-daemon
# Installation: "update-rc.d gearmand defaults"
### END INIT INFO

DAEMON=/usr/local/sbin/gearmand
PIDFILE=/var/run/gearmand.pid
LOGFILE=/var/log/gearmand/gearmand.log
NAME=gearmand
DESC=gearmand

test -x $DAEMON || exit 0

#set -e

case "$1" in
    start)
        echo -n "Starting $DESC: "
        start-stop-daemon --pidfile $PIDFILE --exec $DAEMON --start -- run >> $LOGFILE&
        echo "$NAME."
        ;;
    stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --quiet --pidfile $PIFDILE --exec $DAEMON --stop
        echo "$NAME."
        ;;
    restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --quiet --pidfile $PIDFILE --exec $DAEMON --stop
        sleep 1
        start-stop-daemon --quiet --pidfile $PIDFILE --exec $DAEMON --start -- run >> $LOGFILE&
        echo "$NAME."
        ;;
    reload)
        echo -n "Reloading $DESC configuration: "
        start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE --exec $DAEMON
        echo "$NAME."
        ;;
    *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0


# chmod 755 /etc/init.d/gearmand
2012/03/26 22:24 2012/03/26 22:24
http://blog.combel.net/trackback/22
combel:
전체 (19)
Personal (4)
Development (8)
Infomation (4)
Funny (3)
«   2012/03   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
  1. 2012/04 (1)
  2. 2012/03 (4)
  3. 2012/02 (1)
  4. 2011/10 (3)
  5. 2011/05 (1)