亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

[運維]ELK實現日志監控告警

2024-06-28 16:03:08
字體:
來源:轉載
供稿:網友

ELK(Elasticsearch+LogStash+Kibana),最近使用ELK處理了一些平臺日志,下面以「MySQL連接數監控」記錄部署流程。

背景

平臺缺失針對mysql連接數的告警,一旦mysql連接數打滿,將直接影響平臺的使用。另外,對于日志信息既沒有可視化界面進行操作,也沒有一套有效的實時監控策略。

收益 1. 當異常觸發時能夠及時通過短信、郵件等方式通知相關負責人員 2. 建立日志可視化界面,使得日志分析更加便捷

1. 軟件版本

軟件 版本
Logstash v2.3.4
Filebeat v1.3.1
ElasticSearch v2.3.3
Kibana v4.5.1
ElastAlert v0.1.4

2. 解決方案

2.1. 監控架構圖

mysql_connection_monitor

2.2. mysql連接數查詢

mysql的連接通常是一個請求占用一個連接,如果該請求(insert,delete,update,select)長時間沒有執行完畢,則會造成連接的堆積,迅速地消耗完數據庫的連接數,目前ph平臺線上數據庫的最大連接數是1000個。

這里使用一個shell腳本來持續監控mysql連接數情況,每分鐘查詢一次mysql的連接數,并寫入到日志文件

日志樣例參考:mysql連接數日志樣例 shell腳本: mysql連接數查詢腳本 輪詢機制: crontab任務,每分鐘輪詢一次

# query mysql connection* * * * * /bin/sh /home/disk5/query_mysql_connection_log.sh > /dev/null

mysql連接數日志樣例

2017-01-20 00:01:01 machine_0001=42017-01-20 00:01:01 machine_0002=562017-01-20 00:01:01 machine_0003=132017-01-20 00:01:01 machine_0004=872017-01-20 00:01:01 total_connection_number=160==========

2.3. FileBeat配置

FileBeat配置文件請參見:附錄-filebeat配置文件

FileBeat負責監控mysql連接數查詢產生的log(參考mysql連接數日志樣例),并將不以===開頭的內容上報到LogStash

配置信息

配置項 配置值
是否合并多行 No
輪詢時間間隔 120s
文檔類型 mysql_connection_log
監控路徑 /home/disk5/logs/mysql_connection_*
篩選規則 不以===開頭的log

2.4. LogStash配置

LogStash配置文件請參見:附錄-logstash配置文件

正則匹配使用grok debug工具進行調試(grok debug)

描述

收集FileBeat發送過來的log信息,獲取日志時間和錯誤信息

輸入

2017-01-20 10:18:01 machine_0001=62

正則匹配

%{TIMESTAMP_ISO8601:time}/s+%{USER:machine}=%{NUMBER:connection_num}其中:TIMESTAMP_ISO8601、USER、NUMBER是LogStash的grok pattern變量

將得到: time字段:日志時間 machine字段:機器host connection_num字段:機器持有mysql的連接數

輸出

time = 2017-01-20 10:18:01machine = machine_0001connection_num = 62

3.5. Elasticsearch配置

Elasticsearch模板請參見:附錄-elasticsearch模板

模板名稱:template_mysql_connection_log ES索引(index): mysql-connection-log-%{+YYYY.MM.dd} ES類型(type): mysql_connection_log

字段信息

字段名 字段類型 備注
message string 原始log信息
tags string
@timestamp date log產生時間
host string
count long
source string
input_type string
type string
offset long
@version string
machine string 機器host
connection_num long 機器持有mysql的連接數

3.6. Kibana查看各機器連接數趨勢

趨勢圖 ph_mysql_connection_line_chart_sample

3.7. ElastAlert配置

ElastAlert配置文件請參見:附錄-elastalert配置文件

每10秒輪詢Elasticsearch的mysql-connection-log-*索引,若在10分鐘內mysql總連接數超過750個的次數超過2次,則向相關人員發送告警短信

附錄

mysql連接數查詢腳本

#!/bin/bashsource /etc/PRofile# Title: Online Query Mysql Connection# Author: ouyangyewei## Create: ouyangyewei, 2017/01/18# Update: ouyangyewei, 2017/01/19, add total_connection_numberFID=`readlink -f $0 | md5sum | awk '{print $1}'`LOG_FILE=/home/disk5/logs/mysql_connection_$(date +"%Y-%m-%d").log# ----------------------------------------------function get_process_list() { mysql -uroot / -pxxx / -hxxx / -P3306 / -e 'show processlist' / --silent / --skip-column-names | awk ' { if ($3=="user" && $4!="NULL") { split($4, machine, ":"); print machine[1]; } if ($3!="user" && $4!="user"){ split($3, machine, ":"); print machine[1]; } }' | sort | uniq -c > /tmp/$FID}function run() { # get current mysql connection status get_process_list; TIMESTAMP=`date +"%F %T"` if [[ -f /tmp/$FID ]]; then sum=0 while read line do machine=`echo $line | awk '{print $2}'` connect_number=`echo $line | awk '{print $1}'` sum=$(($sum+$connect_number)) echo "$TIMESTAMP $machine=$connect_number" >> $LOG_FILE done < /tmp/$FID echo "$TIMESTAMP total_connection_number=$sum" >> $LOG_FILE echo "---------------------------------------" >> $LOG_FILE # remove tmp file rm -rf /tmp/$FID fi}# ----------------------------------------------# staruprun

FileBeat配置文件

filebeat: prospectors: - paths: - /home/disk5/logs/mysql_connection_* input_type: log document_type: mysql_connection_log ignore_older: 84h scan_frequency: 120s exclude_lines: ["^==="]output: logstash: hosts: ["xxx:8044"]logging: level: debug to_files: true to_syslog: false files: path: /var/log/mybeat name: mybeat.log keepfiles: 7

LogStash配置文件

input { beats { port => 8044 }}filter { if [type] == "mysql_connection_log" { grok { patterns_dir => ["/conf/patterns"] match => { "message" => "%{TIMESTAMP_ISO8601:time}/s+%{USER:machine}=%{NUMBER:connection_num}" } remove_field => ["beat"] } date { match => ["time", "yy-MM-dd HH:mm:ss"] remove_field => ["time"] } }}output { if [type]=="mysql_connection_log" { elasticsearch { hosts => ["xxx:8096","xxx:8096"] index => "mysql-connection-log-%{+YYYY.MM.dd}" } }}

Elasticsearch模板

curl -XPUT 'localhost:9200/_template/template_mysql_connection_log?pretty' -d'{ "order": 0, "template": "mysql-connection-log-*", "settings": {}, "mappings": { "palo-log": { "properties": { "tags": { "index": "not_analyzed", "type": "string" }, "message": { "index": "not_analyzed", "type": "string" }, "@version": { "type": "string" }, "@timestamp": { "format": "strict_date_optional_time||epoch_millis", "type": "date" }, "source": { "index": "not_analyzed", "type": "string" }, "offset": { "type": "long" }, "type": { "index": "not_analyzed", "type": "string" }, "input_type": { "index": "not_analyzed", "type": "string" }, "count": { "type": "long" }, "host": { "index": "not_analyzed", "type": "string" }, "machine": { "index": "not_analyzed", "type": "string" }, "connection_num": { "index": "not_analyzed", "type": "long" } } } }, "aliases": {}}'

ElastAlert配置文件

