MariaDB開(kāi)啟日志審計(jì)功能

對(duì)于MySQL眉孩、Percona、MariaDB三家都有自己的審計(jì)插件勒葱,但是MySQL的審計(jì)插件是只有企業(yè)版才有的浪汪,同時(shí)也有很多第三方的的MySQL的審計(jì)插件,而Percona和MariaDB都是GPL的審計(jì)插件凛虽。MariaDB的審計(jì)插件死遭,默認(rèn)是沒(méi)有安裝的的,安裝該插件并開(kāi)啟審計(jì)功能后凯旋,可以將對(duì)數(shù)據(jù)庫(kù)的各種操作記錄保存下來(lái)呀潭,以便追蹤操作來(lái)源及具體操作。

MariaDB版本:

Server version: 10.0.19-MariaDB-log Source distribution? ?(該版本自帶了server_audit插件)

一至非、MariaDB審計(jì)日志寫(xiě)到文件

1钠署、安裝server_audit插件

查看插件存放的目錄,登陸進(jìn)MariaDB荒椭,執(zhí)行:

MariaDB [(none)]> show variables like '%plugin%';

cd /apps/mariadb/lib/plugin/ 目錄下谐鼎,查看有沒(méi)有一個(gè)叫做server_audit.so的文件,如果沒(méi)有的話趣惠,到http://www.skysql.com/downloads/mariadb-audit-plugin-beta去下載放到/apps/mariadb/lib/plugin/目錄下即可该面。

2、安裝插件

MariaDB [(none)]> INSTALL PLUGIN server_audit SONAME 'server_audit.so';

或者編輯數(shù)據(jù)庫(kù)的配置文件my.cnf信卡,添加如下內(nèi)容:

[mysqld]

plugin-load=server_audit.so

然后重啟mariadb數(shù)據(jù)庫(kù),推薦使用第一種方式题造,避免重啟數(shù)據(jù)庫(kù)傍菇。

安裝后,可登陸客戶(hù)端查看audit相關(guān)的全局變量:

MariaDB [(none)]> show global variables like '%audit%';

3界赔、打開(kāi)日志的審計(jì)功能

從上圖可以看到丢习,現(xiàn)在插件已將安裝上了,但是還沒(méi)有開(kāi)啟淮悼,可通過(guò)以下命令進(jìn)行開(kāi)啟:

MariaDB [(none)]> set global server_audit_logging=1;

通過(guò)命令開(kāi)啟該功能后咐低,一旦數(shù)據(jù)庫(kù)服務(wù)重啟后便會(huì)失效,可以通過(guò)在配置文件添加避免這個(gè)問(wèn)題:

[mysqld]

server_audit_logging=on

開(kāi)啟后袜腥,查看audit插件的運(yùn)行狀態(tài):

MariaDB [(none)]> show global status like '%audit%';

各參數(shù)含義如下:

server_audit_active :ON (表示server_audit插件在運(yùn)行)见擦;

server_audit_current_log : server_audit.log(審計(jì)日志路徑和日志名);

server_audit_last_error : 錯(cuò)誤消息;

server_audit_writes_failed : 因錯(cuò)誤沒(méi)有記錄的日志條目數(shù)鲤屡;

可對(duì)audit相關(guān)的變量通過(guò)命令行進(jìn)行設(shè)置损痰,也可以直接在配置文件my.cnf中進(jìn)行配置,常用變量設(shè)置如下:

set GLOBAL server_audit_file_path='/data/logs/mariadb/server_audit.log'; --日志保存路徑

set GLOBAL server_audit_events='connect,query,table'; --日志記錄的操作

set GLOBAL server_audit_events='query_ddl,query_dml'; --不記錄select查詢(xún)操作酒来,只記錄增刪改卢未、DDL操作

set GLOBAL server_audit_incl_users ='test,user,root'; --審計(jì)的用戶(hù)對(duì)象,不設(shè)置則針對(duì)所有用戶(hù)

