rsyslog(四)實現將日誌記錄於Mariadb數據庫中

實現將日誌記錄於Mariadb數據庫中

準備工做:mysql

1,準備一臺存放日誌的mariadb數據庫服務器
2,確保selinux,iptables是關閉狀態

步驟:linux

準備日誌Mariadb數據庫服務器

安裝Mariadb數據庫

yum install mariadb-server
也可選擇二進制安裝安裝數據庫參考:
    https://blog.51cto.com/13598893/2070289

啓動Mariadb數據庫,並設置爲開機自動啓動

CentOS-6啓動服務: service  mariadb start 
 CentOS-6設爲開機自動啓動:chkconfig mariadb on
 CentOS-7啓動服務:systemctl start maridb
 CentOS-7設爲開機自動啓動:systemctl enable maridb

運行Mariadb安全腳本

"注意:爲了數據庫安全需運行一個安全腳本以下"sql

"mysql_secure_installation"

    第一項問你:輸入root密碼  回車便可,由於沒有
    第二項問你:須要設置root密碼麼,固然要  敲Y
    第三項問你:須要刪除空帳號用戶麼,固然要  敲Y
    第四項問你:禁止root用戶遠程登入麼,根據大家公司的須要
    第五項問你:須要刪除test測試數據庫麼,刪除
    第六項問你:如今從新加載權限表嗎 ,固然

配置rsyslog服務器

安裝rsyslog-mysql包,此包的做用就是讓rsyslog服務具備鏈接數據庫的功能數據庫

yum install rsyslog-mysql

查看rsyslog-mysql 包文件

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

複製生成數據庫的文件至日誌mariadb數據庫服務器

scp /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql 目標主機IP:/dir

mariadb服務器,生成日誌數據庫

進到複製過來的文件的目錄下運行該命令
    mysql -uroot -p  < createDB.sql 
    Enter password:
    #"-u指定用戶,-p輸入改用戶的密碼"

運行完該命令以後會在數據庫裏生成一個名爲Syslog的數據庫,裏面會有兩張表,vim

檢查數據庫是否生成

MariaDB [(none)]> show tables from Syslog;
    +----------------------------------+
    | Tables_in_Syslog             |
    +----------------------------------+
    | SystemEvents                  |#"存放系統事件"
    | SystemEventsProperties  | #"存放系統事件屬性"
    +----------------------------------+
    2 rows in set (0.00 sec)

接下來須要建立一個對於Syslog數據庫管理員帳號centos

建立Syslog數據庫的管理員

MariaDB [(none)]>grant ALL on Syslog.* to syslog@'192.168.136.6' identified by 'centos'; 
    命令解析:
        "grant:"創鍵受權用戶
        "ALL:"    表示對Syslog這個數據庫擁有全部權限
        "syslog@'192.168.136.6'":其中syslog是用戶名,而192.168.136.6表示該用戶只能在這臺主機上登錄,這也是爲了安全起見,
        "identified by 'centos':"這identified by後面單引號裏跟的就是該用戶的密碼了 'centos'最後別忘了";"結尾

修改rsyslog服務器的配置文件

vim /etc/rsyslog.conf
    # 在#### MODULES ###
    #"下加上這麼一行配置,做用就是讓rsyslog支持鏈接數據庫功能"
    "$ModLoad ommysql"
    # 在#### RULES ####下設置那些日誌須要存到數據庫裏
    語法格式:  facility.priority   :ommysql:DBHOST,DBNAME,DBUSER,PASSWORD 
    例如:
        *.info;mail.none;authpriv.none;cron.none  :ommysql:192.168.136.7,Syslog,syslog,centos

重啓rsyslog服務

CentOS-6重啓:service rsyslog restart 
CentOS-7重啓:systemctl restart rsyslog

最後的測試

在客戶端主機利用logger命令發送日誌

logger -p *.info "The is mysqllog  text log"
 #該命令做用就是發送一條任意設施,info級別以上的日誌,內容是"The is mysqllog  text log"

查看數據庫裏面的日誌數據庫是否計入內容了

若是出現這些字樣,即表示成功了
MariaDB [Syslog]> select * from  SystemEvents\G
*************************** 1. row ***************************
                ID: 1
        CustomerID: NULL
        ReceivedAt: 2018-02-09 22:05:05
DeviceReportedTime: 2018-02-09 22:05:05
          Facility: 0
          Priority: 6
          FromHost: centos6
           Message: Kernel logging (proc) stopped.
        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: kernel:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
*************************** 2. row ***************************
                ID: 2
        CustomerID: NULL
        ReceivedAt: 2018-02-09 22:05:05
DeviceReportedTime: 2018-02-09 22:05:05
          Facility: 5
          Priority: 6
          FromHost: centos6
           Message:  [origin software="rsyslogd" swVersion="5.8.10" x-pid="12390" x-info="http://www.rsyslog.com"] exiting on signal 15.
        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: rsyslogd:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
*************************** 3. row ***************************
                ID: 3
        CustomerID: NULL
        ReceivedAt: 2018-02-09 22:05:05
DeviceReportedTime: 2018-02-09 22:05:05
          Facility: 0
          Priority: 6
          FromHost: centos6
           Message: imklog 5.8.10, log source = /proc/kmsg started.
        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: kernel:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
*************************** 4. row ***************************
                ID: 4
        CustomerID: NULL
        ReceivedAt: 2018-02-09 22:05:05
DeviceReportedTime: 2018-02-09 22:05:05
          Facility: 5
          Priority: 6
          FromHost: centos6
           Message:  [origin software="rsyslogd" swVersion="5.8.10" x-pid="12631" x-info="http://www.rsyslog.com"] start
        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: rsyslogd:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
*************************** 5. row ***************************
                ID: 5
        CustomerID: NULL
        ReceivedAt: 2018-02-09 22:05:56
DeviceReportedTime: 2018-02-09 22:05:56
          Facility: 1
          Priority: 5
          FromHost: centos6
           Message:  The is mysqllog  text log
        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
5 rows in set (0.00 sec)
相關文章
相關標籤/搜索