Linux日誌系統

    日誌對於系統的安全來說非常重要,它記錄了系統每天發生的各種各樣的事情,用戶可以通過它來檢查錯誤發生的原因,或者尋找受到***時***者留下的痕跡。日誌主要的功能是審計和監測。它還可以實時地監測系統狀態,監測和追蹤侵入者。

那麼下面就讓我們來了解一下日誌系統吧。

    

syslog

 日誌系統 (早期的日誌系統,只支持文本文件記錄)

syslogd: 系統進程的相關日誌

klogd: 內核事件相關的日誌

 

Rsyslog

今天我們主要講解的rsyslog的內容,它相比於syslog來說功能要強大的多:

支持多線程

支持TCP,SSL,TLS,RELP

能夠存放在MySQL, PGSQL, Oracle等多種關係型數據中

可實現過濾系統信息中的任意部分

可以自定義輸出格式

適用於企業級別日誌記錄需求

 

對於rsyslog日誌系統,其配置文件在/etc/rsyslog.conf中。

該配置文件中定義的格式爲

facility.priority   target 

分別對三者進行解釋:

   facility: 設施,從功能或程序上對日誌進行分類,並由專門的工具負責記錄其日誌

auth        #認證相關

authpriv    #認證授權相關

cron        #週期性任務記錄

daemon     # 守護進程相關

kern       #內核進程相關

lpr        #打印相關

mail       #郵件相關

mark      #防火牆標記相關

news      #新聞相關

security    #安全相關

syslog     #自己記錄日誌相關

user       #用戶相關

uucp

local0 through local7: 8 customed facility

 

指定設施時可以使用通配符

*: 所有

f1,f2,f3,...: 列表

!: 取反


priority: 級別

debug           # 程序或系統的調試信息 

info            # 一般信息

notice          # 不影響正常功能,需要注意的消息 

warning,warn   # 可能影響系統功能,需要提醒用戶的重要事件 

err,error        # 錯誤信息 

crit            # 比較嚴重的 

alert           # 必須馬上處理的 

emerg/panic     # 會導致系統不可用的 

 

通配符:

*: 所有級別

none: 沒有任何級別

 

Target: 

文件路徑:例如/var/log/messages

用戶: *

日誌服務器:@SERVER_IP

管道:|COMMAND

 

配置文件中的一些符號的用法及意義:下面是一些例子

mail.info /var/log/maillog

# 比指定級別更高的所有級別,包括指定的級別本身;

mail.=info   /var/log/maillog

# 明確指定級別;

mail.!info  *

# 除了指定級別

*.info        | COMMAND

# 所有facilityinfo級別

mail.*: 

# mail的所有級別

mail,news.info 

# mail和new的info級別

 


日誌信息的格式:

時間 主機 進程(PID):事件

wKioL1P0i1fyU03sAAEVn8OcWV4981.jpg

 

啓用日誌服務器的功能:

配置文件中劃分爲3部分:

#### MODULES ####  日誌的模塊
#### GLOBAL DIRECTIVES ####定義全局日誌格式的指令
#### RULES ####

首先在日誌模塊中啓用一下幾項

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
 
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514


rsyslog支持將日誌存儲於MySQL服務器中:

1)安裝配置好mysql數據庫服務;

[root@localhost ~]# yum install mysql-server

2)安裝rsyslog-mysql包;

[root@localhost ~]# yum install rsyslog-mysql

3)創建rsyslog依賴的數據庫:

[root@localhost ~]# mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

4)配置rsyslog啓用模塊

#### Modules #####啓用模塊:

添加以下模塊

$ModLoad ommysql

 wKioL1P0gayjT5VzAABACl_Ehqc407.jpg

####rules####段中定義記錄日誌信息於數據庫中

facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWORD

*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,sysloguser,syslogpass 

5)數據庫授權

[root@localhost ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.71 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases; 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Syslog             |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)
mysql> grant all on Syslog.* to [email protected] identified by 'syslogpass'
    -> ;            注意:授權的時候用戶密碼以及數據庫名稱都要與日誌配置文件中一致。
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;    刷新授權
Query OK, 0 rows affected (0.00 sec)

好了這樣就配置好了,我們可以測試下;

安裝一個PHP,看看會不會有日誌信息:

[root@localhost ~]# yum install php

登進mysql之後進入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 | 2014-08-09 05:48:51 | 2014-08-09 05:48:51 |        0 |        6 | localhost | 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 |
|  2 |       NULL | 2014-08-09 05:48:51 | 2014-08-09 05:48:51 |        5 |        6 | localhost |  [origin software="rsyslogd" swVersion="5.8.10" x-pid="27393" x-info="http://www.rsyslog.com"] start |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | rsyslogd:   | NULL         | NULL            |     NULL |
|  3 |       NULL | 2014-08-09 05:49:16 | 2014-08-09 05:49:16 |        1 |        6 | localhost |  Installed: php-common-5.3.3-26.el6.x86_64                                                           |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | yum[27402]: | NULL         | NULL            |     NULL |
|  4 |       NULL | 2014-08-09 05:49:16 | 2014-08-09 05:49:16 |        1 |        6 | localhost |  Installed: php-cli-5.3.3-26.el6.x86_64                                                              |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | yum[27402]: | NULL         | NULL            |     NULL |
|  5 |       NULL | 2014-08-09 05:49:17 | 2014-08-09 05:49:17 |        1 |        6 | localhost |  Installed: php-5.3.3-26.el6.x86_64                                                                  |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | yum[27402]: | NULL         | NULL            |     NULL |
+----+------------+---------------------+---------------------+----------+----------+-----------+------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+-------------+--------------+-----------------+----------+
5 rows in set (0.00 sec)

發現裏面以及記錄了。這樣就成功了。

 

LogAnalyzer:通過webGUI展示日誌信息

LogAnalyzer是分析系統日誌,並用web界面展示的工具,下面我們就來安裝一下。

 

# yum -y install httpd php php-mysql php-gd 
# tar xf loganalyzer-3.6.5.tar.gz        注意這裏首先需要將包下載過來
# mkdir /var/www/html/loganalyzer
# cp loganalyzer-3.6.5/src/* /var/www/html/loganalyzer/
# cp loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer/
# cd /var/www/html/loganalyzer/
# chmod +x configure.sh secure.sh
# ./configure.sh
# ./secure.sh
# chmod 666 config.php
# chown -R apache.apache ./*


注意:該應用是基於LAMP的,所有相應在配置文件中需要修改的內容我這裏沒有給出。

如果一切正常的話那麼就可以打開網頁了。

wKiom1P0l-OBwsfDAAG7LPZ3txc423.jpg然後按照提示一步一步操作即可。

需要注意的是:在配置數據庫的時候,每一項都必須與上面創建的一模一樣,包括數據庫名以及賬號密碼,必須嚴格區分大小寫。

wKioL1P0njXChHqpAAasfLW4CuU469.jpg

這是最終顯示的界面。一旦你看到了這個就表明已經成功安裝了。

好了本節的內容就到這裏,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章