rsyslog 存儲到 mysql


輸出Host1/2的系統日志, 記錄到mysql服務器數據庫中, 並發布loganalyzer

結構關系如下圖:

 

思路: 通過遠程連接mysql, 使得rsyslog的log記錄能夠寫入到mysql中, 這其中要依賴一個rsyslog-mysql的模塊, 並啟用之;

 

准備工作:

  1. VMware

  2. CentOS 7 最小系統安裝鏡像

  3. loganalyzer源碼包 下載

  4. 安裝三台主機, 拷貝loganalyzer到MariaDB主機

 

IP地址與主機對應關系表:

MariaDB主機 192.168.142.128/24
HOST1 192.168.142.135/24
HOST2 192.168.142.141/24

 

 

 

MariaDB服務器操作:

  1. yum -y install mariadb mariadb-server httpd php php-mysql php-gd
    #安裝mysql服務端, httpd服務端, php --> php-gd 是 loganalyzer 需要使用的
    systemctl start mariadb
  2. 登陸mysql 
    1. mysql -uroot -p  登陸;
    2. GRANT ALL ON Syslog.* TO 'sysloguser'@'192.168.142.%' INDENTIFIED BY '123456'; FLUSH PRIVILEGES;

      建立 rsyslog 數據庫賬號並授權;

      • 注意: 此處Syslog數據庫並不需要我們自己建立, 在HOST1/2上安裝rsyslog-mysql后, 會有一個 sql 腳本, 該數據庫及表由 此腳本 建立, 后文有提到

  3. 編輯mysql配置文件
  4. vim /etc/my.cnf
    
    ###添加如下項目
    
    skip_name_resolve = on
    innodb_file_per_table = on
    
    ####保存退出, 重啟服務
    systemctl restart mariadb

     

HOST1/2 操作:

  1. yum -y install rsyslog-mysql mariadb
    # 安裝rsyslog支持mysql的模塊, 安裝mysql客戶端
    mysql -usysloguser -p123456 -h192.168.142.128
    # 測試是否可以連接上 --> 如果連接失敗, 在mariadb服務器端重做授權; 檢查服務器的防火牆和selinux是否關閉

     rsyslog連接mysql並做出記錄, 是需要依靠 rsyslog-mysql 這個模塊的;

  2. 查看rsyslog-mysql 這個包相關文件等:

    [root@host1 ~]# rpm -ql rsyslog-mysql
    /usr/lib64/rsyslog/ommysql.so --> rsyslog模塊
    /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql --> 此sql腳本即為上文提到的, rsyslog-mysql這個包提供的 建庫腳本

     

  3. 通過輸入重定向的方式, 安裝上述sql腳本: 
    mysql -usysloguser -h192.168.142.128 -p < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

    檢查庫建立是否成功:

     

  4. 編輯 /etc/rsyslog.conf 配置文件
    vim /etc/rsyslog.conf
        ####MODULES####
        $ModLoad ommysql      --> 加載ommysql模塊以支持功能
    
        ####RULES####
        *.info;mail.none;       :ommysql:192.168.142.128,Syslog,sysloguser,123456

     

  5. 重啟rsyslog服務 systemctl restart rsyslog 

 回到MariaDB服務器, 部署 loganalyzer 

  • mysql -uroot -p -->連接mysql數據庫, 查看是否記錄成功
MariaDB [(none)]> use Syslog
MariaDB [Syslog]> SELECT * FROM SystemEvents\G;

 

  1. 測試httpd, php, php-mysql 是否配置成功 --> 參見上一篇
    • 這里碰到一個問題:sysloguser 1045拒絕登陸;root可以登陸; 解決辦法: 刪除所有空密碼用戶(並給root用戶設置密碼);
      -21-[root@vm]16:07 ~ # mysql -usysloguser -h192.168.142.128 -p
      Enter password: 
      ERROR 1045 (28000): Access denied for user 'sysloguser'@'vm' (using password: YES)

       

  2. 部署loganalyzer
    1. 下載資源包, 解壓

       

    2. 我們需要 ./contrib 下的兩個腳本, 以及./src 下的全部文件
      -44-[root@vm]16:18 ~/loganalyzer-4.1.6 # ls
      ChangeLog  contrib  COPYING  doc  INSTALL  src
      -45-[root@vm]16:18 ~/loganalyzer-4.1.6 # cp -r ./src /var/www/html/log
      -46-[root@vm]16:20 ~/loganalyzer-4.1.6 # cd /var/www/html/log
      -47-[root@vm]16:20 /var/www/html/log # ls
      admin               chartgenerator.php  cron         export.php   include      js         reportgenerator.php  statistics.php  userchange.php
      asktheoracle.php    classes             css          favicon.ico  index.php    lang       reports.php          templates
      BitstreamVeraFonts  convert.php         details.php  images       install.php  login.php  search.php           themes
      -48-[root@vm]16:20 /var/www/html/log # cd -
      /root/loganalyzer-4.1.6
      -49-[root@vm]16:20 ~/loganalyzer-4.1.6 # ls
      ChangeLog  contrib  COPYING  doc  INSTALL  src
      -50-[root@vm]16:20 ~/loganalyzer-4.1.6 # cp ./contrib/*.sh /var/www/html/log
      -51-[root@vm]16:21 ~/loganalyzer-4.1.6 # cd -
      /var/www/html/log
      -52-[root@vm]16:21 /var/www/html/log # ls
      admin               chartgenerator.php  convert.php  details.php  images     install.php  login.php            search.php      templates
      asktheoracle.php    classes             cron         export.php   include    js           reportgenerator.php  secure.sh       themes
      BitstreamVeraFonts  configure.sh        css          favicon.ico  index.php  lang         reports.php          statistics.php  userchange.php
      -53-[root@vm]16:21 /var/www/html/log # chmod +x *.sh
      -54-[root@vm]16:21 /var/www/html/log # ./configure.sh 
      -55-[root@vm]16:21 /var/www/html/log # ./secure.sh 
      -56-[root@vm]16:21 /var/www/html/log # chmod -x *.sh
      -57-[root@vm]16:21 /var/www/html/log # touch config.php;chmod 666 config.php

       

    3. 直接訪問192.168.142.128/log 
      •  

    4. 直接點擊Click here   開始安裝
    5. 在第三步(Step 3),可以勾選, 並使用mysql做 loganalyzer 的用戶數據庫; 我們這里做測試就直接跳過了

       

    6. Step 7

      • 請務必使用chrome, 點擊MYSQL Native后, IE/ EDGE/ 360瀏覽器不會彈出下面的數據庫選項框;

    7. 搞定

       

 

 


 

總結: 

  1. 使用純潔的虛擬機安裝; 這次偷懶, 上次用完httpd實驗后接着使用, 出現了mysql報錯的問題;

  2. 360瀏覽器垃圾, 浪費我半個小時;

  3. 不要怕玩壞了, 大不了重裝, 反正ks文件做好了, 裝系統又不用咱動手

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM