rsyslog日志服務

一、知識整理:

1、日志服務rsyslogd新特點:

    多線程;

    基于SSL/TLS/UDP/TCP/RELP網絡協議傳輸日志信息;

    強大的過濾器,實現過濾日志信息中任何部分的內容;

    自定義的輸出格式;

    日志消息的及時分析框架

    存儲日志信息與MySQL、PGSQL、OracleRDBMS;

    配置文件中可以寫簡單的邏輯判斷

    syslog配置文件相兼容

2、常見日志文件及作用

    /var/log/cron 記錄了系統定時任務相關的日志;

    /var/log/cups 記錄打印信息的日志;

    /var/log/dmesg 記錄了系統在開機時內核自檢的信息,也可以使用dmesg命令直接查看內核自檢信息。

    /var/log/btmp 記錄錯誤登錄的日志,這個文件是二進制文件,不能直接vi查看,而要使用lastb命令查看;

    /var/log/lastlog 記錄系統中所有用戶最后一次的登錄時間的日志。這個文件也是二進制文件,不能直接vi,而要使用lastlog命令查看。

    /var/log/mailog 記錄郵件信息;

    /var/log/message 記錄系統重要信息的日志,記錄Linux系統的絕大多數重要信息,如果系統出現問題,首先要檢查的就是應該是這個日志文件;

    /var/log/secure 記錄驗證和授權方面的信息,只要涉及賬戶和密碼的程序都會記錄。比如說系統的登錄,ssh的登錄,su切換用戶,sudo授權,甚至添加用戶和修改用戶密碼;

    /var/log/wtmp 永久記錄所有用戶的登錄、注銷信息,同時記錄系統的啟動、重啟、關機事件。同樣這個文件也是一個二進制文件不能直接vi而需要使用last命令來查看;

    /var/run/utmp 記錄當前已經登錄的用戶的信息。這個文件會隨著用戶的登錄和注銷而不斷變化,只記錄當前登錄用戶的信息,同樣這個文件不能直接vi,要使用w,who,users等命令;

    除了系統默認的日志外,rpm包安裝的系統服務也默認把日志記錄在/var/log/下(源碼包在指定目錄下)。不過這些日志不是系統記錄和管理的,而是各個服務使用自己的日志管理文檔來記錄。

3、基本格式:日志基本格式

日志產生時間;發生事件的服務器主機名;發生事件的服務名或程序名;具體信息。

