绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
适用于 Grafana 的 Azure 数据资源管理器数据源
2022-03-31 10:35:49

Azure 数据资源管理器是一个日志分析云平台,针对即席大数据查询进行了优化。

安装

此插件需要Grafana 7.1.0或更高版本,从3.0.0版本开始。3.0.0 之前的插件版本需要 Grafana 6.3.6。

格拉法纳云

如果您没有Grafana Cloud帐户,可以在此处注册一个。

  1. 单击"Azure 数据资源管理器"页上的按钮,Grafana.com。这将自动将插件添加到您的 Grafana 实例。安装多可能需要 30 秒。Install Now

  2. 登录到托管 Grafana 实例(转到配置文件中的实例页面):将安装 Azure 数据资源管理器数据源。https://grafana.com/orgs/<yourUserName>/instances/

格拉法纳文档站点上的安装说明

指标命名和别名

待办事项:链接到格拉法纳7.1+中名称的文档

码头工人

  1. 从 Docker Hub 获取新版本的 grafana:docker pull grafana/grafana:latest

  2. 运行 Grafana 并使用以下命令安装 Azure 数据资源管理器插件:

    docker run -d --name=grafana -p 3000:3000 -e "GF_INSTALL_PLUGINS=grafana-azure- style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);">" grafana/grafana:latest
  3. 打开浏览器:http://localhost:3000 或 http://your-domain-name:3000

  4. 使用用户名:和密码登录:adminadmin

  5. 要确保插件已安装,请检查已安装数据源的列表。单击主菜单中的插件项。将显示核心数据源和已安装的数据源。

如果要在与默认的 3000 端口不同的端口上运行 Grafana,则此 ia 是一个备用命令:

docker run -d --name=grafana -p 8081:8081 -e "GF_SERVER_HTTP_PORT=8081" -e "GF_INSTALL_PLUGINS=grafana-azure- style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);">" grafana/grafana:master

建议您使用卷来保存 Grafana 数据。否则,如果删除 docker 容器,您将丢失所有 Grafana 数据(仪表板、用户等)。可以使用适用于 Azure 文件存储的 Docker 卷驱动程序创建卷。

使用 CLI 在现有 Grafana 上安装插件

Grafana附带了一个命令行工具,可用于安装插件。

  1. 将格拉法纳升级到新版本。在这里获取。
  2. 运行以下命令:grafana-cli plugins install grafana-azure- _msttexthash="47057244" style="box-sizing: border-box; margin-top: 0.25em;">重新启动格拉法纳服务器。
  3. 打开浏览器:http://localhost:3000 或 http://your-domain-name:3000
  4. 使用具有管理员权限的用户登录。这是创建数据源所必需的。
  5. 要确保插件已安装,请检查已安装数据源的列表。单击主菜单中的插件项。将显示核心数据源和已安装的数据源。

在现有的Grafana上手动安装插件

如果安装Grafana的服务器无法访问 Grafana.com 服务器,则可以下载插件并将其手动复制到服务器。

  1. 将格拉法纳升级到新版本。在这里获取。
  2. 从 Grafana.com 获取zip文件:https://grafana.com/plugins/grafana-azure- _msttexthash="118819896" style="box-sizing: border-box; margin-top: 0.25em;">将 zip 文件解压缩到 Grafana 的数据/插件子目录中。
  3. 重新启动格拉法纳服务器
  4. 要确保插件已安装,请检查已安装数据源的列表。单击主菜单中的插件项。将显示核心数据源和已安装的数据源。

在格拉法纳中配置数据源

配置 Azure 数据资源管理器服务与 Grafana 之间的集成的步骤如下:

  1. 创建 Azure Active Directory (AAD) 应用程序和 AAD 服务原则。
  2. 登录到 Azure 数据资源管理器 WebExplorer,并将 AAD 应用程序连接到 Azure 数据资源管理器数据库用户。
  3. 使用 AAD 应用程序在 Grafana 中配置数据源连接。

创建 Azure Active Directory 服务原则

按照指南中的说明设置 Azure Active Directory 应用程序。

创建 AAD 应用程序的另一种方法是使用 Azure CLI

az ad sp create-for-rbac -n "http://url.to.your.grafana:3000"

这将返回以下内容:

{
  "appId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "displayName": "azure-cli-2018-09-20-13-42-58",
  "name": "http://url.to.your.grafana:3000",
  "password": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}

Assign the Reader role to the Service Principal and remove the Contributor role:

