rsyslog日志系統

一、前言

 什么是日志?

   日志就是歷史事件,按時間序列將發生的事件予以記錄;日志記錄信息記錄的是事件的發生時間以及事件內容

 Linux下記錄日志的系統:

   syslog:是CentOS 5.0系統上使用的日志系統,有兩類日志,分別是syslogd、klogd;

      syslogd:記錄系統進程相關的日志

      klogd:記錄內核相關的日志

  

   rsyslog:是CentOS 6.0系統使用的日志系統,與syslog日志系統相比,具有以下優點:

      ①支持多線程

      ②支持TCP、SSL、TLS、RELP等協議

      ③強大的過濾器,可實現過濾日志信息中的任意部分

      ④支持自定義輸出格式

      ⑤適用于企業級別日志記錄需求

      ⑥模塊化

二、rsyslog日志系統配置

1、配置文件,以及配置文件的定義格式

/etc/rsyslog.conf  \\配置文件
日志定義格式: facility.priority    Target
    facility: 設施,從功能或程序上對日志進行分類,并由專門的工具負責記錄日志;
      常用的facility:
              lpr: 打印相關的日志
              auth:認證相關的日志
              user:用戶相關的日志
              cron:計劃任務相關的日志
              kern:內核相關的日志
              mail:郵件相關的日志
              mark:標記相關的日志
              news:新聞相關的日志
              uucp:文件copy相關的日志
           daemon:系統服務相關的日志
           authpri: 授權相關的日志
           security:安全相關的日志
           local0-local7:自定義相關的日志信息(自定義時可以使用通配符)
                通配符:
                   *:所有
                   f1,f2,f3......:列表
                   ?。喝》?
               
      priority:日志級別
        常用的日志級別:
          debug:   調試
          info:   消息
          notice: 注意
        warn,warning: 警告
          err,error: 錯誤
          crit: 嚴重級別
          alert: 需要立即修改該的信息
          emerg,panic: 內核崩潰,內核恐慌等嚴重的信息
          
          通配符:
             *:所有日志級別
             none:沒有任何級別,也就是不記錄日志信息
            
     
       Target:文件路徑
            可以使用的有:
                ①/var/log/messages
                ②用戶:*當前登錄系統的所有用戶
                ③日志服務器:@SERAVER_IP
                ④管道:| COMMAND
         
舉例:
mail.info  /var/log/maillog:  比指定級別更高的日志級別,包括指定級別自身,保存到/var/log/maillog中
mail.=info  /var/log/maillog: 明確指定日志級別為info,保存至/var/log/maillog
mail.!info  /var/log/maillog: 除了指定的日志級別(info)所有日志級別信息,保存至/var/log/maillog
*.info      /var/log/maillog: 所有facility的info級別,保存至/var/log/maillog
mail.*     /var/log/maillog:  mail的所有日志級別信息,都保存至/var/log/maillog
mail.notice;news.info  /var/log/maillog: mail的notice以上記得日志級別和news的info以上的級別保存至/var/log/maillog
mail,news.crit  -/var/log/maillog:  mail和news的crit以上的日志級別保存/var/log/maillog中;“-”代表異步模式

 

 日志信息格式: 時間    主機   進程(pid)   事件

1.png

    

2、啟用日志服務器功能,接收其他服務的日志

  ①編輯/etc/rsyslog.conf,修改以下信息

   2.png

 ②重啟rsyslog服務,查看監聽端口  3.png

③在另一臺測試機中編輯/etc/rsyslog.conf,將日志信息發送到此服務器,重啟rsyslog服務

  4.png

 

④在測試機中安裝vsftpd,安裝完成后再rsyslog服務器中查看日志

   5.png

 ⑤至此rsyslog日志服務器已經可以正常工作了

3、配置將日志信息存儲到數據庫

  ①安裝數據庫,啟動數據庫

# yum -y install mysql-server
#  service  mysqld  start

  ②安裝rsyslog-mysql驅動

# yum -y install rsyslog-mysql

 ③查看rsyslog-msyql生成的文件

# rpm -ql rsyslog-mysql
/lib64/rsyslog/ommysql.so \\rsyslog連接mysql的驅動模塊
/usr/share/doc/rsyslog-mysql-5.8.10 \\ rsyslog的文檔
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql  \\rsyslog的數據庫以及表的各項定義,直接導入數據即可使用

 ④將生成的createDB.sql導入mysql數據庫

# mysql -uroot -p </usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
Syslog  \\生成的數據庫名稱
 SystemEvents  \\存放日志文件的數據庫表
 SystemEventsProperties \\ 生成的日志數據庫表

 ⑤授權rsyslog用戶對到導入的數據庫有所有權限

mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'syslogpass'; \\用戶授權
mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'syslogpass';\\用戶授權
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;   \\進行權限刷新
Query OK, 0 rows affected (0.00 sec)

 ⑥編輯/etc/rsyslog.conf配置文件,加載ommysql模塊,定義將日志信息存儲到mysql數據庫

#### MODULES ####
$ModLoad ommysql