set GLOBAL server_audit_file_rotate_size=1073741824;? --單個(gè)日志大小(單位:字節(jié))堰汉,文件到達(dá)該大小后辽社,會(huì)自動(dòng)切換

set GLOBAL server_audit_file_rotations=9; --日志保存數(shù)量

為了防止server_audit插件被卸載,可以在在配置文件my.cnf中添加如下選項(xiàng):

[mysqld]

server_audit=FORCE_PLUS_PERMANENT

然后重啟數(shù)據(jù)庫(kù)后生效翘鸭。

4滴铅、卸載插件

在MySQL客戶(hù)端中執(zhí)行如下命令:

MariaDB [(none)]> UNINSTALL PLUGIN server_audit;

驗(yàn)證卸載是否完成:

MariaDB [(none)]> show variables like '%audit%';

Empty set (0.00 sec)

卸載的步驟:

1、如果在數(shù)據(jù)庫(kù)的配置文件中配置了server_audit相關(guān)的選項(xiàng)矮固,需要先在配置文件里把這項(xiàng)配置項(xiàng)注釋掉失息,再重啟mariadb。

2档址、然后在客戶(hù)端執(zhí)行UNINSTALL PLUGIN server_audit;才能卸載掉這個(gè)插件盹兢。

3、卸載插件完成后守伸,執(zhí)行show variables like '%audit%';仍然能看到這個(gè)插件的可用參數(shù)绎秒,再次重啟mariadb才行。

二尼摹、MariaDB審計(jì)日志寫(xiě)到syslog

將MariaDB審計(jì)日志寫(xiě)到syslog的方法见芹,與寫(xiě)入到日志文件中的方法基本相同,就是多了一條顯式的指定日志的存儲(chǔ)方式而已蠢涝。

改變審計(jì)日志輸入類(lèi)型玄呛,即更改參數(shù)server_audit_output_type的值,命令如下:

MariaDB [(none)]> SET GLOBAL server_audit_output_type=SYSLOG;

需要重啟rsyslog服務(wù)后生效和二,命令如下:

# /etc/init.d/rsyslog restart

Shutting down system logger:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]

Starting system logger:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]

通過(guò)MySQL客戶(hù)端連接到數(shù)據(jù)庫(kù)后徘铝,執(zhí)行一些數(shù)據(jù)庫(kù)、表的操作惯吕,可以在syslog里看到操作的記錄:

# tailf /var/log/messages

默認(rèn)的審計(jì)日志都是記錄在/var/log/message文件里朽褪,不方便我們查看硬猫,可以修改下系統(tǒng)日志的配置文件:

# vim /etc/rsyslog.conf

在*.info;mail.none;authpriv.none;cron.none;local4.none? ? ?/var/log/messages的下面加一行:

if $programname =='mysql-server_auditing' then /data/logs/mariadb/mariadb_audit_log

然后在重啟rsyslog服務(wù):? ? ? ? ? ? ??

# /etc/init.d/rsyslog restart

Shutting down system logger:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]

Starting system logger:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]

這樣的話,就能將審計(jì)的日志輸出到獨(dú)立的文件/data/logs/mariadb/mariadb_audit_log里面。

(注意:審計(jì)日志在/var/log/messages寫(xiě)一遍告匠,在/data/logs/mariadb/mariadb_audit_log再寫(xiě)一遍申尤,不是單單只寫(xiě)到/var/log/mariadb_audit_log里面的)

通過(guò)MySQL客戶(hù)端連接到數(shù)據(jù)庫(kù)后趾断,執(zhí)行一些數(shù)據(jù)庫(kù)、表的操作兆蕉,可以在指定的日志文件里看到操作的記錄:

# tailf /data/logs/mariadb/mariadb_audit_log

補(bǔ)充:MariaDB Audit Plugin和init-connect+binlog比較

