成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ElastAlert日志告警(郵件、企業(yè)微信)

Yuanf / 2503人閱讀

摘要:工作原理周期性的查詢并且將數(shù)據(jù)傳遞給規(guī)則類型,規(guī)則類型定義了需要查詢哪些數(shù)據(jù)。要做根據(jù)頻率變化的告警。

ElastAlert 工作原理
It works by combining Elasticsearch with two types of components, rule types and alerts. Elasticsearch is periodically queried and the data is passed to the rule type, which determines when a match is found. When a match occurs, it is given to one or more alerts, which take action based on the match.

周期性的查詢Elastsearch并且將數(shù)據(jù)傳遞給規(guī)則類型,規(guī)則類型定義了需要查詢哪些數(shù)據(jù)。

當(dāng)一個規(guī)則匹配觸發(fā),就會給到一個或者多個的告警,這些告警具體會根據(jù)規(guī)則的配置來選擇告警途徑,就是告警行為,比如郵件、企業(yè)微信等

elastalert文檔地址

安裝

使用官網(wǎng)的pip install elastalert安裝時,我這里報錯,所以改用了git clone到本地的方式
ElastAlert官方安裝流程

如果沒有pip安裝工具看下面流程
pip 安裝流程

依賴
yum install python-devel
sudo yum install openssl-devel 
配置
Next, open up config.yaml.example. In it, you will find several configuration options. ElastAlert may be run without changing any of these settings.
rules_folder is where ElastAlert will load rule configuration files from. It will attempt to load every .yaml file in the folder. Without any valid rules, ElastAlert will not start. ElastAlert will also load new rules, stop running missing rules, and restart modified rules as the files in this folder change. For this tutorial, we will use the example_rules folder.

這里我們復(fù)制config.yaml.exampleconfig.yaml,新建目錄rules

cp config.yaml.example config.yaml
mkdir rules
配置ES服務(wù)器信息

修改config.yaml文件如下,其他的配置不需要修改

# 這里指定了我們配置的規(guī)則的目錄
rules_folder: rules

# How often ElastAlert will query Elasticsearch
# The unit can be anything from weeks to seconds
# 每次間隔1分鐘觸發(fā)一次
run_every:
  minutes: 1

# ElastAlert will buffer results from the most recent
# period of time, in case some log sources are not in real time
buffer_time:
  minutes: 15

# The Elasticsearch hostname for metadata writeback
# Note that every rule can have its own Elasticsearch host
# 配置elasticsearch 的地址和端口
es_host: xxx.xx.xxx.xx
# The Elasticsearch port
es_port: 9200
配置rules規(guī)則

里面已經(jīng)給出了配置的范例,這里我們使用frequency的配置。要做根據(jù)頻率變化的告警。

[example_rules]# tree
.
├── example_cardinality.yaml
├── example_change.yaml
├── example_frequency.yaml
├── example_new_term.yaml
├── example_opsgenie_frequency.yaml
├── example_percentage_match.yaml
├── example_single_metric_agg.yaml
├── example_spike.yaml
└── jira_acct.txt

復(fù)制frequency的配置文件到新的rules目錄

cp example_rules/example_frequency.yaml  rules/
cd rules
mv example_frequency.yaml  app_frequency_mail.yaml
基于郵件的配置 郵件告警樣例

這里會詳細(xì)介紹下配置,但是只會用到個別字段

# Alert when the rate of events exceeds a threshold

# (Optional)
# Elasticsearch host
# 無需修改使用全局
# es_host: elasticsearch.example.com

# (Optional)
# Elasticsearch port
# es_port: 14900

# (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 unique
# 這里要定義一個規(guī)則名稱,而且要unique唯一
name: app frequency rule mail

# (Required)
# Type of alert.
# the frequency rule type alerts when num_events events occur with timeframe time
# 定義規(guī)則類型
type: frequency

# (Required)
# Index to search, wildcard supported
# 需要檢索的日志索引
index: logstash-app-prod*

# (Required, frequency specific)
# Alert when this many documents matching the query occur within a timeframe
# 命中五次
num_events: 5

# (Required, frequency specific)
# num_events must occur within this amount of time to trigger an alert
# 十分鐘之內(nèi)命中五次,就算是觸發(fā)一次規(guī)則
timeframe:
#  hours: 4
  minutes: 10

# 按照某個字段進行聚合,意思是aggreation_key會和rule的名稱拼接在一起作為一個組,多帶帶發(fā)送告警,相同的mesage是一個組
#aggregation_key:
#  - message

# 聚合2分鐘
aggregation:
  minutes: 2

# 不進行重復(fù)提醒的字段,和realert聯(lián)合使用,30分鐘內(nèi)這個query_key只告警一次
query_key:
  - message

realert:
  minutes: 30