#### RULES ####
*.info;mail.none;authpriv.none;cron.none   :ommysql:127.0.0.1,Syslog,rsyslog,syslogpass
                       :模塊驅動:數據庫地址,數據庫名稱,數據用戶,用戶密碼

 ⑦重啟rsyslog服務

# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

 ⑧在本機上安裝vsftpd,在mysql中查看日志信息

# yum -y install vsftpd   \\安裝vsftpd服務
# mysql -uroot -p  \\進入數據庫
Enter password:    \\數據密碼,默認root用戶的密碼為空

mysql> SELECT * FROM Syslog.SystemEvents\G;  查看日志命令,輸出信息如下:

 *************************** 4. row ***************************
                ID: 4
        CustomerID: NULL
        ReceivedAt: 2014-12-16 11:51:42
DeviceReportedTime: 2014-12-16 11:51:42
          Facility: 1
          Priority: 6
          FromHost: localhost
           Message:  Installed: vsftpd-2.2.2-13.el6_6.1.x86_64
        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: yum[2605]:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
4 rows in set (0.00 sec)

 ⑨到此為止,日志信息已經成功的存儲于數據庫中,可以便捷的查詢相關的日志信息啦

  

4、配置loganalyzer日志分析工具,便于日常維護

 ①安裝LAMP平臺

 # yum -y install httpd php php-mysql   \\數據庫已安裝,現在只安裝httpd,php即可

 ②啟動相關的服務,測試LAMP是否可以正常提供服務

# service httpd start  \\啟動httpd服務

 ③測試web服務正常訪問6.png

  ④配置loganalyzer

 # tar xf loganalyzer-3.6.5.tar.gz   \\解壓loganalyzer到當前目錄
 # mkdir /var/www/html/log\\在httpd的DocumentRoot目錄中創建log目錄,用于存儲loganalyzer相關頁面
 # cp -r  loganalyzer-3.6.5/src/* /var/www/html/log \\復制loganalyzer目錄中的src目錄中的所有文件到剛剛創建的/var/www/html/log目錄中
 # cp loganalyzer-3.6.5/contrib/* /var/www/html/log \\復制loganalyzer目錄中的contrib目錄中的腳本文件到剛剛創建的/var/html/www/log目中中
 # cd /var/www/html/log   \\cd 到/var/www/html/log目錄中
 # chmod +x configure.sh secure.sh   \\給剛剛復制過來的腳本添加執行權限
 # ./configure.sh   \\執行腳本
 # ./secure.sh      \\執行腳本
 # chown -R apache.apache . \\更改當前目錄的屬主屬組為apache,使用rpm安裝的httpd,默認用戶是apache
 # chmod 666 config.php  \\ 設置config.php配置文件具有寫權限

上述配置完成后,訪問http://192.168.10.120/log便可以進行相關的配置

  7.png  8.png

9.png

10.png

11.png

12.png

13.png

可能會遇到的問題 

 1、如果安裝完成后提示連接不到數據庫,則將第五步中的127.0.0.1改為localhost便可以解決問題

 2、使用中出現以下問題 14.png

# yum -y install php-gd  \\安裝php-gd
# service httpd restart  \\重啟httpd服務

 刷新頁面,便可以恢復正常訪問

15.png77

原創文章,作者:馬行空,如若轉載,請注明出處:http://www.www58058.com/5257

(2)
馬行空馬行空
上一篇 2015-06-15
下一篇 2015-06-15

相關推薦

  • 獲取linux命令幫助的方法

    1.help command 適用于內建命令。 2.command -hlep 適用于外部命令。 3.info command 適用于外部命令。 4.man command 適用外部命令和內建命令。     man幫助命令分章節             centos7:man 1…

    Linux干貨 2017-08-19
  • 103-corosync-pacemaker-crmsh

    一、概述: 1.1 什么是AIS和OpenAIS?

    2016-11-26
  • linux終端變量設置,文件系統,man使用說明,文件類型

    一、定義終端提示符的變量 export PS1=’\e[32m[\e[33m\u\e[31m@\e[35m\h\e[36m\t\e[34m\#\e[31m\s\e[37m\W\e[32m]\$ ‘  `]# export 是個命令      PS1指終端提示符變量    &n…

    Linux干貨 2013-06-16
  • Linux上bash的部分基礎特性:

    命令補全: tab      shell程序在接收到用戶執行命令的請求,分析完成后,最左側的字符串會被當做命令 命令查找機制:     查找內部命令:     根據PATH環境變量中設定的目錄,自左而右逐個搜索目錄下的文件名 &n…

    Linux干貨 2017-03-28
  • N25第五周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; ]# grep -E '^[[:space:]]+.*' /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;…

    Linux干貨 2017-01-08
  • Linux啟動之grub詳解,故障排除,自建linux

    概述     上篇我們以CentOS6為例介紹了一下系統啟動流程,本篇將承接上篇,詳細的介紹一下系統啟動流程中的grub,以及系統啟動過程中的各種故障的排除,以及利用現有內核自己構建一個能夠正常啟動的簡單Linux系統。具體分為一下幾個部分:     1、grub相關概念詳解 &…

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