1103.1000天:MySQL的日誌傳送到Syslog服務器

#每日三件事,第1000天#

我在前面的文章中寫了怎麼把本地的日誌信息發送到遠端的日誌服務器。MySQL的日誌和服務器的日誌略有不同,我們需要把MySQl產生的日誌文件中的內容發送到日誌服務器。

一、啓用MySQL的general log日誌

在MySQL中,general log是查詢日誌,記錄了客戶對數據庫的各種操作。general log默認是關閉的,使用命令set general_log=ON,general log file的名稱一定要記住,在後面配置信息的時候有用。

二、修改MySQL服務器上rsyslog的配置文件

使用vim /etc/rsyslog.conf,在模塊的部分加入下面的內容:

module(load="imfile" PollingInterval="5")

在規則的部分添加下面的內容:

input(type='imfile"

    File="/var/lib/mysql/salve.log" #這個就是mysql中general log file ;

    Tag=“slave”)

如果有好幾個日誌文件需要通過syslog發送到日誌服務器的話,繼續像上面一樣寫就可以了。

最後還有一行,把所有信息發送到日誌服務器:

*.* @server-ip-address:514

重啓rsyslog服務是必不可少的。

三、日誌服務器的配置

啓用udp接收日誌信息,然後根據不同的日誌來源產生不同的日誌文件。

vim /etc/rsyslog.conf

$ModLoad imp

$UDPServerRun 514

上面這兩行在配置文件裏面有,去掉前面的“#”就可以了。

添加下面兩行:

$template remote,"/var/log/rsyslog/%$YEAR%-%$MONTH%-%$DAY%/%fromhost-ip%.log"

:fromhost-ip,!isequal,"127.0.0.1" ?remote

保存文件,重新啓動rsyslog,別忘了查看一下防火牆的情況。

四、測試驗證

在MySQL服務器上,登錄mysql,隨便執行個select語句,在日誌服務上就會有信息傳過來,查看/var/log/xxxx-xx-xx/ip-add.log即可;MySQL的錯誤日誌不太容易產生,可以自己模擬一個,就是往/var/log/mariadb/mariabd.log最後插入一行即可。

至此,CentOS實現了日誌服務器的功能,不僅可以收集其他服務器上的日誌信息,還可用收集服務器上各種應用的日誌信息。CentOS日誌功能到此完美宣告一個段落。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章