# (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.html
# 這里按照正則匹配來查詢,可以看query-dsl里面的官方文檔
filter:
- query:
    regexp:
      category: "error-*"
#- term:
#    category: "error-*"

# 郵箱設(shè)置
smtp_host: smtp.qq.com
smtp_port: 465
smtp_ssl: true
# 發(fā)件箱的地址
from_addr: "[email protected]"
# 這個是指向的郵箱驗證的配置文件,有用戶名、和密碼,對于qq而言,這里面的密碼是授權(quán)碼,可以通過qq郵箱設(shè)置里面,開啟smtp的時候查看
smtp_auth_file: /home/elastalert/smtp_auth_file.yaml

# (Required)
# The alert is use when a match is found
# 定義告警類型是郵件提醒
alert:
- "email"

# 下面這些不配置,會發(fā)送一個默認(rèn)的告警模板,純文字太丑了,所以我們進行了格式化,發(fā)送一個html格式的
email_format: html

alert_subject: "app 正式環(huán)境 告警 {}"
# 這里使用python 的format 進行格式化
alert_subject_args:
- category

# 如果這個去掉,那么發(fā)送alert_text的同時,也會發(fā)送默認(rèn)模板內(nèi)容
alert_text_type: alert_text_only
# 下面這個是自己配置的
alert_text: "

{}


Click to Kibana

告警詳情

@timestamp:{}
@version:{}
_id:{}
_index:{}
_type:{}
appType:{}
appVersion:{}
business:{}
category:{}
geoip:{}
guid:{}
host:{}
message:{}
num_hits:{}
num_matches:{}
path:{}
server:{}
uid:{}
uri:{}
userAgent:{}
" # 這里需要配置area_text中出現(xiàn)的各個字段,其實跟sprintf一樣按照順序格式化的 alert_text_args: - message - "@timestamp" - "@version" - _id - _index - _type - appType - appVersion - business - category - geoip - guid - host - message - num_hits - num_matches - path - server - uid - uri - userAgent # (required, email specific) # a list of email addresses to send alerts to # 這里配置收件人的郵箱 email: - "[email protected]"
郵箱驗證配置

然后來看下郵箱驗證的配置,也就是smtp_auth_file.yaml

# 發(fā)件箱的qq郵箱地址,也就是用戶名
user: [email protected]
# 不是qq郵箱的登錄密碼,是授權(quán)碼
password: uxmmmmtefwqeibcjd

執(zhí)行的時候,很簡單,稍后我們看下配置supervisor高可用

nohup python -m elastalert.elastalert --rule app_frequency_mail.yaml --verbose &
配置企業(yè)微信告警

需要信息

部門

應(yīng)用

新建一個接收日志的部門,會分配部門id

新建一個發(fā)送日志的應(yīng)用程序,會有應(yīng)用id

在應(yīng)用的可見配置里面,配置上相關(guān)人員

這里我們使用一個開源企業(yè)微信發(fā)送插件
git地址:https://github.com/anjia0532/elastalert-wechat-plugin
插件使用說明
https://anjia0532.github.io/2017/02/16/elastalert-wechat-plugin/

按照創(chuàng)建郵件告警規(guī)則一樣,創(chuàng)建新的規(guī)則告警文件。其中從alert開始配置成新的告警方式

alert:
- "elastalert_modules.wechat_qiye_alert.WeChatAlerter"

alert_text: "
======start====== 

索引:{}

服務(wù)器:{}

接口:{}

告警:

{}"

alert_text_type: alert_text_only

# 企業(yè)微信告警的數(shù)據(jù)不需要太多,太長
alert_text_args:
- _index
- server
- path
- message

#后臺登陸后【設(shè)置】->【權(quán)限管理】->【普通管理組】->【創(chuàng)建并設(shè)置通訊錄和應(yīng)用權(quán)限】->【CorpID,Secret】
#設(shè)置微信企業(yè)號的appid
corp_id: wxea4f5f73xxxx
#設(shè)置微信企業(yè)號的Secret
secret: "xxxxxBGnxxxxxxxxxrBNHxxxxxxxE"
#后臺登陸后【應(yīng)用中心】->【選擇應(yīng)用】->【應(yīng)用id】
#設(shè)置微信企業(yè)號應(yīng)用id
agent_id: 100xxxx
#部門id
party_id: 14
#用戶微信號
user_id: "@all"
# 標(biāo)簽id
#tag_id:
企業(yè)微信配置注意

查看作者的另一個項目https://github.com/anjia0532/weixin-qiye-alert 發(fā)現(xiàn)對于user_id,tag_id的配置是有規(guī)則的:

