Syslogの1つ:Linux syslogログシステムの詳細

9594 ワード

目次:
『syslogの1つ:Linux syslogログシステムの詳細』
『syslogの二:syslogプロトコル及びrsyslogサービス全解析』
『syslogの3:Windowsの下にあるsyslogログサーバの構築』
『Linux下dmesgコマンドによる障害処理とシステム情報収集の7つの使い方』
一、syslog概要
Syslogは工業標準のプロトコルであり、設備のログを記録するために使用することができる.UNIXシステム、ルータ、スイッチなどのネットワークデバイスにおいて、システムログ(System Log)は、システム内でいつ発生したサイズイベントを記録する.管理者はシステム記録を表示することで、いつでもシステム状況を把握することができます.UNIXのシステムログはsyslogdというプロセスでシステムに関するイベントレコードを記録し、アプリケーションの動作イベントを記録することもできます.適切な構成により、syslogプロトコルを実行するマシン間通信を実現し、これらのネットワーク動作ログを分析することで、デバイスとネットワークに関する状況を追跡把握することもできます.
機能:システム記録に記録する.
二、syslogサービスと構成
2.1、syslogパッケージのインストール
パッケージ名はrsyslog-5.8.10-10です.el6_6.x86_64
私はcentosシステムを使っています.サードパーティのyumソースが配置されています.yum installを直接インストールすればOKです.
インストール後rpm-qa|grep syslogでインストールされているかどうかを確認します
2.2、syslogログシステムはプログラムの詳細によって異なるログレベルを定義できる
2.3.Linux上のログシステムはsyslogとsyslog-ng(syslogログシステムのアップグレード版)に分けられる.
2.4、syslogサービス:
Syslogサービスプロセスはsyslogd(システム、非カーネル生成ログ)とklogd(カーネル生成ログを専門に記録する)の2つに分けられます.
kernel-->物理端末(/dev/console)-->/var/log/dmesg
ここで/var/log/dmesgファイルは、dmesgコマンドとcatを使用してファイルの内容を表示できます.
ログスクロール(ログカット):
スクロールとは、履歴情報に保存されたログのことで、例えば;Messagesファイルのログはますます大きくなり、ある時間待って、messagesファイルをmessagesと名前を変更します.1、システムはmessagesファイルを再作成するので、ログスクロールと呼ばれます.
          /sbin/init
/var/log/messages:システム標準エラーログ情報;非カーネル生成ブート情報、各サブシステム生成情報
/vat/log/maillog:メールシステムで生成されたログ情報
/vat/log/secure:セキュリティ関連log
システムに付属のログカットプログラムlogrotate
logrotateスクリプトプロファイル
[root@localhost cron.daily]# pwd
/etc/cron.daily
[root@localhost cron.daily]# vim logrotate

ログ情報プロファイルのスクロール
[root@localhost cron.daily]# pwd
/etc/cron.daily
[root@localhost cron.daily]# vim /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly                #      
# keep 4 weeks worth of backlogs
rotate 4              #   4       ,       
# create new (empty) log files after rotating old ones
create                #               
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d   #  /etc/logrotate.d     ,             
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp{
    monthly                #  ,    
    create 0664 root utmp  #     0664  
        minsize 1M         #  1M
    rotate 1               #      
}
/var/log/btmp{
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}
# system-specific logs may be also be configured here.
[root@localhost cron.daily]#

