;政府;提供Grafana

提供Grafana

在以前版本的Grafana中,您只能使用API来提供数据源和仪表板。但这需要在开始创建仪表板之前运行服务,而且还需要为HTTP API设置凭据。在v5.0中,我们决定通过添加一个使用配置文件的新的活动配置系统来改进这种体验。这将使GitOps更加自然,因为可以通过可以版本控制的文件定义数据源和仪表板。我们希望扩展这个系统,以便在以后添加对用户、组织和警报的支持。

配置文件

看到配置有关可以配置的内容的详细信息grafana.ini

配置文件位置

  • 的默认配置WORKING_DIR / conf / defaults.ini美元
  • 自定义配置WORKING_DIR / conf / custom.ini美元
  • 方法可以覆盖自定义配置文件路径——配置参数

注意:如果您已经使用黛比rpm包,则配置文件位于/etc/grafana/grafana.ini.该路径在Grafana初始化中指定。d脚本使用——配置文件参数。

使用环境变量

可以在所有3种配置类型中使用环境变量插值。允许的语法是ENV_VAR_NAME美元$ {ENV_VAR_NAME}并且只能用于值,而不能用于键或配置的更大部分。它在仪表板的定义文件中不可用,只有在仪表板配置配置中不可用。例子:

数据源:- name: Graphite url: http://localhost:$PORT user: $ user secureJsonData: password: $ password

如果你有一个字面量在你的价值和要避免插值,$ $可以使用。


配置管理工具

目前我们不提供任何用于配置Grafana的脚本/清单。我们认为,与其花时间为每个工具学习和创建脚本/清单,不如把时间花在让Grafana更容易提供上。因此,我们非常依赖社区的专业知识。

工具 项目
木偶 https://forge.puppet.com/puppet/grafana
Ansible https://github.com/cloudalchemy/ansible-grafana
厨师 https://github.com/JonathanTron/chef-grafana
Saltstack https://github.com/salt-formulas/salt-formula-grafana
Jsonnet https://github.com/grafana/grafonnet-lib/

数据源

该特性从v5.0开始可用

中添加一个或多个YAML配置文件,可以在Grafana中管理数据源配置/数据源目录中。每个配置文件可以包含一个列表数据源这将在启动期间被添加或更新。如果数据源已经存在,那么Grafana会更新它以匹配配置文件。配置文件还可以包含应该删除的数据源列表。这个列表叫做deleteDatasources.中列出的数据源将被删除deleteDatasources在插入/更新它们之前数据源列表。

运行多个Grafana实例

如果您正在运行Grafana的多个实例,那么如果它们具有不同的版本,则可能会遇到问题datasource.yaml配置文件。解决此问题的最佳方法是向配置中的每个数据源添加版本号,并在更新配置时增加版本号。Grafana只会更新与配置中指定的版本号相同或更低的数据源。这样,如果新配置与旧配置同时重新启动,旧配置就不能覆盖新配置。

数据源配置文件示例

deleteDatasources: - name: Graphite orgId: 1 #要插入/更新的数据源列表,这取决于数据库中可用的数据源:# 名称。Required - name: Graphite # 数据源类型。所需类型:graphite # 访问模式。代理或直接(用户界面中的服务器或浏览器)。必需访问:代理#  org id。如果未指定,则默认为orgId 1 orgId: 1 # 自定义UID,该UID可用于在配置的其他部分引用此数据源,如果未指定,则自动生成UID: my_unique_uid #  url url: http://localhost:8080 # 数据库用户,如果使用user: # 数据库名称,如果使用database: #  enable/disable basic auth basicAuth: #  basic auth username basicAuthUser:# 启用/禁用凭据标头withCredentials: # 标记为默认数据源。每个org最多一个isDefault: # 字段,将被转换为json并存储在jsonData jsonData: graphiteVersion: '1.1' tlsAuth: true tlsAuthWithCACert: true #  json对象。secureJsonData: tlsCACert:“…“tlsClientCert:”……“tlsClientKey:”……' # 数据库密码,如果使用password: # 基本认证密码basicAuthPassword: version: 1 # 允许用户从UI编辑数据源。 editable: false

每个数据源的自定义设置

有关具体的配置示例,请参阅每个数据源文档。

数据源 Misc
Elasticsearch Elasticsearch使用数据库属性来配置数据源的索引

JSON数据

因为不是所有数据源都有相同的配置设置,所以我们只使用最常见的配置设置作为字段。其余的应该作为json blob存储在jsonData字段。下面是核心数据源使用的最常见的设置。

注意:数据源标记HTTP *下面是所有使用HTTP协议进行通信的数据源,例如除MySQL、PostgreSQL和MSSQL外的所有核心数据源插件。

的名字 类型 数据源 描述
tlsAuth 布尔 HTTP *MySQL 使用在secure json数据中配置的客户端证书启用TLS身份验证
tlsAuthWithCACert 布尔 HTTP *、MySQL、PostgreSQL 使用CA证书启用TLS认证
tlsSkipVerify 布尔 HTTP *、MySQL、PostgreSQL、MSSQL 控制客户端是否验证服务器的证书链和主机名。
serverName 字符串 HTTP *,该软件 可选的。控制用于证书公共名称/主题替代名称验证的服务器名称。默认使用数据源URL。
超时 字符串 HTTP * 请求超时(以秒为单位)。覆盖dataproxy。超时选项
graphiteVersion 字符串 石墨 石墨的版本
timeInterval 字符串 Prometheus, Elasticsearch, InfluxDB, MySQL, PostgreSQL和MSSQL 应用于此数据源的最小间隔/步长值。
httpMode 字符串 Influxdb HTTP方法。' GET ', ' POST ',默认为GET
maxSeries 数量 Influxdb Grafana处理的最大序列/表数
httpMethod 字符串 普罗米修斯 HTTP方法。' GET ', ' POST ',默认为POST
customQueryParameters 字符串 普罗米修斯 查询要添加的参数,作为url编码的字符串。
manageAlerts 布尔 普罗米修斯和洛基 通过Alerting UI管理警报
esVersion 字符串 Elasticsearch (如Elasticsearch版本。7.0.07.6.1)
timeField 字符串 Elasticsearch 应该使用哪个字段作为时间戳
时间间隔 字符串 Elasticsearch 索引日期时间格式。nil(无模式)、“每小时”、“每日”、“每周”、“每月”或“每年”
logMessageField 字符串 Elasticsearch 日志消息应该使用哪个字段
logLevelField 字符串 Elasticsearch 应该使用哪个字段来指示日志消息的优先级
maxConcurrentShardRequests 数量 Elasticsearch 每个节点执行的每个子搜索请求的最大并发分片请求数。如果esVersion大于或等于7.0.0,则默认为5。当esVersion小于7.0.0且大于等于5.6.0时,默认值为256。选项在esVersion小于5.6.0时被忽略。
sigV4Auth 布尔 Elasticsearch和普罗米修斯 启用SigV4的使用
sigV4AuthType 字符串 Elasticsearch和普罗米修斯 SigV4身份验证提供者。违约/证书/密钥
sigV4ExternalId 字符串 Elasticsearch和普罗米修斯 可选SigV4外部ID
sigV4AssumeRoleArn 字符串 Elasticsearch和普罗米修斯 可选的SigV4 ARN角色
sigV4Region 字符串 Elasticsearch和普罗米修斯 SigV4 AWS地区
sigV4Profile 字符串 Elasticsearch和普罗米修斯 可选SigV4凭据配置文件
authType 字符串 Cloudwatch 身份验证提供者。违约/证书/密钥
externalId 字符串 Cloudwatch 可选的外部ID
assumeRoleArn 字符串 Cloudwatch 可选的ARN角色
defaultRegion 字符串 Cloudwatch 可选的默认AWS区域
customMetricsNamespaces 字符串 Cloudwatch 自定义度量的名称空间
配置文件 字符串 Cloudwatch 可选的凭证资料
tsdbVersion 字符串 OpenTSDB 版本
tsdbResolution 字符串 OpenTSDB 决议
sslmode 字符串 PostgreSQL SSLmode。' disable ', ' require ', ' verify-ca '或' verify-full '
tlsConfigurationMethod 字符串 PostgreSQL SSL证书配置,通过“文件路径”或“文件内容”
sslRootCertFile 字符串 PostgreSQL,该软件 SSL服务器根证书文件,Grafana用户必须可读
sslCertFile 字符串 PostgreSQL SSL客户端证书文件,Grafana用户必须可读
sslKeyFile 字符串 PostgreSQL SSL客户端密钥文件,必须由只有Grafana用户
加密 字符串 该软件 连接SSL加密处理。' disable ', ' false '或' true '
postgresVersion 数量 PostgreSQL Postgres版本作为一个数字(903/904/905/906/1000)表示v9.3, v9.4,…,v10
timescaledb 布尔 PostgreSQL 启用TimescaleDB扩展的使用
maxOpenConns 数量 MySQL, PostgreSQL和MSSQL 到数据库的最大打开连接数(Grafana v5.4+)
maxIdleConns 数量 MySQL, PostgreSQL和MSSQL 空闲连接池中的最大连接数(Grafana v5.4+)
connMaxLifetime 数量 MySQL, PostgreSQL和MSSQL 一个连接可以被重用的最长时间(以秒为单位)(Grafana v5.4+)
keepCookies 数组 HTTP * 在与数据源通信时需要传递的cookie

安全的Json数据

{“authType”:“钥匙”,“defaultRegion”:“us-west-2”、“timeField”:“@timestamp”}

Secure json数据是将被加密的设置的映射秘密密钥从Grafana配置。这样做的目的只是向应用程序的用户隐藏内容。这应该用于存储Grafana将附加到服务器端请求的TLS证书和密码。所有这些设置都是可选的。

注意:数据源标记HTTP *下面是所有使用HTTP协议进行通信的数据源,例如除MySQL、PostgreSQL和MSSQL外的所有核心数据源插件。

的名字 类型 数据源 描述
tlsCACert 字符串 HTTP *、MySQL、PostgreSQL 发出请求的CA证书
tlsClientCert 字符串 HTTP *、MySQL、PostgreSQL 传出请求的TLS客户端证书
tlsClientKey 字符串 HTTP *、MySQL、PostgreSQL 传出请求的TLS客户端密钥
密码 字符串 HTTP *、MySQL、PostgreSQL、MSSQL 密码
basicAuthPassword 字符串 HTTP * 基本身份验证密码
accessKey 字符串 Cloudwatch 连接到Cloudwatch的访问键
secretKey 字符串 Cloudwatch 连接到Cloudwatch的密钥
sigV4AccessKey 字符串 Elasticsearch和普罗米修斯 SigV4访问密钥。使用密钥认证提供程序时必需
sigV4SecretKey 字符串 Elasticsearch和普罗米修斯 SigV4密钥。使用密钥认证提供程序时必需

为数据源自定义HTTP标头

通过Grafanas配置管理的数据源可以配置为向所有到该数据源的请求添加HTTP头。中配置的报头名称jsonData字段和报头值应该配置在secureJsonData

apiVersion: 1数据源:- name: Graphite jsonData: httpHeaderName1: 'HeaderName' httpHeaderName2: 'Authorization' secureJsonData: httpHeaderValue1: 'HeaderValue' httpHeaderValue2: ' bearxxxxxxxxx '

插件

该特性从v7.1中可用

的YAML配置文件中添加一个或多个YAML配置文件,可以在Grafana中管理插件应用程序配置/插件目录中。每个配置文件可以包含一个列表应用程序这将在启动期间更新。Grafana更新每个应用程序以匹配配置文件。

注意:这个特性允许你提供插件配置,而不是插件本身。这些插件必须已经安装在grafana实例上

插件配置文件示例

apiVersion: 1 apps: # 应用的类型,插件标识符。Required - type: raintank-worldping-app #  Org ID。默认为1,除非输入org_name,否则输入org_id: 1 # 组织名称。除非没有指定org_id,否则将覆盖org_id。# 禁用应用程序。默认为false。禁用:false # <映射将被转换为json并存储在jsonData中的>字段。自定义每个应用程序。jsonData: # key/值对字符串到对象key: value # 字段,将转换为json,加密并存储在secureJsonData中。自定义每个应用程序。secureJsonData: #键/值对字符串到字符串键:值

指示板