日志配置文件/etc/rsyslog.conf/etc/rsyslog.d/* ,配置文件格式簡介:

服務名稱[連接符號]日志等級      日志記錄位置

(1)服務名稱(facility):auth 安全和認證相關信息(不推薦使用authpriv替代)

    authpriv 安全和認證信息(私有的)

    cron 系統定時任務crontat產生的日志

    daemon 和各個守護進程相關的日志

    ftp    ftp守護進程產生的日志

    kern 內核產生的日志(不是用戶進程產生的)

    local0-7 為本地使用預留的服務

    lpr   打印產生的日志

    mail     郵件日志信息

    syslog syslogd服務產生的日志信息,雖然服務名稱改為rsyslogd,但是很多配置都還是沿用了syslogd的,這里并沒有修改服務名

    user 用戶等級類別的日志信息

    uucp uucp子系統的日志信息,uucp是早期Linux系統進行數據傳遞的協議,后來也常用在新聞組服務中

(2)連接符:. 只要比指定等級高的都記錄下來

    .= 只記錄等于指定等級的日志

    .! 代表不等于指定等級的日志都記錄

(3)日志等級(priority):debug  一般的調試信息說明

    info 基本的通知信息

    notice  普通信息,但是有一定的重要性

    warning 警告信息,但是還不會影響到服務或系統的運行

    err 錯誤信息,已經可以影響到服務或系統的運行了

    crit 臨界狀況信息

    alert 警告狀態信息,必須采取行動

    emerg 疼痛等級信息,系統已經無法使用

(4)可使用的日志記錄位置

    /var/log/

    系統設備文件如/dev/lp0

    轉發給遠程主機,如@192.168.0.1.210:514

    用戶名,如root

    模塊: 如:ommysql:

4、日志輪替

日志文件的命名規則:

如果配置文件中擁有dateext”參數,那么日志會用日期來作為日志文件的后綴,例如secure-20150202.這樣的話日志文件名不會重疊,所有也就不需要日志文件的改名,只需要保存指定的日志個數,刪除多余的日志文件即可。

日志輪替(logrotate)配置文件/etc/logrotate.conf

daily 日志輪替周期是每天

weekly 每周

monthly 每月

rotate #   保留日志的文件的個數,0指沒有備份

compress  日志輪替時,舊的日志進行壓縮

creat  MODE  OWNER  GROUP

 建立新日志,同時指定新日志的權限與所有者和所屬組;如creat 0600 root utmp

mail address 當日志輪替時,輸出內容通過郵件發送到指定的郵件地址

missingok 如果日志不存在,則忽略該日志的警告信息

notifempty 如果日志為空文件,則不進行日志輪替

minsize 大小  日志輪替的最小值,日志達到最小值才會輪替

size 大小

dateext 使用日期作為日志輪替文件的后綴 如secure-20155555

注意:rpm包安裝的程序默認輪替,源碼包安裝的需要自己修改配置或添加配置、指定日志目錄等:

    vim /etc/logrotate.conf 打開后添加

    /usr/local/apache2/logs/access_logerror_log或其他日志) {

    daily

    create

    rotate 30

    }  (也可以在定義虛擬主機時定義)

日志由/sbin/init負責記錄。

 

二、命令詳解:

1、logrotate命令 [] 配置文件名

如果此命令沒有選項,則會按照配置文件中的條件進行日志輪替

-v 顯示日志輪替過程

-f 強制進行日志輪替

2、logger命令:

logger -a shell command interface to the syslog(3) system log module

logger [ options] [message]

logger -p local2.notice  "how are you"

 

三、課后練習:

LogAnalyzer 是一款syslog日志和其他網絡事件數據的Web前端。它提供了對日志的簡單瀏覽、搜索、基本分析和一些圖表報告的功能。數據可以從數據庫或一般的 syslog文本文件中獲取,所以LogAnalyzer不需要改變現有的記錄架構?;诋斍暗娜罩緮祿?,它可以處理syslog日志消 息,Windows事件日志記錄,支持故障排除,使用戶能夠快速查找日志數據中看出問題的解決方案。

LogAnalyzer 獲取客戶端日志會有兩種保存模式,一種是直接讀取客戶端/var/log/目錄下的日志并保存到服務端該目錄下,一種是讀取后保存到日志服務器數據庫中,推薦使用后者。LogAnalyzer 采用php開發,所以日志服務器需要php的運行環境,本文采用LAMP。

步驟如下:

1)準備mysql,更改mysql配置文件my.cnf,添加如下:

    skip_name_resolve=ON

    innodb_file_per_table=1

(2)安裝rsyslog連接至mysql server的驅動模塊;

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

3)在mysql-server準備rsyslog專用的用戶賬號,授權:

MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'syslog'@'localhost' IDENTIFIED BY 'magedu';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'syslog'@'127.0.0.1' IDENTIFIED BY 'magedu';
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

生成所需要的數據庫和表;使用重定向讀入模塊的命令:

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

(4)啟用模塊:

[root@localhost ~]# vim /etc/rsyslog.conf

MODULES一欄中添加:

    $ModLoad ommysql

    更改*.*日志生成的位置:添加

    *.*    :ommysql:127.0.0.1,Syslog,syslog,magedu

5)重啟rsyslog服務

6)檢測:啟動mysql

[root@localhost ~]# logger -p local3.notice "how are youab"
[root@localhost ~]# logger -p local2.notice "how are youa"
MariaDB [Syslog]> SELECT * FROM SystemEvents\G

*************************** 11. row ***************************

                ID: 11

        CustomerID: NULL

        ReceivedAt: 2016-10-18 17:15:06

DeviceReportedTime: 2016-10-18 17:15:06

          Facility: 18

          Priority: 5

          FromHost: localhost

           Message: how are youa

        NTSeverity: NULL

        Importance: NULL

       EventSource: NULL

         EventUser: NULL

     EventCategory: NULL

           EventID: NULL

   EventBinaryData: NULL

      MaxAvailable: NULL

         CurrUsage: NULL

          MinUsage: NULL

          MaxUsage: NULL

        InfoUnitID: 1

         SysLogTag: root:

      EventLogType: NULL

   GenericFileName: NULL

          SystemID: NULL

11 rows in set (0.00 sec)

7)配置loganalyzer

    首先準備amp環境;安裝httpdphp-gd(支持畫圖形)、php、php-server

    然后安裝loganalyzer:

    cp -a src /html/

    ln -sv

    touch config.php

    chmod 666 config.php

    使用瀏覽器進行配置

    Table type monitorware

    chmod 644(安裝完成后)

以上步驟也可以將原目錄contrib中的兩個腳本分別在安裝前后執行。

安裝步驟如下:

blob.png

此處注意:安裝過程中出現了這個報錯,找了各種日志也沒發現原因,最后發現是需要關閉selinux。

blob.png

blob.png

blob.png

blob.png


blob.png

安裝完成。

原創文章,作者:SilencePavilion,如若轉載,請注明出處:http://www.www58058.com/53730

(0)
SilencePavilionSilencePavilion
上一篇 2016-10-24 07:39
下一篇 2016-10-24 09:08

相關推薦

  • week4

    一,復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒 有任何訪問權限; cp -r /etc/skel/ /home/tuser1 chmod -R go= /home/tuser1/ 二,編輯/etc/group文件,添加組hado…

    Linux干貨 2016-11-18
  • nginx

    http http協議:web服務器(類似于httpd)、http reverse proxy(類似于httpd)、imap/pop3 reverse proxy NGINX is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/P…

    Linux干貨 2017-06-25
  • Linux 文本處理,文本工具,查看,分析,統計文本文件,grep,正則表達式

    文本處理 各種文本工具,查看,分析,統計文本文件 grep 正則表達式 擴展正則表達式 sed cat -n f1 加行號(空格行都計算) cat -b f1 加行號(只計算有字符的行) cat -ns f1 加行號(壓縮空行) cat -v f1 能看windows文件的M`符號 cat -T f1 能夠顯示里面的tab空位,顯示為^I cat -A f1…

    Linux干貨 2016-08-07
  • Linux系統上獲取命令的幫助信息

    獲取命令的使用幫助: 內部命令:help COMMAND   #針對內檢命令 外部命令: (1) 命令自帶簡要格式的使用幫助      COMMAND –help (2) 使用手冊:manual  [root@localhost /]# ls /usr/share/man   #記住這個…

    Linux干貨 2016-08-15
  • LVM詳解

    目錄:  一、概述  二、LVM的相關概念  三、概念圖  四、LVM基本操作    1.創建PV    2.查看PV信息    3.創建VG    4.查看VG信息    5.創建LV    6.查…

    Linux干貨 2015-09-22
  • Linux基礎知識(二)

     本文的主要內容是:  1.Linux上的基本文件管理命令  2bash的特性及其命令狀態返回值  3.bash的花括號展開機制  4.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息  5如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?  &nb…

    Linux干貨 2016-09-25
欧美性久久久久