轉載請說明出處 尊重原創從你我作起!!python
說下弄這個報警原由,以前一直想作這個事情,可是一直沒時間就一拖再拖。終於出了一次事故。開發人員疏忽,使用全表查詢語句。高峯期致使數據庫讀庫game over。故此提上日程。
因爲官網這些都系都很齊全,這裏就不過多介紹
能夠參考我以前寫的:mysql
安裝完成後,打開 filebeat.yml(RPM 安裝在/etc/filebeat/filebeat.yml)sql
使用filebeat自帶mysql模板數據庫
filebeat.config.modules: # Glob pattern for configuration loading path: ${path.config}/modules.d/*.yml # Set to true to enable config reloading reload.enabled: true ***對應如上修改就是將上一行修改false 爲 true** 修改對應路徑下的 /etc/filebeat/modules.d/mysql.yml.disabled 爲 mysql.yml 添加mysql 慢日誌路徑 slowlog: enabled: true # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. var.paths: ["/root/slow-queries.log"]
日誌結構: # User@Host: root[root] @ [127.0.0.1] # Thread_id: 2678308 Schema: express QC_hit: No # Query_time: 11.785439 Lock_time: 0.000079 Rows_sent: 0 Rows_examined: 3856431 SET timestamp=1535630100; SELECT * FROM XXXX; # Time: 180830 3:07:13
logstash.conf 配置以下:express
input { beats { port => 5044 #host => "IP" } } filter { grok { match => { "message" => "SELECT SLEEP" } add_tag => [ "sleep_drop" ] tag_on_failure => [] # prevent default _grokparsefailure tag on real records } if "sleep_drop" in [tags] { drop {} } ### 注意下面的 grok 正則須要對應上面日誌進行調整,若是有不相同地方,須要進行對應調整。 grok { match => ["message","(?m)^# User@Host: %{USER:user}\[[^\]]+\] @ (?:(?<clienthost>\S*) )?\[(?:%{IP:clientip})?\]\s*# Thread_id: %{NUMBER:Thread_id:int}\s+Schema: %{WORD:Schema}\s+QC_hit: %{WORD:QC_hit}\s*# Query_time: %{NUMBER:query_time:float}\s+Lock_time: %{NUMBER:lock_time:float}\s+Rows_sent: %{NUMBER:rows_sent:int}\s+Rows_examined: %{NUMBER:rows_examined:int}\s*(?:use %{DATA:database};\s*)?SET timestamp=%{NUMBER:timestamp};\s*(?<query>(?<action>\w+)\s+.*)\n# Time:.*$"] } date { match => [ "timestamp", "UNIX" ] remove_field => [ "timestamp" ] } } output { elasticsearch { hosts => "IP:9200" index => "mysql-slow-%{+YYYY.MM.dd}" } }
filter: - query_string: query: "query_time: >=0.5" ## mysql slow 大於0.5s 報警。 ## kibana Query DSL 語法
強烈說明 若是對如上配置或者不明白,必定要先理解 logstash 、elastalert、 kibana dsl語法。