中添加一个或多个YAML配置文件,可以在Grafana中管理仪表板配置/仪表盘目录中。每个配置文件可以包含一个列表指示板供应商将仪表板从本地文件系统加载到Grafana。

仪表板提供程序配置文件看起来像这样:

apiVersion: 1 providers: # 唯一的提供者名称。Required - name: '唯一提供者名称' #  Org id。默认为1 orgId: 1 # 仪表盘文件夹名称。# 文件夹UID。如果没有指定folderUid,将自动生成。默认为'file'类型:file # 禁用仪表板删除disableDeletion: false #  Grafana扫描更改的仪表板的频率updateIntervalSeconds: 10 # 允许从UI更新已提供的仪表板allowUiUpdates: false options: # 路径。当使用'file'类型路径:/var/lib/grafana/dashboards # 使用文件系统中的文件夹名称在Grafana foldersFromFilesStructure: true

当Grafana启动时,它将更新/插入配置路径中可用的所有仪表板。然后在这条路上updateIntervalSeconds寻找更新的json文件,并将其更新/插入到数据库中。

注意:的情况下,将仪表板提供给General文件夹文件夹选项缺失或为空。

对预置的指示板进行更改

可以在Grafana UI中对预置的仪表板进行更改。但是,不可能将更改自动保存回供应源。如果allowUiUpdates被设置为真正的您可以对预置的仪表板进行更改保存然后更改将被持久化到Grafana数据库。

注意:如果从UI保存了预置的仪表板,然后从源更新了它,那么存储在数据库中的仪表板总是会被覆盖。的版本属性不会影响这一点,即使它低于现有的仪表板。

如果从UI保存了预置的仪表板,并且删除了源,则存储在数据库中的仪表板将被删除,除非配置选项disableDeletion设置为true。

如果allowUiUpdates被配置为时,您无法对预置的指示板进行更改。当你点击保存, Grafana提出了一个无法保存预置的仪表板对话框。下面的截图说明了这种行为。

Grafana提供了导出仪表板的JSON定义的选项。要么复制JSON到剪贴板将JSON保存到文件可以帮助您将指示板更改同步回供应源。

注意:使用时输入字段中的JSON定义复制JSON到剪贴板将JSON保存到文件将有id字段将自动删除,以帮助配置工作流。

可重用的仪表板的url

如果JSON文件中的仪表板包含UID, Grafana强制插入/更新该UID。这允许您在Grafana实例之间迁移仪表板,并从配置中提供Grafana,而不会破坏给定的URL,因为新的仪表板URL使用UID作为标识符。当Grafana启动时,它会更新/插入配置文件夹中可用的所有仪表板。如果您修改了文件,那么仪表板也会更新。默认情况下,如果文件被删除,Grafana会删除数据库中的仪表板。方法可以禁用此行为disableDeletion设置。

注意:配置允许您覆盖现有的仪表板,这将导致问题,如果您重用的设置应该是唯一的。注意不要重复使用标题在一个文件夹内多次或uid在相同的安装中会导致奇怪的行为。

从文件系统向Grafana提供文件夹结构

如果您已经在git repo或文件系统中使用文件夹存储仪表板,并且您希望在Grafana菜单中使用相同的文件夹名称,那么您可以使用foldersFromFilesStructure选择。

例如,要将这些仪表板结构从文件系统复制到Grafana,

/etc/dashboards├──/server│├─/common_dashboard. exeJson│├──/network_dashboard. exeJson├──/application├──/requests_dashboard。json└──/ resources_dashboard.json

您需要指定这个简短的配置文件。

apiVersion: 1 providers: - name: dashboards type: file updateIntervalSeconds: 30 options: path: /etc/dashboards foldersFromFilesStructure: true

服务器而且应用程序将成为Grafana菜单中的新文件夹。

注意:文件夹而且folderUid选项应该为空或缺少foldersFromFilesStructure工作。

注意:若要向General文件夹提供仪表板,请将它们存储在路径

报警

中添加一个或多个YAML或JSON配置文件,可以在Grafana中管理警报对象配置/报警目录中。这些文件将在启动Grafana时应用。在Grafana运行时,可以使用管理API

规则

创建

