rsyslog日志存儲到mysql數據庫中并利用loganalyzer進行web圖形化分析管理

概述

    系統日志的重要性,相信大家都深有體會,當發生故障后,第一時間就是查看相關報錯信息和日志信息,以定位問題所在,還可以基于日志,進行日志的分析,從而獲取系統運行狀態的一些規律,本篇就介紹關于系統日志的先關內容,具體分為:

    1、rsyslog相關概念的介紹

    2、自定義日志存儲的信道(facility)和存儲位置,讓rsyslog作為服務端記錄rsyslog客戶端的日志信息

    3、定義rsyslog的日志存儲在mysql數據庫中

    4、利用loganalyzer實現對存儲在mysql數據庫中的rsyslog日志信息,進行web圖形化分析管理

環境:

    CentOS7系統,IP為10.1.32.72

    LAMP組合采用:yum方式的rpm包安裝

        httpd-2.4

        php-fpm(也就是php基于fastcgi方式與httpd交互的實現)

        mariadb

    

第一章    rsyslog相關概念的介紹

    

    1、rsyslog是什么

        rsyslog是系統上用來進行日志管理的工具,其C/S架構的程序,可以為當前系統記錄系統相關的日志信息,也支持為其他軟件或其他的系統記錄日志信息,其相關特性表現為:

            多線程工作;

            基于UDP、TCP、協議,還可以基于tls/ssl進行加密通信,還可以基于RELP進行通信;

            存儲日志信息于MySQL、PostgreSQL(PGSQL)、Oracle等RDBMS;

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

            自定義的輸出格式;

    2、rsyslog程序環境

        程序包:

            rsyslog   程序包

            rsyslog-mysql   支持將日志信息記錄到mysql的程序包

        配置文件:

            /etc/rsyslog.conf、/etc/rsyslog.d/*.conf

        主程序:

            /usr/sbin/rsyslogd

        模塊組件:

            /usr/lib64/rsyslog/

        Unit file:

            /usr/lib/systemd/system/rsyslog.service

      

    3、rsyslog相關的術語

        facility:收集日志的通道設施,信道,可以理解為日志通過那個虛擬設備發送進來

        常見的facility有:  

            auth         # 認證相關的

            authpriv     # 權限,授權相關的

            cron         # 任務計劃相關的

            daemon       # 守護進程相關的

            kern         # 內核相關的

            lpr          # 打印相關的

            mail         # 郵件相關的

            mark         # 標記相關的

            news         # 新聞相關的

            security    # 安全相關的,與auth 類似  

            syslog      # syslog自己的

            user        # 用戶相關的

            uucp        # unix to unix cp 相關的

            local0 到 local7      # 用戶自定義使用

            *           # *表示所有的facility 

        priority:(log level)日志的級別,一般有以下幾種級別(從低到高)     

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

            info            # 一般信息

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

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

            err/error       # 錯誤信息

            crit            # 比較嚴重的

            alert           # 必須馬上處理的

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

            *               # 表示所有的日志級別

            none            # 跟* 相反,表示啥也沒有 

        target:(動作)日志記錄的位置,常見的有:

            文件:

                將指定的日志信息記錄到指定的文件中

            -文件:

                表示將日志信息記錄到指定的文件中,-表示異步寫入

            用戶:

                將日志事件通知給指定的用戶,通常是將日志信息發送給登錄到當前系統上的所有用戶的終端

            日志服務器:

                格式為@RSYSLOG_SERVER  ,表示將日志信息發送給指定的日志服務器

            管道:

                格式為 |COMMAND  表示將日志信息管道送給指定的命令

        

    4、記錄日志定義的格式為:

        facility.priority    target

        表示將哪個信道傳進來的日志,哪個日志級別(及其之上的日志級別),記錄到哪個目標中

        facility格式:

            *   表示所有的facility

            FACI1,FACI2,FACI1,…   列表中給定的所有facility

            FACI1.PRI1;FACI2.PRI2;FACI3.PRI3;…  列表中給定的facility和對應的priority及其之上級別的記錄

        priority格式:

            *   所有級別

            none   沒有級別,不記錄日志

            PRIORITY:此級別(含)及其以上的所有級別

            =PRIORITY: 僅指定的級別

        例如:     

            *.info;mail.none;authpriv.none;cron.none                /var/log/messages

            表示所有信道的info級別以上的信息,除了mail設備,authprioriv設備、cron設備的日志,都記錄到/var/www/messages文件

            authpriv.*                                              /var/log/secure

            表示authpriv設備上所有日志級別的日志,都記錄到/var/log/secure文件中

            mail.*                                                  -/var/log/maillog

            表示mail設備所有日志級別的日志,都以異步方式記錄到/var/log/mailog文件中

           

            auth.=info  @10.0.0.1         

            # 表示將auth相關的,級別為只為info的日志記錄到10.0.0.1主機上去

            前提是10.0.0.1要能接收其他主機發來的日志信息 

            

            user.!=error      /var/log/test.log                  

            # 表示記錄user相關的,不包括error級別的信息,記錄到/var/log/test.log文件中

           

            cron.info;mail.info          /var/log/test.log

            # 多個日志來源可以用";" 隔開

            cron,mail.info                /var/log/test.log

            # 與cron.info;mail.info 是一個意思

            mail.*;mail.!=info            /var/log/test.log

            # 表示記錄mail相關的所有級別的信息,但是不包括info級別的

第二章    自定義日志存儲的信道(facility)和存儲位置,讓rsyslog作為服務端記錄rsyslog客戶端的日志信息

    

    1、自定義存儲位置—以文件為例

    blob.png 

    blob.png   

        

    

    2、讓本機rsyslog作為服務端,接受來自其他rsyslog客戶端的日志

        在本機的rsyslog中配置文件中定義其作為服務端工作需要的屬性

    blob.png

    blob.png

        

        在其他rsyslog客戶端主機上配置,讓其把日志發送給rsyslog服務端

    blob.png

    blob.png

        

        在rsyslog服務端驗證是否有收到客戶端的日志信息

    blob.png

第三章    定義rsyslog的日志存儲在mysql數據庫中

    1、安裝mariadb數據庫,啟動服務

    blob.png   

    blob.png

    blob.png

    

    

    2、安裝rsyslog連接mysql的驅動模塊:rsyslog-mysql

    blob.png

    blob.png

            

    2、導入rsyslog-mysql生成的sql腳本,實現對數據庫的配置

    blob.png

    blob.png

            

    3、在數據庫上授權對Syslog庫的管理用戶

    blob.png

                

    4、配置rsyslog利用mysql記錄日志

    blob.png

    blob.png

                        

    5、修改完配置文件,重啟rsyslog服務,查看數據庫中是否有相關日志信息

    blob.png

    

第四章    利用loganalyzer實現對存儲在mysql數據庫中的rsyslog日志信息,進行web圖形化分析管理

    上述過程,我們已經實現了將rsyslog的日志信息存儲于mysql數據庫中,但是查看日志時卻不方便,需要利用SQL語句來查詢

    接下來我們來介紹下,利用loganalyzer實現對存儲在mysql數據庫中的日志進行web化管理

    1、部署LAMP組合(以php與httpd結合方式為fastcgi為例)

        yum install -y httpd php-fpm php-mysql php-gd

    blob.png

            

    2、對httpd進行簡單配置,然后啟動httpd服務,配置php-fpm配置文件,然后啟動php-fpm服務

    blob.png

    blob.png

    blob.png

    blob.png    

    blob.png

    測試訪問,驗證LAMP是否正常

    blob.png

    blob.png      

          

    4、下載loganalyzer軟件包,解壓,部署

    blob.png

    blob.png

    

    5、登錄網頁,進行安裝

    blob.png

    blob.png

    blob.png

    重載httpd配置文件后刷新網頁

    blob.png

    blob.png

    拍錯過程:上圖中,定義的數據庫表名稱與實際數據庫(表名稱為'SystemEvents')不對,修改config.php文件解決

    忘記給php添加session目錄    

        解決方案:mkdir /var/lib/php/session;chown apache:apache /var/lib/php/session

    blob.png

原創文章,作者:M20-1倪文超,如若轉載,請注明出處:http://www.www58058.com/52552

(2)
M20-1倪文超M20-1倪文超
上一篇 2016-10-18
下一篇 2016-10-18

相關推薦

  • 馬哥教育網絡班21期第11周課程練習

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 發送方Bob:自上至下 1、生成數據 2、Bob用單向加密算法對數據提取特征碼 3、Bob用自己的私鑰加密特征碼,并附加在數據后面 4、Bob使用對稱加密算法生成臨時會話密鑰加密特征碼和數據 5、Bob用Alice的公鑰加密臨時會話密鑰,并附加在數據后 接收方Alice:自下至上 1、Alice收到Bob數據,…

    Linux干貨 2016-10-31
  • 第一章 linux的安裝及簡單的命令合集

    linux安裝;簡答命令:注釋;常見用法

    Linux干貨 2018-03-17
  • Linux基礎目錄名稱命名法則及功能規定

    Linux中有非常多的目錄文件,那么這些目錄文件的命令規則,和功能都有那些,今天學習了下,下面是我的學習記錄,跟大家分享下。 文件命名規則 (1) 除了/之外,所有字符都合法 (2) 特殊字符如@、#、¥、&、()、-、空格等最好不要使用,當使用空格作為文件名時,執行命令會出錯 (3) 避免使用”.”作為文件名的第一個字符,因為在Linux系統中以”…

    Linux干貨 2016-08-15
  • 內核與內核模塊

    內核與內核模塊 先來看一下,內核與內核模塊放在哪?這里以centos6為例 內核: /boot/vmlinuz或/boot/vmlinuz-version 內核解壓所需要RAMDisk: /boot/initrc(/boot/initrc-version) 內核模塊:/lib/modules/version/kernel或/lib/modules/uname…

    2017-09-04
  • DNS服務器搭建

    1. 配置正向解析 1.安裝bind yum install bind bind-utils -y 2.配置/etc/named.conf,需要修改的地方 listen-on port 53 { 127.0.0.1; 192.168.42.135; }; allow-query { any; }; dnssec-enable no; dnssec-valid…

    Linux干貨 2017-05-24
  • 第八周-Linux網絡配置,軟件安裝,bash編程

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別 網橋:一種網絡設備,負責網絡橋接(network bridging)之用。橋接器將網絡的多個網段在數據鏈路層(OSI模型第2層)連接起來(即橋接)。 集線器(Hub):是指將多條以太網雙絞線或光纖集合連接在同一段物理介質下的設備。集線器是運作在OSI模型中的物理層。 二層交換機:工…

    Linux干貨 2016-11-14

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-10-30 20:32

    文章圖片的注釋很詳細,建議標題優化一下,太冗長了,簡潔為主。

欧美性久久久久