az role assignment create --assignee <your appId> --role Reader
az role assignment delete --assignee <your appId> --role Contributor

Connecting AAD with an Azure Data Explorer User

Navigate to the Azure Web UI for Azure Data Explorer: https://dataexplorer.azure.com/clusters/nameofyourcluster/databases/yourdatabasename

You can find the link to the Web UI in the Azure Portal by navigating to:

  1. All services-> Azure Data Explorer Clusters option
  2. 选择您的集群
  3. 数据库 - >单击您的数据库
  4. 选择"查询"选项 ->然后单击"在 Web UI 中打开"链接

要创建集群和数据库,请按照此处的说明操作。

需要向上面创建的 AAD 应用程序授予对 Azure 数据资源管理器数据库的查看器访问权限(在此示例中,该数据库称为 Grafana)。这是使用 dot 命令完成的。的参数包含客户端和租户 ID,用分号分隔:add.add

.add database Grafana viewers ('aadapp=<your client id>;<your tenantid>')

具有客户端/应用 ID 和租户 ID 的真实示例:

.add database Grafana viewers ('aadapp=377a87d4-2cd3-44c0-b35a-8887a12fxxx;e7f3f661-a933-4b3f-8176-51c4f982exxx')

如果命令成功,您应该会得到如下结果:

配置格拉法纳

  1. 从 Grafana 主菜单访问,可以立即在"数据源"部分中添加新安装的数据源。接下来,单击右上角的"添加数据源"按钮。

  2. 从数据源列表中选择 Azure 数据资源管理器数据源:

  3. 在名称字段中,会自动填写默认名称,但可以将其更改为任何名称。

  4. 需要从 Azure 门户获取 3 条信息(有关详细说明,请参阅上面的链接):

    • 租户 ID (Azure Active Directory -> Properties -> Directory ID)
    • 客户端 ID(Azure Active Directory -> 应用注册 -> 选择应用 -> 应用程序 ID)
    • 客户端机密(Azure Active Directory -> 应用注册 -> 选择应用 -> 密钥)
  5. 将这三个项目粘贴到"Azure 数据资源管理器 API 详细信息"部分的字段中:

  6. 单击该按钮。几秒钟后,Grafana成功连接,然后选择默认数据库并再次保存。Save & Test

代表交换机使 Grafana 通过令牌交换将客户端凭据传播到 ADX。启用后,服务帐户(客户端 ID)将通过扩充访问令牌来模拟用户。有关详细信息,请参阅。./doc/on-behalf-of.md

编写查询

查询是用新的 Kusto 查询语言编写的

查询的格式可以设置为时序或 ADX 时序数据。

表查询

查询主要用于"表"面板和行的列和行的列表。此示例查询返回包含 6 个指定列的行:

AzureActivity
| where $__timeFilter()
| project TimeGenerated, ResourceGroup, Category, OperationName, ActivityStatus, Caller
| order by TimeGenerated desc

时序查询

时序查询适用于"图形"面板(以及其他面板,如"单个统计"面板)。查询必须只包含一个 datetime 列、一个或多个数值列,以及(可选)多一个字符串列作为标签。下面是一个示例查询,它返回按"类别"列分组并按小时分组的聚合计数:

AzureActivity
| where $__timeFilter(TimeGenerated)
| summarize count() by Category, bin(TimeGenerated, 1h)
| order by TimeGenerated asc

数值列数被视为指标,可选字符串列被视为标记。为每个值列 + 的字符串列值集返回一个时间序列。每个系列的名称为 valueColumnName {stringColumnName=columnValue, ...}。

例如,以下查询将生成如下序列:AvgDirectDeaths {EventType=Excessive Heat, State=DELAWARE}``EventCount {EventType=Excessive Heat, State=NEW JERSEY}

StormEvents
| where $__timeFilter(StartTime)
| summarize EventCount=count(), AvgDirectDeaths=avg(DeathsDirect) by EventType, State, bin(StartTime, $__timeInterval)
| order by StartTime asc

ADX 时序查询

ADX 时序用于使用 Kusto make 系列运算符的查询。查询必须正好有一个命名的 datetime 列和至少一个值列。还可以选择将字符串列作为标签。Timestamp

例:

let T = range Timestamp from $__timeFrom to ($__timeTo + -30m) step 1m
  | extend   Person = dynamic(["Torkel", "Daniel", "Kyle", "Sofia"])
  | extend   Place  = dynamic(["EU",     "EU",     "US",   "EU"])
  | mvexpand Person, Place
  | extend   HatInventory = rand(5)
  | project  Timestamp, tostring(Person), tostring(Place), HatInventory;