# apiVersion配置文件版本:1 #的规则组列表导入或更新组:# < int >组织ID,默认= 1 - orgId: 1 # <字符串,要求>的名称规则组名称:my_rule_group # <字符串,要求>文件夹的名称规则组将存储在文件夹:my_first_folder # <时间>要求间隔规则组应评估间隔:60年代# <列表,需要>列表的规则是规则组的一部分规则:# <字符串>要求规则的惟一标识符- uid: my_id_1 # <字符串,要求>标题的规则在UI中显示标题:my_first_rule # <字符串,要求>为条件查询应该使用条件:# <列表,需要>的查询对象列表应该执行在每个#评价-应该槽API获得数据:- refId: datasourceUid:“-100”模式:条件:-评估者:参数:- 3型:gt接线员:类型:和查询:参数:- A reducer: type: last type: query datasource: type: __expr__ uid: '-100' expression: 1==0 intervalMs: 1000 maxDataPoints: 43200 refId: A type: math # 告警规则应该链接到的仪表盘的uid dashboardUid: my_dashboard # 告警规则应该链接到的面板的ID panelId: 123 # 告警规则在没有返回数据时的状态#可能值:"NoData", "Alerting", "OK", default = NoData noDataState:Alerting # 当查询执行#失败时,警报规则将具有的状态-可能的值:"Error", "Alerting", "OK" # default = Alerting # 在发出警报之前需要多长时间:60s # >传递任何数据注释的字符串映射:some_key: some_value # 可用于过滤和# route警报标签的字符串映射:team: sre_team_1

删除

#配置文件版本apiVersion: 1 #需要删除的告警规则uid列表deleteRules: # 组织ID, default = 1 - orgId: 1 #  unique identifier for the rule uid: my_id_1

接触点

创建

#配置文件版本apiVersion: 1 #要导入或更新的联络点列表contactPoints: # 组织ID, default = 1 - orgId: 1 # 联络点名称名称:cp_1 receivers: # 唯一标识接收者- uid: first_uid # 类型接收者类型:prometheus-alertmanager # 设置设置:url: http://test:9000

删除

deleteContactPoints: # 组织ID, default = 1 - orgId: 1 #  unique identifier for the receiver uid: first_uid

设置

在这里,我们展示了你可以为不同的接触点类型有什么样的设置。

Alertmanager
type: prometheus-alertmanager settings: #  url: http://localhost:9093 #  basicAuthUser: abc #  basicAuthPassword: abc123
丁鼎
type: dingding settings: #  url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx #  options: link, actionCard msgType: link #  message: | {{template "default。信息”。}}
不和
type: discord settings: #  url: https://discord/webhook #  avatar_url: https://my_avatar #  use_discord_username: Grafana #  message: | {{template "default。信息”。}}
电子邮件
type: email settings: # 地址:me@example.com;you@example.com #  singleEmail: false #  message: my optional message to include #  subject: | {{template "default。标题”。}}
谷歌视频聊天
类型:googlechat设置:#  url: https://google/webhook #  message: | {{template "默认。信息”。}}
卡夫卡
type: kafka settings: #  kafkaRestProxy: http://localhost:8082 #  kafkaTopic: topic1
类型:行设置:#  token: XXX
微软团队
类型:teams settings: #  url: https://ms_teams_url #  title: | {{template "默认。标题”。}} #  sectiontitle: " #  message: | {{template "默认。信息”。}}
OpsGenie
type: opsgenie settings: #  apiKey: xxx #  apiUrl: https://api.opsgenie.com/v2/alerts #  message: | {{template "default。标题”。}} #  description: some描述性描述#  autoClose: false #  overridePriority: false #  options: tags, details, both sendTagsAs: both
PagerDuty
type: pagerduty settings: #  integrationKey: XXX #  options: critical, error, warning, info severity: critical #  class: ping failure #  component: Grafana #  group: app-stack #  summary: | {{template "default. type: pagerduty settings: #  integrationKey: XXX #  options: critical, error, warning, info信息”。}}
容易做的事情
type: pushover settings: #  apiToken: XXX #  userKey: user1,user2 #  device: device1,device2 #  options (high to low): 2,1,0,-1,-2 priority: '2' #  retry: '30' #  expire: '120' #  sound: siren #  okSound: magic #  message: | {{template "default。信息”。}}
松弛
type: slack settings: #  receiver: alering -dev #  token: xxx #  username: grafana_bot #  icon_emoji: heart #  icon_url: https://icon_url #  mentionUsers: user_1,user_2 #  mentionGroups: group_1,group_2 #  options: here, channel mentionChannel: here # 可选地提供一个用于发送消息的slack传入webhook URL,在这种情况下,token不是必要的URL:https://some_webhook_url #  endpointUrl: https://custom_url/api/chat.postMessage #  title: | {{template " lag .default.title"。}}文本:|{{模板"slack.default.text"。}}
理智去
类型:sensugo settings: #  url: http://sensu-api.local:8080 #  apikey: XXX #  entity: default #  check: default #  handler: some_handler #  namespace: default #  message: | {{template "default。信息”。}}
电报
类型:telegram settings: #  bottoken: XXX #  chatid: some_chat_id #  message: | {{template "default。信息”。}}
Threema网关
type: threema settings: #  api_secret: xxx #  gateway_id: A5K94S9 #  recipient_id: A9R4KL4S
VictorOps
type: victorops settings: #  url: XXX #  options: CRITICAL, WARNING messageType: CRITICAL
Webhook
类型:webhook settings: #  url: https://endpoint_url #  options: POST, PUT httpMethod: POST #  username: abc #  password: abc123 #  authorization_scheme: bear#  authorization_credentials: abc123 #  maxAlerts: '10'
WeCom
类型:wecom设置:#  url: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx #  message: | {{template "默认。信息”。}} #  title: | {{template "default. >标题”。}}

