成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

Yuanf / 2589人閱讀

摘要:工作原理周期性的查詢并且將數(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ù)。

當一個規(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.

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

cp config.yaml.example config.yaml
mkdir rules
配置ES服務器信息

修改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

復制frequency的配置文件到新的rules目錄

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

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

# 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

# 不進行重復提醒的字段,和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-*"

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

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

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

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

# 如果這個去掉,那么發(fā)送alert_text的同時,也會發(fā)送默認模板內(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: - "xxx@xxx.com"
郵箱驗證配置

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

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

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

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

需要信息

部門

應用

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

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

在應用的可見配置里面,配置上相關人員

這里我們使用一個開源企業(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====== 

索引:{}

服務器:{}

接口:{}

告警:

{}"

alert_text_type: alert_text_only

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

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

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

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

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

經(jīng)過測試,我將user_id注釋掉,并不能發(fā)送消息, 理想狀態(tài)不應該是刪掉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", "")       #標簽id
企業(yè)微信告警樣例

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

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

相關文章

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

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

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

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

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

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

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

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

    fobnn 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<