T | make-series AvgHatInventory=avg(HatInventory) default=double(null) on Timestamp from $__timeFrom to $__timeTo step 1m by Person, Place
  | extend series_decompose_forecast(AvgHatInventory, 30) | project-away *residual, *baseline, *seasonal

时间宏

为了使编写查询更容易,可以在查询的 where 子句中使用两个 Grafana 宏:

  • $__timeFilter()- 扩展到从 Grafana 时间选取器获取"开始"和"结束日期"时间的位置。TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) and TimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)
  • $__timeFilter(datetimeColumn)- 扩展到从 Grafana 时间选取器获取"开始"和"结束日期"时间的位置。datetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) and datetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)
  • $__timeFrom- 扩展到 ,查询的开始时间。datetime(2018-06-05T18:09:58.907Z)
  • $__timeTo- 扩展到 ,查询的结束时间。datetime(2018-06-05T20:09:58.907Z)
  • $__timeInterval- 扩展到 ,Grafana 根据查询的时间跨度(以毫秒为单位)建议的箱大小。在发出警报时,将始终是 ,建议不要在警报查询中使用此宏。5000ms1000ms

模板化宏

  • $__escapeMulti($myVar)- 将与包含非法字符的多值模板变量一起使用。如果 $myVar 具有该值,它将扩展到:。如果使用单值变量,则不需要此宏,只需转义内联变量 -'\\grafana-vm\Network(eth0)\Total','\\hello!'@'\\grafana-vm\Network(eth0)\Total', @'\\hello!'@'\$myVar'

  • $__contains(colName, $myVar)- 将与多值模板变量一起使用。如果 $myVar 具有该值,它将扩展到:。'value1','value2'colName in ('value1','value2')

    如果使用该选项,请选中复选框并在字段中键入以下值:。如果$myVar具有值,则该宏将改为展开为 。对于具有大量选项的模板变量,这将通过不构建大型 where 来提高查询性能。在子句中。AllInclude All OptionCustom all valueallall1 == 1

使用变量模板化

无需在指标查询中对服务器、应用程序和传感器名称等内容进行硬编码,您可以在其位置使用变量。变量显示在仪表板顶部的下拉选择框。通过这些下拉列表,可以轻松更改仪表板中显示的数据。

在仪表板设置中创建变量。通常,您需要使用 Kusto 查询语言编写查询,以获取下拉列表的值列表。但是,也可以有一个硬编码值的列表。

  1. 填写变量的名称。该字段是变量的名称。还有一个用于友好名称的字段。NameLabel

  2. 在"查询选项"部分,在下拉列表中选择数据源。Azure Data ExplorerData source

  3. 在字段中编写查询。用于指定一列 - 结果应为字符串值的列表。Queryproject

  4. 在底部,您将看到从查询返回的值的预览:

  5. 在查询中使用变量(在本例中,变量名为):level

    MyLogs | where Level == '$level'

    对于允许多个值的变量,请改用运算符:in

    MyLogs | where Level in ($level)

在 Grafana 文档中阅读有关模板和变量的更多信息。

注意:目前不支持在生成器中使用模板变量。

数据库变量

无法使用 Kusto 查询语言获取数据库列表。按照本节所述创建模板变量时,请在字段中使用以下函数返回数据库列表:Templating with variablesQuery

databases()

此变量可在数据库下拉列表中使用。这使您能够切换数据库,而无需在面板中编辑查询。

要使用该变量,请在下拉列表中键入变量的名称。例如,如果变量的名称为 ,则键入 。database$database

附注

注释是叠加在图形之上的事件。查询每行多可以有三列,日期时间列是必需的。批注呈现成本高昂,因此限制返回的行数非常重要。

  • 具有日期时间类型的列。
  • 带别名的列:注释文本的文本或文本
  • 列,别名:标记或注释标记的标记。这应该返回一个逗号分隔的标签字符串,例如'tag1,tag2'

示例查询:

MyLogs
| where $__timeFilter(Timestamp)
| project Timestamp, Text=Message , Tags="tag1,tag2"

更新日志

请参阅更新日志

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Microsoft Azure Data Explorer
创建时间:2022-03-30 16:41:28
Microsoft Azure Data Explorer
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • LCR_
    专家
戳我,来吐槽~