linuxリモートログrsyslogサービス側とクライアントインストール
rsyslogを使用する理由:
1.システムのクラッシュがシステムログを取得できないことを防止し、クラッシュの原因を共有し、rsyslogでログをリモートのログサーバに転送することができる
2.rsyslogログを使用すると、rsyslogを使用するとシステムのディスクIOを効果的に軽減できるので、システムの圧力を軽減できます.
3.rsyslogはtcp伝送を用いて非常に信頼性が高く、ログをフィルタリングし、有効なログを抽出することができ、rsyslogは軽量級のログソフトウェアであり、大量のログを書く場合、システム負荷は基本的に0.1以下である.
一、設置前の準備
1.rsyslog-5.6.2をダウンロードする
2.2台のマシン(linuxまたはunix)、1台のクライアント、1台のサービス端末を用意する
サービス側とクライアントのインストール手順:
#サービスファイルの生成
vi/etc/init.d/rsyslog
#サービスの開始
#サービス・エンドの構成
vi/etc/rsyslog.conf#ファイル開始に追加し、514ポートがクライアントからtcpでアクセスできるようにする
クライアントの構成
vi/etc/rsyslog.conf#ファイル開始に追加
テスト:
クライアントで実行
logger -p user.info "sdns_log 34334"
サービス側
/APplication/sdns/log/ディレクトリにログが生成されているかどうか
1.システムのクラッシュがシステムログを取得できないことを防止し、クラッシュの原因を共有し、rsyslogでログをリモートのログサーバに転送することができる
2.rsyslogログを使用すると、rsyslogを使用するとシステムのディスクIOを効果的に軽減できるので、システムの圧力を軽減できます.
3.rsyslogはtcp伝送を用いて非常に信頼性が高く、ログをフィルタリングし、有効なログを抽出することができ、rsyslogは軽量級のログソフトウェアであり、大量のログを書く場合、システム負荷は基本的に0.1以下である.
一、設置前の準備
1.rsyslog-5.6.2をダウンロードする
2.2台のマシン(linuxまたはunix)、1台のクライアント、1台のサービス端末を用意する
サービス側とクライアントのインストール手順:
- #
- ./configure --prefix=/Application/rsyslog
-
- #
- make
-
- #
- make install
- # lib
- echo "/Application/rsyslog/lib/rsyslog" >> /etc/ld.so.conf
- # lib
- ldconfig
-
- #
- cp /etc/syslog.conf /etc/rsyslog.conf
#サービスファイルの生成
vi/etc/init.d/rsyslog
- #!/bin/bash
- #
- # rsyslog Starts rsyslogd/rklogd.
- #
- #
- # chkconfig: - 12 88
- # description: Syslog is the facility by which many daemons use to log \
- # messages to various system log files. It is a good idea to always \
- # run rsyslog.
- ### BEGIN INIT INFO
- # Provides: $syslog
- # Required-Start: $local_fs $network $remote_fs
- # Required-Stop: $local_fs $network $remote_fs
- # Default-Stop: 0 1 2 3 4 5 6
- # Short-Description: Enhanced system logging and kernel message trapping daemons
- # Description: Rsyslog is an enhanced multi-threaded syslogd supporting,
- # among others, MySQL, syslog/tcp, RFC 3195, permitted
- # sender lists, filtering on any message part, and fine
- # grain output format control.
- ### END INIT INFO
-
- # Source function library.
- basedir=/Application/rsyslog
- moddir=/Application/rsyslog/lib/rsyslog/
- rsyslogdfile=$basedir/sbin/rsyslogd
- . /etc/init.d/functions
-
- RETVAL=0
-
- start() {
- [ -x $rsyslogdfile ] || exit 5
-
- # Do not start rsyslog when sysklogd is running
- if [ -e /var/run/syslogd.pid ] ; then
- echo $"Shut down sysklogd before you run rsyslog";
- exit 1;
- fi
-
- # Source config
- if [ -f /etc/sysconfig/rsyslog ] ; then
- . /etc/sysconfig/rsyslog
- else
- SYSLOGD_OPTIONS="-M $moddir"
- fi
-
- if [ -z "$SYSLOG_UMASK" ] ; then
- SYSLOG_UMASK=077;
- fi
- umask $SYSLOG_UMASK
-
- echo -n $"Starting system logger: "
- daemon $rsyslogdfile $SYSLOGD_OPTIONS
- RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/rsyslog
- return $RETVAL
- }
- stop() {
- echo -n $"Shutting down system logger: "
- killproc $rsyslogdfile
- RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/rsyslog
- return $RETVAL
- }
- reload() {
- RETVAL=1
- syslog=`cat /var/run/rsyslogd.pid 2>/dev/null`
- echo -n "Reloading system logger..."
- if [ -n "${syslog}" ] && [ -e /proc/"${syslog}" ]; then
- kill -HUP "$syslog";
- RETVAL=$?
- fi
- if [ $RETVAL -ne 0 ]; then
- failure
- else
- success
- fi
- echo
- return $RETVAL
- }
- rhstatus() {
- status rsyslogd
- }
- restart() {
- stop
- start
- }
-
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- restart
- ;;
- reload|force-reload)
- reload
- ;;
- status)
- rhstatus
- ;;
- condrestart)
- [ -f /var/lock/subsys/rsyslog ] && restart || :
- ;;
- *)
- echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart}"
- exit 2
- esac
-
- exit $?
#サービスの開始
- #
- chmod +x /etc/init.d/rsyslog
- # syslog
- service syslog stop
- service rsyslog start
#サービス・エンドの構成
vi/etc/rsyslog.conf#ファイル開始に追加し、514ポートがクライアントからtcpでアクセスできるようにする
- #
- $FileOwner apache
- # tcp
- $ModLoad imtcp # needs to be done just once
- #tcp 500
- $InputTCPMaxSessions 500
- #tcp
- $InputTCPServerRun 514
-
- #
- $template logformat,"%TIMESTAMP:::date-mysql% %FROMHOST-IP%%msg%
"
- # ,
- $template DynFile,"/Application/sdns/log/%$year%%$month%%$day%.log"
- # sdns_log DynFile
- :rawmsg, contains, "sdns_log" ?DynFile;logformat
- # sdns_log
- :rawmsg, contains, "sdns_log" ~
クライアントの構成
vi/etc/rsyslog.conf#ファイル開始に追加
- # sdns_log tcp 192.168.1.2 @@ tcp @ udp
- :rawmsg, contains, "sdns_log" @@192.168.1.2
- # sdns_log , /var/log/message
- :rawmsg, contains, "sdns_log" ~
テスト:
クライアントで実行
logger -p user.info "sdns_log 34334"
サービス側
/APplication/sdns/log/ディレクトリにログが生成されているかどうか