通知的政策

创建

#配置文件版本apiVersion: 1 #通知策略列表policies: # 组织ID, default = 1 - orgId: 1 # 该路由应该使用的联络点名称receiver: grafana-default-email # < List >将传入的警报分组的标签。例如,来自cluster=A和alertname=LatencyHigh的#多个警报将被批处理到单个组中。# #聚合所有可能的标签使用特殊值'…作为#唯一的标签名,例如:# group_by:['…这有效地完全禁用聚合,按原样传递所有#警报。这不太可能是您想要的,除非您的警报量非常低,或者您的上游通知系统执行自己的分组。group_by:['…- alertname = Watchdog - severity =~ "warning|critical" # 路由应该被抑制的时间。它们必须与# mute时间间隔的名称匹配。此外,根节点不能有任何静音时间。#当路由被静音时,它将不发送任何通知,但#在其他情况下正常运行(包括在未设置continue选项时结束路由匹配过程#)mute_time_interval: - abc # 最初为一组#的警报发送通知需要多长时间。 Allows to collect more initial alerts for the same group. # (Usually ~0s to few minutes), default = 30s group_wait: 30s #  How long to wait before sending a notification about new alerts that # are added to a group of alerts for which an initial notification has # already been sent. (Usually ~5m or more), default = 5m group_internval: 5m #  How long to wait before sending a notification again if it has already # been sent successfully for an alert. (Usually ~3h or more), default = 4h repeat_interval: 4h #  Zero or more child routes # routes: # ...

重置

#需要重置为默认策略的orgid列表resetPolicies: - 1

模板

创建

#导入或更新模板的模板列表:# 组织ID, default = 1 - orgID: 1 # 名称,必须是唯一的名称:my_first_template # 内容模板:Alerting with a custom text template

删除

#配置文件版本apiVersion: 1 #需要删除的告警规则uid列表deleteTemplates: # 组织ID, default = 1 - orgId: 1 # 名称,必须是唯一的名称:my_first_template

沉默的时间

创建

# apiVersion配置文件版本:1 #的沉默时间间隔列表导入或更新muteTimes: # < int >组织ID,默认= 1 - orgId: 1 # <字符串,要求>沉默的时间间隔的名称,必须是唯一的名字:mti_1 # <列表>时间间隔应触发静音#参考https://prometheus.io/docs/alerting/latest/configuration/ time_interval-0 time_intervals: - *: - start_time:“06:00时”end_time:“23:59”工作日:[星期一,星期三,星期六,'星期天']个月:(“1:3”,“阿美:8月”,“12”):(' 2020:2022 ',' 2030 ')days_of_month: [1:5, 3: 1 ')

