Edit
Logについて

通常、Centosの標準では、syslogd というログ管理のシステムが入っており、このデーモンが各プログラムからログを集めては、/var/log 以下のフォルダにlogを記録していきます。

Edit
通常のログローテート

# vi /etc/logrotate.d/nginx
    /www/log/nginx/*log {
       daily
       rotate 10
       missingok
       notifempty
       compress
       sharedscripts
       postrotate
           [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
       endscript
    }

Edit
syslog-ng

syslog-ngとは、syslogの代わりに以下の機能を持ったログ管理デーモンです。

Edit
インストール

GLIBのインストールを行います。

# yum install glib2-devel

pkg-configをインストール

# wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz
# tar zxvf pkg-config-0.23.tar.gz
# cd pkg-config-0.23
# ./configure
# make
# make install

最初にeventLogをインストールします。

# wget http://www.balabit.com/downloads/files/syslog-ng/sources/stable/src/eventlog-0.2.7.tar.gz
# tar zxvf eventlog-0.2.7.tar.gz
# cd eventlog-0.2.7
# ./configure
# make
# make install

syslogdのインストールを行います。

# wget http://www.balabit.com/downloads/files/syslog-ng/sources/stable/src/syslog-ng-2.0.9.tar.gz
# tar zxvf syslog-ng-2.0.9.tar.gz
# cd syslog-ng-2.0.9
# ./configure --sysconfdir=/etc/syslog-ng
# make
# make install

Edit
Systemファイルの設定

# cd /usr/local/src/syslog-ng-2.0.9/contrib/rhel-packaging
# cp syslog-ng.init /etc/rc.d/init.d/syslog-ng
# cp syslog-ng.conf /etc
# chmod 755 /etc/init.d/syslog-ng
# chkconfig --add syslog-ng
# chkconfig syslog-ng on
# groupadd syslog
# useradd -g syslog -d /var/syslog -s /bin/false syslog

Edit
syslog-ng.conf の設定

# emacs /etc/syslog-ng.conf
# syslog-ng -s      <- config file のチェック

Edit
syslog の停止

# service syslogd stop
# service syslog-ng start
# chkconfig syslogd off
# chkconfig --del syslogd

Edit
ログインログの確認

サーバへのログインログを確認する簡単な方法は、lastか whoコマンドで確認することだ。(表示する内容は同じ)

# last
# who /vat/log/wtmp

このコマンドによって、直近のログイン履歴を確認することができる。また他のユーザーのログイン履歴をみる場合には、lastlogコマンドを利用する。

# lastlog

Edit
Logフォーマットの詳細(転記なので未確認)

パラメータ内容
%bそのリクエストで行われたデータの転送量(bytes)
%fリクエストされた仮想ディレクトリ+ファイル名
%{Foobar}e環境変数(Foobarで指定したもの)の内容
%hリクエストしたコンピュータの名称またはIPアドレス
%aリクエストしたコンピュータのIPアドレス
%{Foobar}iリクエストヘッダ(Foobarで指定したもの)の内容
%lリモートログ名(identdをクライアントがサポートしているとき)
%{Foobar}nほかのモジュールからのノート(Foobarで指定したもの)の内容
%{Foobar}oレスポンスヘッダ(Foobarで指定したもの)の内容
%pリクエストを受けたポート番号
%Pリクエストを受けたApacheのプロセス番号(PID)
%rリクエストの最初の行
%sリクエストに対するHTTPのステータスコード(下記参照)
%tリクエスト時間(day/month/%h:%T zone)
%{文字列フォーマット}tリクエスト時間(STRFTIME関数フォーマット参照)
%Tリクエスト処理時間(秒)
%uクライアント側のユーザー名
%UリクエストされたURLパス
%vサーバがリクエストを処理する正統なServerName
%VUseCanonicalNameの設定によるサーバ名

Edit
HTTPのステータスコード

カテゴリコード内容
情報100Continue
101Switching Protocols
成功200OK
201Created
202Accepted
203Non-Authoritative Information
204No Content
205Reset Content
206Partial Content
転送300Multiple Choices
301Moved Permanently
302Moved Temporarily
303See Other
304Not Modified
305Use Proxy
エラー(アクセスする側の問題)400Bad Request
401Unauthorized
402Payment Required
403Forbidden
404Not Found
405Method Not Allowed
406Not Acceptable
407Proxy Authentication Required
408Request Time-out
409Conflict
410Gone
411Length Required
412Precondition Failed
413Request Entity Too Large
414Request-URI Too Large
415Unsupported Media Type
エラー(アクセスされる側の問題)500Internal Server Error
501Not Implemented
502Bad Gateway
503Service Unavailable
504Gateway Time-out
505HTTP Version not supported

Edit
ulogd とは

Logデータをデータベースに更新するソフト。

Edit
インストール

# wget http://ftp.de.debian.org/debian/pool/main/u/ulogd/ulogd_1.24.orig.tar.gz
# tar zxvf ulogd_1.24.orig.tar.gz
# cd ulogd_1.24
# ./configure  --with-pgsql=/usr/local/pgsql --sysconfdir=/etc
# make
# make install
# cp ulogd.init /etc/rc.d/init.d/ulogd
# cp ulogd /usr/sbin/ulogd

Edit
設定ファイルの変更

# emacs /etc/ulogd.conf
  plugin="/usr/local/lib/ulogd/ulogd_LOCAL.so"        <- add
  #plugin="/usr/local/lib/ulogd/ulogd_LOGEMU.so"      <- comment
  plugin="/usr/local/lib/ulogd/ulogd_PGSQL.so"        <- enable
  [PGSQL]
  table="log"
  schema="public"
  pass="ulog"
  user="ulog"
  db="ulog"
  host="localhost"

Edit
起動

# chkconfig --add ulogd
# chkconfig ulogd on
# service ulogd start

Edit
他のサービスの登録

Edit
iptablesのulogd化

次の1行を追加。

# emacs /etc/sysconfig/iptables
  iptables -A INPUT -m limit --limit 1/s -j ULOG --ulog-nlgroup 1 --ulog-prefix 'INPUT'

Edit
参考ページ

ULOGD ProjectPage
iptables と ulogd
http://www.netfilter.org/
Netfilter iptables のオフィシャルサイト。Linux で iptables および Netfilter をセットアップしようとするすべての人にとって必見。

Edit
参考

syslog-ng.conf 内で利用できるマクロ
アクセスログの改ざんと検出方法

添付ファイル: filesyslog-ng.conf 698件 [詳細] fileedesk-syslog-ng.conf.txt 877件 [詳細]