如果指定標(biāo)簽名稱不存在,會自動通過api創(chuàng)建一個標(biāo)簽(處于鎖定狀態(tài)),需要管理員,手動解鎖,并且添加成員 如果指定標(biāo)簽下沒有成員(標(biāo)簽添加部門無效),則會根據(jù)cp.properties指定的部門idPartyId和人員idUserId進行發(fā)送 如果部門下沒有成員,而且指定的用戶也沒有關(guān)注該企業(yè)號,則會將信息推送給該企業(yè)號全部已關(guān)注成員,測試時需謹(jǐn)記

這正合我們的心意,因為我們不會只給一個人發(fā)送消息!
我們需要的是,發(fā)給所有日志告警部門的小伙伴,所以我們要怎么做呢?!!

經(jīng)過測試,我將user_id注釋掉,并不能發(fā)送消息, 理想狀態(tài)不應(yīng)該是刪掉user_id,就只發(fā)送給全部門么?然而并不是噠~,我們查看下源碼(發(fā)現(xiàn)作者簡直是每一行代碼都有注釋~太好啦~)

我們會看到作者的注釋,全部用@all~~ ,所以能看到上面user_id 我配置的是@all

self.party_id = self.rule.get("party_id")       #部門id
self.user_id = self.rule.get("user_id", "")     #用戶id,多人用 | 分割,全部用 @all
self.tag_id = self.rule.get("tag_id", "")       #標(biāo)簽id
企業(yè)微信告警樣例

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29866.html

相關(guān)文章

  • 【容器云 UK8S】日志監(jiān)控方案:監(jiān)控中心操作指南之監(jiān)控中心概述,開啟監(jiān)控中心,添加監(jiān)控目標(biāo)和添加接

    摘要:添加接收人監(jiān)控中心支持添加郵箱及微信兩種告警,需要注意的是,添加郵箱告警的話,需要預(yù)先配置發(fā)件服務(wù)器。由于監(jiān)控中心配置了一條告警規(guī)則,只要企業(yè)微信的信息填寫正確,一般分鐘以內(nèi)均可從企業(yè)微信中獲取到告警信息。監(jiān)控中心概述監(jiān)控中心是UK8S提供的產(chǎn)品化監(jiān)控方案,提供基于Prometheus的產(chǎn)品解決方案,涵蓋Prometheus集群的全生命周期管理,以及告警規(guī)則配置、報警設(shè)置等功能,省去了自行搭...

    Tecode 評論0 收藏0
  • 構(gòu)建與定制:唯品會 PaaS 基于 Kubernetes 的實踐

    摘要:基于年底或年初沒有推廣的現(xiàn)狀,唯品會部門目前已經(jīng)做了兩年的時間。唯品會現(xiàn)狀唯品會目前線上有一千多個域,每個域之間相互的依賴比較復(fù)雜,每次的部署發(fā)布困難。這是唯品會的架構(gòu),主要包含持續(xù)集成和持續(xù)部署。 數(shù)人云上海&深圳兩地容器之Mesos/K8S/Swarm三國演義的嘉賓精彩實錄第三更來啦。唯品會是數(shù)人云Meetup的老朋友,去年曾做過RPC服務(wù)框架和Mesos容器化的分享。本次分享中,...

    JackJiang 評論0 收藏0
  • 全球說:要給 OneAlert 點100個贊

    摘要:也有幸和全球說運維負(fù)責(zé)人李云偉先生進行一次深入溝通。面臨挑戰(zhàn)全球說的應(yīng)用主要是在線系統(tǒng)和移動為主。是北京科技有限公司旗下產(chǎn)品,中國首個模式的,集成國內(nèi)外主流監(jiān)控支撐系統(tǒng),實現(xiàn)一個平臺上集中處理所有事件,提升可靠性。 客戶背景 「全球說」 Talkmate,是北京酷語時代教育科技有限公司(酷語科技)旗下產(chǎn)品,酷語科技是一家誕生于中國的語言技術(shù)公司,致力于為全球用戶提供一個全新的多語言學(xué)習(xí)...

    txgcwm 評論0 收藏0
  • 中小企業(yè) IT 運維福利:快速構(gòu)建 on-call 機制

    摘要:避免手機網(wǎng)絡(luò)不穩(wěn)定引起的微信郵件移動不及時現(xiàn)象,基本上電話是不可抗拒的,除非關(guān)機。中小企業(yè)運維支撐同學(xué)就可構(gòu)建一個團隊,告警事件的處理會逐漸進入正軌,并有序處理。結(jié)束語這次新版本發(fā)布,已經(jīng)實現(xiàn)兩個中國領(lǐng)先通知渠道領(lǐng)先和接入監(jiān)控平臺領(lǐng)先。 大多 IT 運營支撐同學(xué)都有過深夜業(yè)務(wù)應(yīng)用突然故障的經(jīng)歷,監(jiān)控系統(tǒng)準(zhǔn)確告警,但是白天筋疲力盡的運維同學(xué)在熟睡中,經(jīng)常會遺漏告警提醒;往往是接到主管電話...

    fobnn 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<