萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> rsyslog日志存儲到mysql數據庫中並利用loganalyzer進行web圖形化分析管理

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

下面我們來看一篇關於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
copyright © 萬盛學電腦網 all rights reserved