# Alert when the rate of events exceeds a threshold# (Optional)# Elasticsearch hostes_host: xx.xx.xx.xx# (Optional)# Elasticsearch portes_port: 8096# (OptionaL) Connect with SSL to Elasticsearch#use_ssl: True# (Optional) basic-auth username and passWord for Elasticsearch#es_username: someusername#es_password: somepassword# (Required)# Rule name, must be uniquename: MysqlConnectionRule# (Required)# Type of alert.# the frequency rule type alerts when num_events events occur with timeframe timetype: frequency# type: any# (Required)# Index to search, wildcard supportedindex: mysql-connection-log-*# (Required, frequency specific)# Alert when this many documents matching the query occur within a timeframenum_events: 3# (Required, frequency specific)# num_events must occur within this amount of time to trigger an alerttimeframe: minutes: 10 # hours: 1# (Required)# A list of Elasticsearch filters used for find events# These filters are joined with AND and nested in a filtered query# For more info: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl.htmlfilter:- range: connection_num: from: 750# (Required)# The alert is use when a match is foundalert:- commandcommand: [ "curl", "-X POST", "-d", '{"appId":"xxx", "token":"xxx", "alertList":[{"channel":"sms", "description":"Mysql連接數告警:當前總連接數為%(connection_num)s!", "receiver":"ouyangyew"}]}', "http://xxx.baidu.com/alert/push"]# (required, email specific)# a list of email addresses to send alerts to# email:# - "elastalert@example.com"
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲丁香婷深爱综合| 国产成人精品最新| 国产做受高潮69| 97国产suv精品一区二区62| 亚洲国产精品成人va在线观看| 日韩美女视频在线观看| 日韩亚洲精品视频| 国产精品激情av在线播放| 中文字幕亚洲欧美在线| 亚洲美女又黄又爽在线观看| 国产精品久久久久久久久免费| 亚洲精品美女免费| 91精品国产九九九久久久亚洲| 久久人人爽国产| 亚洲福利在线观看| 日韩一区二区精品视频| 国产精品69精品一区二区三区| 成人黄色大片在线免费观看| 一区二区欧美日韩视频| 日本欧美黄网站| 中文字幕亚洲综合久久| 国模极品一区二区三区| 狠狠久久五月精品中文字幕| 日韩视频永久免费观看| 国产日韩亚洲欧美| 精品国产精品三级精品av网址| 成人免费在线视频网址| 国产一区二区激情| 性欧美暴力猛交69hd| 清纯唯美亚洲激情| 久久久国产在线视频| 日本高清+成人网在线观看| 日韩电影中文字幕在线观看| 中文字幕最新精品| 久久久亚洲影院| 久久99国产精品自在自在app| 狠狠躁夜夜躁人人爽超碰91| 欧美日韩在线视频观看| 国产精品∨欧美精品v日韩精品| 热99久久精品| 91精品免费视频| 精品亚洲va在线va天堂资源站| 欧美日韩美女在线观看| 国产在线播放不卡| 日韩精品中文字幕在线| 欧美性xxxx18| 97视频在线免费观看| 成人免费网视频| 亚洲精品视频中文字幕| 欧美日韩一区二区精品| 红桃视频成人在线观看| 91探花福利精品国产自产在线| 欧美日韩一区二区三区在线免费观看| 国产欧美日韩综合精品| 91国内揄拍国内精品对白| 国产精品久久久久国产a级| 欧美亚洲视频在线观看| 97在线视频免费观看| 亚洲国产精品悠悠久久琪琪| 91在线免费视频| 欧美日韩综合视频网址| 日韩激情视频在线| 中文字幕一区二区三区电影| 欧美成人免费全部观看天天性色| 久久婷婷国产麻豆91天堂| 久久久久久午夜| 久久久久久久国产精品| 亚洲国产精久久久久久| 国产精品视频99| 日本a级片电影一区二区| 国产精品视频最多的网站| 欧美亚洲视频在线观看| 日韩中文字幕在线视频| 欧美丰满少妇xxxxx做受| 91视频88av| 欧亚精品在线观看| 亚洲人线精品午夜| 欧美日韩免费观看中文| 久久久久久网站| 一区二区欧美在线| 欧美日韩一区二区三区| 亚洲激情自拍图| 成人网在线视频| 这里只有精品视频在线| 美女国内精品自产拍在线播放| 久久久久国色av免费观看性色| 欧美激情在线有限公司| 亚洲春色另类小说| 91国偷自产一区二区三区的观看方式| 久久青草精品视频免费观看| 欧美电影在线播放| 国产成人高清激情视频在线观看| 欧美美女操人视频| 欧美精品www在线观看| 欧美韩国理论所午夜片917电影| 国产精品一区久久久| 97精品一区二区视频在线观看| 久久国产色av| 成人乱人伦精品视频在线观看| 日韩精品在线免费播放| 成人国产精品久久久久久亚洲| 高清亚洲成在人网站天堂| 91高清免费视频| 久久精品99国产精品酒店日本| 国产精品女主播视频| 成人免费观看49www在线观看| 亚洲美女福利视频网站| 亚洲色图狂野欧美| 国产精品免费久久久| 日韩免费在线免费观看| 91久久久久久久| 久久久精品国产亚洲| 91精品久久久久久久久久久| 国产精品男人爽免费视频1| 热久久这里只有精品| 57pao国产成人免费| 欧美日韩国产成人在线观看| 亚洲有声小说3d| 亚洲人成网站777色婷婷| 欧美一区深夜视频| 精品福利免费观看| 日韩在线中文字幕| 国产精品高潮粉嫩av| 亚洲视频在线观看视频| 久久久精品一区二区三区| 亚洲一品av免费观看| 亚洲精品久久久久久久久久久久久| 在线观看精品国产视频| 亚洲国产高清福利视频| 欧美日韩美女在线观看| 92版电视剧仙鹤神针在线观看| 国产在线精品成人一区二区三区| 国产精品丝袜久久久久久不卡| 日韩在线视频播放| 久久人91精品久久久久久不卡| 97免费视频在线播放| 在线看片第一页欧美| 日韩一区二区精品视频| 在线午夜精品自拍| 午夜精品一区二区三区在线播放| 成人有码视频在线播放| 成年人精品视频| 亚洲第一色在线| 欧美美女15p| 中文字幕久精品免费视频| 国产一区欧美二区三区| 亚洲成人久久电影| 久久精品国产电影| www.色综合| 日韩视频永久免费观看| 亚洲国产小视频在线观看| 国产精品免费久久久久久| 91精品久久久久| 欧美一级成年大片在线观看| 亚洲国产天堂网精品网站| 欧美激情喷水视频| 日韩欧美国产免费播放| 欧美做受高潮1| 色综合视频一区中文字幕| 91精品一区二区| 亚洲欧美国产精品久久久久久久| 在线视频日本亚洲性| 精品视频偷偷看在线观看| 亚洲丝袜在线视频|