删除

#配置文件版本apiVersion: 1 #需要删除的静音时间间隔列表deleteMuteTimes: # 组织ID, default = 1 - orgId: 1 # 静音时间间隔名称,必须是唯一名称:mti_1

警报通知渠道

注意:警报通知通道是遗留警报的一部分,已被弃用,将在Grafana 10中删除。在上面的警报部分使用联系点。

中的一个或多个YAML配置文件可以提供警报通知通道配置/通知目录中。

每个配置文件可以包含以下顶级字段:

  • 通知,一个将在启动期间添加或更新的警报通知列表。如果通知通道已经存在,Grafana将更新它以匹配配置文件。
  • delete_notifiers的警报通知列表,在插入/更新这些通知之前,必须删除这些通知通知列表。

Provisioning根据uid查找警报通知,并使用所提供的uid更新任何现有通知。

默认情况下,将仪表板导出为JSON将使用一个顺序标识符来引用警报通知。这个领域uid可选地指定,以为警报名称指定字符串标识符。

{…“警告”:{…,"conditions": [...], "frequency": "24h", "noDataState": "ok", "notifications": [ {"uid": "notifier1"}, {"uid": "notifier2"}, ] } ... }

告警通知通道配置文件示例

notifiers:—name: notification-channel-1 type: slack uid: notifier1 # org_id: 2 #或org_name: Main Org。is_default: true send_prompt: true frequency: 1h disable_resolve_message: false #参见“支持的设置”部分了解每种# alert通知类型支持的设置。settings: receive: 'XXX' uploadImage: true token: 'xoxb' #遗留设置自Grafana v7.2(存储非加密)url: https://slack.com #遗留设置自Grafana v7.2(存储非加密)#将在数据库中加密的安全设置(自Grafana v7.2以来支持)。参见“支持设置”部分了解每个通知器支持的安全设置。secure_settings: token: 'xoxb' url: https://slack.com delete_notifiers: - name: notification-channel-1 uid: notifier1 # org_id: 2 #或org_name: Main Org。—name: notification-channel-2 # default org_id: 1

支持设置

以下部分详细介绍每种警报通知类型的支持设置和安全设置。安全设置被加密存储在数据库中,您可以将它们添加到其中secure_settings而不是YAML文件中设置

注意:从Grafana v7.2开始支持安全设置。

提醒通知容易做的事情

的名字 安全设置
apiToken 是的
userKey 是的
设备
优先级
okPriority
重试
到期
声音
okSound

提醒通知不和

的名字 安全设置
url 是的
avatar_url
内容
use_discord_username

提醒通知松弛

的名字 安全设置
url 是的
收件人
用户名
icon_emoji
icon_url
uploadImage
mentionUsers
mentionGroups
mentionChannel
令牌 是的

提醒通知victorops

的名字
url
autoResolve

提醒通知卡夫卡

的名字
kafkaRestProxy
kafkaTopic

提醒通知

的名字 安全设置
令牌 是的

提醒通知pagerduty

的名字 安全设置
integrationKey 是的
autoResolve

提醒通知美国标准

的名字 安全设置
url
处理程序
用户名
密码 是的

提醒通知sensugo

的名字 安全设置
url
apikey 是的
实体
检查
处理程序
名称空间

提醒通知prometheus-alertmanager

的名字 安全设置
url
basicAuthUser
basicAuthPassword 是的

提醒通知团队

的名字
url

提醒通知丁鼎

的名字
url

提醒通知电子邮件

的名字
singleEmail
地址

提醒通知hipchat

的名字
url
apikey
roomid

提醒通知opsgenie

的名字 安全设置
apiKey 是的
apiUrl
autoClose
overridePriority
sendTagsAs

提醒通知电报

的名字 安全设置
bottoken 是的
chatid
uploadImage

提醒通知threema

的名字 安全设置
gateway_id
recipient_id
api_secret 是的

提醒通知webhook

的名字 安全设置
url
httpMethod
用户名
密码 是的

提醒通知googlechat

的名字
url

Grafana企业

Grafana Enterprise支持以下资源的供应: