国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

Yuanf / 2495人閱讀

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

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并且將數據傳遞給規則類型,規則類型定義了需要查詢哪些數據。

當一個規則匹配觸發,就會給到一個或者多個的告警,這些告警具體會根據規則的配置來選擇告警途徑,就是告警行為,比如郵件、企業微信等

elastalert文檔地址

安裝

使用官網的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文件如下,其他的配置不需要修改

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

# How often ElastAlert will query Elasticsearch
# The unit can be anything from weeks to seconds
# 每次間隔1分鐘觸發一次
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規則

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

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

# (Required)
# Type of alert.
# the frequency rule type alerts when num_events events occur with timeframe time
# 定義規則類型
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
# 十分鐘之內命中五次,就算是觸發一次規則
timeframe:
#  hours: 4
  minutes: 10

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

# 聚合2分鐘
aggregation:
  minutes: 2

# 不進行重復提醒的字段,和realert聯合使用,30分鐘內這個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
# 發件箱的地址
from_addr: "xx@qq.com"
# 這個是指向的郵箱驗證的配置文件,有用戶名、和密碼,對于qq而言,這里面的密碼是授權碼,可以通過qq郵箱設置里面,開啟smtp的時候查看
smtp_auth_file: /home/elastalert/smtp_auth_file.yaml

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

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

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

# 如果這個去掉,那么發送alert_text的同時,也會發送默認模板內容
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中出現的各個字段,其實跟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

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

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

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

需要信息

部門

應用

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

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

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

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

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

alert:
- "elastalert_modules.wechat_qiye_alert.WeChatAlerter"

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

索引:{}

服務器:{}

接口:{}

告警:

{}"

alert_text_type: alert_text_only

# 企業微信告警的數據不需要太多,太長
alert_text_args:
- _index
- server
- path
- message

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

查看作者的另一個項目https://github.com/anjia0532/weixin-qiye-alert 發現對于user_id,tag_id的配置是有規則的:

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

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

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

我們會看到作者的注釋,全部用@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
企業微信告警樣例

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29866.html

相關文章

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

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

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

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

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

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

    txgcwm 評論0 收藏0
  • 中小企業 IT 運維福利:快速構建 on-call 機制

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

    fobnn 評論0 收藏0

發表評論

0條評論

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