(1)、init-connect+binlog方案要求用戶(hù)對(duì)日志表至少有insert權(quán)限搔体,每添加一個(gè)新用戶(hù)都要進(jìn)行授權(quán)恨樟,顯得比較麻煩;而MariaDB Audit Plugin默認(rèn)會(huì)對(duì)所有用戶(hù)進(jìn)行行為審計(jì)疚俱,不需要對(duì)新添加的用戶(hù)進(jìn)行授權(quán)劝术,MariaDB Audit Plugin還可以指定對(duì)哪些用戶(hù)進(jìn)行行為審計(jì),哪些用戶(hù)不需要進(jìn)行行為審計(jì)呆奕;

(2)养晋、init-connect+binlog方案無(wú)法對(duì)具有super權(quán)限的用戶(hù)進(jìn)行行為審計(jì),而MariaDB Audit Plugin可以對(duì)所有用戶(hù)進(jìn)行行為審計(jì)梁钾,包括具有super權(quán)限的用戶(hù)绳泉;

(3)、init-connect+binlog方案需要修改配置文件之后重啟MySQL生效姆泻,而MariaDB Audit Plugin可以在線進(jìn)行配置零酪,無(wú)需重啟服務(wù)生效;

(4)拇勃、init-connect+binlog方案審計(jì)信息輸出到binlog中四苇,MariaDB Audit Plugin可以選擇將審計(jì)信息輸出到syslog或者自定義的路徑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末方咆,一起剝皮案震驚了整個(gè)濱河市月腋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瓣赂,老刑警劉巖榆骚,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異煌集,居然都是意外死亡妓肢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)苫纤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)职恳,“玉大人,你說(shuō)我怎么就攤上這事方面。” “怎么了色徘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵恭金,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我褂策,道長(zhǎng)横腿,這世上最難降的妖魔是什么颓屑? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮耿焊,結(jié)果婚禮上揪惦,老公的妹妹穿的比我還像新娘。我一直安慰自己罗侯,他們只是感情好器腋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著钩杰,像睡著了一般纫塌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上讲弄,一...
    開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
  • 那天措左,我揣著相機(jī)與錄音,去河邊找鬼避除。 笑死怎披,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瓶摆。 我是一名探鬼主播凉逛,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼赏壹!你這毒婦竟也來(lái)了鱼炒?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蝌借,失蹤者是張志新(化名)和其女友劉穎昔瞧,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體菩佑,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡自晰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稍坯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酬荞。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瞧哟,靈堂內(nèi)的尸體忽然破棺而出混巧,到底是詐尸還是另有隱情,我是刑警寧澤勤揩,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布咧党,位于F島的核電站,受9級(jí)特大地震影響陨亡,放射性物質(zhì)發(fā)生泄漏傍衡。R本人自食惡果不足惜深员,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛙埂。 院中可真熱鬧倦畅,春花似錦、人聲如沸绣的。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)被辑。三九已至燎悍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盼理,已是汗流浹背谈山。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宏怔,地道東北人奏路。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像臊诊,于是被迫代替她去往敵國(guó)和親鸽粉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理抓艳,服務(wù)發(fā)現(xiàn)触机,斷路器,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,807評(píng)論 6 342
  • mysql主從復(fù)制 主從復(fù)制慨述 構(gòu)建大型玷或,高性能應(yīng)用程序的基礎(chǔ)主服務(wù)器復(fù)制負(fù)責(zé)更新儡首,且將更新寫(xiě)入二進(jìn)制日志文件,...
    肖金光xjg閱讀 889評(píng)論 0 1
  • 一偏友、源題QUESTION 36Your database is open and the LISTENER lis...
    貓貓_tomluo閱讀 1,234評(píng)論 0 2
  • 一蔬胯、源題QUESTION 1The instance abnormally terminates because ...
    貓貓_tomluo閱讀 1,598評(píng)論 0 2