Syslogプロファイル/etc/rsyslog.conf
注意:centos 6のプロファイルは/etc/rsyslogです.conf,centos 5のプロファイルは/etc/sysyslogである.conf
2.5、プロファイルの定義形式はfacilityである.priority  action
facilityとは、どのfacilityソースから生成されたログを指します.priorityとは、レベルを持つログです.Actionとは、ログを生成する方法がファイルに保存されるか、それとも他に保存されるかを指します..
facilityは、ログのソースまたはデバイスまたは選択条件として理解できます.現在よく使用されているfacilityには、以下のものがあります.
auth#認証に関する
authpriv#権限、権限関連
cron#タスク計画に関する
daemon#デーモンプロセス関連
kern#カーネル関連
lpr#印刷関連
mail#メール関連
mark#タグ関連
ニュース関連
Security#セキュリティ関連auth類似
Syslog#syslog独自の
user#ユーザー関連
uucp#unix to unix cp関連
local 0からlocal 7#ユーザーカスタム使用
*#*はすべてのfacilityを表します
priority(log level)ログの優先度のレベルは、一般的に以下のいくつかのレベル(低から高)に分けられます.
注意:レベルが低いほど詳細
debug#プログラムまたはシステムのデバッグ情報
info#一般情報
notice#は正常な機能に影響しません.ユーザーに注意する重要なイベントが必要です.
warning/warn#はシステム機能に影響を与える可能性があり、ユーザーに重要なイベントを注意する必要があります.
Err/error#エラーメッセージ
crit#は比較的深刻です
alert#はすぐに処理しなければなりません
Emerg/canic#はシステムが使用できないことを招きます
*は、すべてのログ・レベルを示します.
none#は*とは反対に、何もないことを表しています.
Actionログ記録の場所
システム上の絶対パス#一般ファイル例:/var/log/XXX
|#パイプはパイプを通して他の命令に出す
端末#端末例:/dev/console
@host#リモートホスト@10.1.1.1
ユーザー#システムユーザー例:root
*#システムにログインしたすべてのユーザー、一般的なemergレベルのログはこのように定義されています.
書式列の定義:
                mail.info /var/log/mail.log#は、mailに関するレベルinfoおよびinfo以上のレベルの情報を/var/log/mailに記録することを示す.ロゴファイル
                [email protected]#はauthに関する、レベルinfoの情報を10.1.1.1ホストに記録することを意味し、10.1.1.1ホストからのログ情報を受信できることを前提とする.
                user.!=error#は、errorレベルの情報を含まないuser関連のレコードを表します.
                 user.!error#はuserを表すerror反対
                *.info#は、すべてのログ情報を記録するinfoレベルを表します.
                mail.*#すべてのmailに関連するすべてのレベルの情報を記録することを示す
                *.*#すべてのログ情報を記録するすべてのログ・レベルを示します.
                cron.info;mail.info#複数のログソースは「;」を使用できます.ぶんかつ
                cron,mail.info#とcron.info;mail.infoとは
                mail.*;mail.!=info#はmail関連のすべてのレベルの情報を記録するが、infoレベルの情報は含まれない.
サービスの再起動
#service rsyslog reload注:再起動しないがプロファイルを読むことができる;再起動は推奨されません
2.6、Linuxログサーバーの構築
       [root@localhost etc]# vim  /etc/sysconfig/rsyslog

プロファイルのSYSLOGDの変更OPTIONS=「-c 5」に「-rオプション」を追加すればよい
クライアントから送信されたデータをサーバが受信できるようにする
プロファイルは次のとおりです.
[root@localhost etc]# vim  /etc/sysconfig/rsyslog
# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS="-r -c 5"
~

syslogサービスの再起動
[root@localhost etc]# service rsyslog restart
         :                                       [  ]
         :-r option only supported incompatibility modes 0 to 2 - ignored
                                                           [  ]
[root@localhost etc]#

2.7、syslogクライアントの構築
syslogプロファイルで/etc/rsyslogを変更します.conf
[root@localhost etc]# vim /etc/rsyslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure
# Log all the mail messages in one place.
mail.*                                                  @192.168.1.66
# Log cron stuff
cron.*                                                  /var/log/cron
.
.
.
  

syslogクライアントの再起動
[root@localhost etc]# service rsyslog restart
         :                                       [  ]
         :-r option only supported incompatibility modes 0 to 2 - ignored
                                                           [  ]
[root@localhost etc]#