システムログとloganalyzer
メンテナンス担当者として、システムログを熟知することは基本的な仕事です.ここではcentos 6のシステムログrsyslogおよびloganalyzerツールについて説明します.
概要
システムログ:履歴イベントを記録します.通常、発生したイベントを時間順に記録します.linuxのログはsyslogd(システムプロセス関連ログ)とklogd(カーネルイベントログ)に分けられます.
centos5:syslog
欠点:パラレルデータストレージができなくて、効率が低くて、専用データ管理ファイルに入れることができない
centos6:rsyslog
メリット:
1、マルチスレッドをサポートする
2、tcp、tls、relpに基づいてリモートログサーバーに配置し、初期のsyslogは簡単なテキスト転送モードのみをサポートしてログ送信を実現し、安全ではない
3、mysql、pgsql、oracleなど多くのデータベースにログを置くことをサポートする
4、強力なフィルタで、システム情報の任意の部分をフィルタすることができる
5、完全な出力フォーマット構成(カスタムフォーマット)をサポートし、特に企業レベルのニーズに適合する
facility:施設は、機能やプログラムからログを分類し、syslogのプロセスではなく、エージェントが受け入れて記録する専門的なツールによってログを記録します.
auth:認証関連
authpriv
cron
daemon:プロセス関連
lpr:プリンタ関連
mail:メール関連
kern:カーネル関連
mark:ファイアウォールタグ関連
ニュース:ニュースグループ
安全性
Syslog:システムログ
user:ユーザー関連
uucp:unix to unix copy
local 0 through local 7:8カスタム施設
指定された施設ではワイルドカードを使用できます.
*:すべてのデバイス
f1;f2;f 3:リスト
!:に逆らう
ログ・レベル:
debug
notice
warn|warning(このレベル以上は重視すべき)
error
crit(青色警戒、これ以上処理しないと切れます)
Alert(オレンジ警戒)
Emerg|panic(赤色警戒)
使用可能なワイルドカード:
*:すべてのレベル
none:記録しない
target(保存先ファイル):
ファイル:たとえば/var/log/message
ユーザー:*現在のシステムにログインしているすべてのユーザー
ログサーバ:@server_ip
配管:|command
イベント形式:
タイムホストプロセスイベント自体
プロファイル:/etc/rsyslog.confまたは/etc/rsyslog.d/*
書式:facility.priority target
例:
mail.info/var/log/maillog info以上
mail.=info/var/log/maillog明確指定レベル
mail.!info指定レベル以外
*.infoのすべてのfacilityのinfoおよび以上のレベル
mail.* mailのすべてのレベル
mail,news.info mailとnewsのinfo以上のレベル
mail.notice;news.infoレベルが異なる場合は、使用します.ぶんかつ
*.info | command
ログは一般的に同期され、ログが生成されるだけでメモリからディスクに書き込まれ、非同期を使用するとtargetの前に-
例1:ログサーバ
サーバ側:
クライアント:
例2:mysqlにログを入れる
この機能を実現するにはモジュールで実現し、駆動接続で実現する必要がある.
クライアントインストールtree:
クライアント・ログの表示:
サーバー・ログの表示:
サーバmysqlの表示:
例3:loganalyzerで示す
このソフトウェアはlampプラットフォームに依存します
インストールlamp:
httpを開始:
テストページを編集するには、次の手順に従います.
Webへのアクセス:
テストページの削除
解凍loganalyzer:
logディレクトリの作成
ファイルのコピー
アクセス:
赤いボックスは、前に記入したデータベース名、テーブル名、ユーザー名、パスワードです.
概要
システムログ:履歴イベントを記録します.通常、発生したイベントを時間順に記録します.linuxのログはsyslogd(システムプロセス関連ログ)とklogd(カーネルイベントログ)に分けられます.
centos5:syslog
欠点:パラレルデータストレージができなくて、効率が低くて、専用データ管理ファイルに入れることができない
centos6:rsyslog
メリット:
1、マルチスレッドをサポートする
2、tcp、tls、relpに基づいてリモートログサーバーに配置し、初期のsyslogは簡単なテキスト転送モードのみをサポートしてログ送信を実現し、安全ではない
3、mysql、pgsql、oracleなど多くのデータベースにログを置くことをサポートする
4、強力なフィルタで、システム情報の任意の部分をフィルタすることができる
5、完全な出力フォーマット構成(カスタムフォーマット)をサポートし、特に企業レベルのニーズに適合する
facility:施設は、機能やプログラムからログを分類し、syslogのプロセスではなく、エージェントが受け入れて記録する専門的なツールによってログを記録します.
auth:認証関連
authpriv
cron
daemon:プロセス関連
lpr:プリンタ関連
mail:メール関連
kern:カーネル関連
mark:ファイアウォールタグ関連
ニュース:ニュースグループ
安全性
Syslog:システムログ
user:ユーザー関連
uucp:unix to unix copy
local 0 through local 7:8カスタム施設
指定された施設ではワイルドカードを使用できます.
*:すべてのデバイス
f1;f2;f 3:リスト
!:に逆らう
ログ・レベル:
debug
notice
warn|warning(このレベル以上は重視すべき)
error
crit(青色警戒、これ以上処理しないと切れます)
Alert(オレンジ警戒)
Emerg|panic(赤色警戒)
使用可能なワイルドカード:
*:すべてのレベル
none:記録しない
target(保存先ファイル):
ファイル:たとえば/var/log/message
ユーザー:*現在のシステムにログインしているすべてのユーザー
ログサーバ:@server_ip
配管:|command
イベント形式:
タイムホストプロセスイベント自体
プロファイル:/etc/rsyslog.confまたは/etc/rsyslog.d/*
:
[root@stu etc]# grep '###' /etc/rsyslog.conf
#### MODULES ####
#### GLOBAL DIRECTIVES ####
#### RULES ####
# ### begin forwarding rule ###
# ### end of the forwarding rule ###
書式:facility.priority target
例:
mail.info/var/log/maillog info以上
mail.=info/var/log/maillog明確指定レベル
mail.!info指定レベル以外
*.infoのすべてのfacilityのinfoおよび以上のレベル
mail.* mailのすべてのレベル
mail,news.info mailとnewsのinfo以上のレベル
mail.notice;news.infoレベルが異なる場合は、使用します.ぶんかつ
*.info | command
ログは一般的に同期され、ログが生成されるだけでメモリからディスクに書き込まれ、非同期を使用するとtargetの前に-
例1:ログサーバ
サーバ側:
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
[root@stu etc]# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
:
[root@stu etc]# netstat -tnulp | grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1398/rsyslogd
tcp 0 0 :::514 :::* LISTEN 1398/rsyslogd
udp 0 0 0.0.0.0:514 0.0.0.0:* 1398/rsyslogd
udp 0 0 :::514 :::* 1398/rsyslogd
クライアント:
:
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none @192.168.0.20
:
[root@stu ~]# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
zsh:
[root@stu ~]# yum -y install zsh
:
[root@stu log]# tail -l /var/log/messages
Mar 13 10:00:49 stu ntpd[1211]: 0.0.0.0 c016 06 restart
Mar 13 10:00:49 stu ntpd[1211]: 0.0.0.0 c012 02 freq_set kernel 11.318 PPM
Mar 13 10:00:50 stu ntpd[1211]: 0.0.0.0 c615 05 clock_sync
Mar 13 10:09:58 stu kernel: Kernel logging (proc) stopped.
Mar 13 10:09:58 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1048" x-info="http://www.rsyslog.com"] exiting on signal 15.
Mar 13 10:09:58 stu kernel: imklog 5.8.10, log source = /proc/kmsg started.
Mar 13 10:09:58 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1398" x-info="http://www.rsyslog.com"] start
Mar 13 10:12:11 stu kernel: imklog 5.8.10, log source = /proc/kmsg started.
Mar 13 10:12:11 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1336" x-info="http://www.rsyslog.com"] start
Mar 13 10:13:45 stu yum[1344]: Installed: zsh-4.3.11-4.el6.centos.x86_64
例2:mysqlにログを入れる
この機能を実現するにはモジュールで実現し、駆動接続で実現する必要がある.
mysql-server,rsyslog-mysql:
[root@stu log]# yum -y install mysql-server rsyslog-mysql
:
[root@stu log]# rpm -ql rsyslog-mysql
/lib64/rsyslog/ommysql.so #
/usr/share/doc/rsyslog-mysql-5.8.10
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql #
mysql
[root@stu ~]# service mysqld start
/etc/rsyslog.conf
:
#log event to mysql
$ModLoad ommysql
roles :
*.info :ommysql:127.0.0.1,Syslog,rsysloguser,rsyslogpass
( ):
[root@stu ~]# mysql SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog |
| mysql |
| test |
+--------------------+
4 rows in set (0.05 sec)
Syslog:
mysql> USE Syslog;
:
mysql> SHOW TABLES;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.01 sec)
、
mysql> GRANT ALL ON Syslog.* TO [email protected] IDENTIFIED BY 'rsyslogpass';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL ON Syslog.* TO rsysloguser@localhost IDENTIFIED BY 'rsyslogpass';
Query OK, 0 rows affected (0.00 sec)
:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
rsyslog:
[root@stu ~]# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
クライアントインストールtree:
[root@stu log]# yum -y install tree
クライアント・ログの表示:
[root@stu log]# tail -l /var/log/messages
サーバー・ログの表示:
[root@stu ~]# tail -l /var/log/messages
Mar 13 10:24:15 stu kernel: Kernel logging (proc) stopped.
Mar 13 10:24:15 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1398" x-info="http://www.rsyslog.com"] exiting on signal 15.
Mar 13 10:24:16 stu kernel: imklog 5.8.10, log source = /proc/kmsg started.
Mar 13 10:24:16 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1600" x-info="http://www.rsyslog.com"] start
Mar 13 10:25:54 stu yum[1621]: Updated: mysql-libs-5.1.73-5.el6_6.x86_64
Mar 13 10:25:54 stu yum[1621]: Installed: mysql-5.1.73-5.el6_6.x86_64
Mar 13 10:31:35 stu ntpd[1177]: 0.0.0.0 0617 07 panic_stop +3285 s; set clock manually within 1000 s.
Mar 13 10:32:18 stu ntpd[1211]: 0.0.0.0 0617 07 panic_stop +3285 s; set clock manually within 1000 s.
Mar 13 10:34:31 stu kernel: Kernel logging (proc) stopped.
Mar 13 10:34:31 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1600" x-info="http://www.rsyslog.com"] exiting on signal 15.
サーバmysqlの表示:
mysql> USE Syslog;
mysql> SELECT * FROM SystemEvents;
+----+------------+---------------------+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+
| ID | CustomerID | ReceivedAt | DeviceReportedTime | Facility | Priority | FromHost | Message | NTSeverity | Importance | EventSource | EventUser | EventCategory | EventID | EventBinaryData | MaxAvailable | CurrUsage | MinUsage | MaxUsage | InfoUnitID | SysLogTag | EventLogType | GenericFileName | SystemID |
+----+------------+---------------------+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+
| 1 | NULL | 2016-03-13 11:46:42 | 2016-03-13 11:46:42 | 0 | 6 | stu | Kernel logging (proc) stopped. | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | kernel: | NULL | NULL | NULL |
| 2 | NULL | 2016-03-13 11:46:42 | 2016-03-13 11:46:42 | 5 | 6 | stu | [origin software="rsyslogd" swVersion="5.8.10" x-pid="1673" x-info="http://www.rsyslog.com"] exiting on signal 15. | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | rsyslogd: | NULL | NULL | NULL |
| 3 | NULL | 2016-03-13 11:46:43 | 2016-03-13 11:46:43 | 0 | 6 | stu | imklog 5.8.10, log source = /proc/kmsg started. | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | kernel: | NULL | NULL | NULL |
| 4 | NULL | 2016-03-13 11:46:43 | 2016-03-13 11:46:43 | 5 | 6 | stu | [origin software="rsyslogd" swVersion="5.8.10" x-pid="2794" x-info="http://www.rsyslog.com"] start | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | rsyslogd: | NULL | NULL | NULL |
| 5 | NULL | 2016-03-13 11:47:02 | 2016-03-13 11:47:02 | 5 | 6 | stu | [origin software="rsyslogd" swVersion="5.8.10" x-pid="1336" x-info="http://www.rsyslog.com"] rsyslogd was HUPed | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | rsyslogd: | NULL | NULL | NULL |
| 6 | NULL | 2016-03-13 11:48:40 | 2016-03-13 11:48:40 | 1 | 6 | stu | Installed: tree-1.5.3-3.el6.x86_64 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | yum[1620]: | NULL | NULL | NULL |
+----+------------+---------------------+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+
6 rows in set (0.00 sec)
例3:loganalyzerで示す
このソフトウェアはlampプラットフォームに依存します
インストールlamp:
[root@stu ~]# yum –y install httpd php php-mysql php-gd mysql-server
httpを開始:
[root@stu ~]# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.0.20 for ServerName
[ OK ]
テストページを編集するには、次の手順に従います.
vim /var/www/index.php
Webへのアクセス:
テストページの削除
解凍loganalyzer:
[root@stu ~]# tar xf loganalyzer-3.6.5.tar.gz
logディレクトリの作成
[root@stu ~]# mkdir /var/www/html/log
ファイルのコピー
[root@stu log]# cp /root/loganalyzer-3.6.5/src/* .
[root@stu log]# cp /root/loganalyzer-3.6.5/contrib/* .
[root@stu log]# chmod +x ./configure.sh
[root@stu log]# chmod +x ./secure.sh
[root@stu log]# ./configure.sh
[root@stu log]# ./secure.sh
[root@stu log]# chmod 666 config.php
[root@stu log]# chown -R apache.apache ./*
アクセス:
赤いボックスは、前に記入したデータベース名、テーブル名、ユーザー名、パスワードです.