Grafana的ServiceNow数据源
ServiceNow数据源插件允许您在Grafana中查询和可视化来自ServiceNow的数据。
需求
这个插件有以下要求:
- 具有访问必要表权限的ServiceNow用户
- 以下帐户类型之一:
- 启用了企业插件插件
安装ServiceNow数据源插件
要安装数据源,请参见安装
配置ServiceNow
我们建议为Grafana创建一个新用户或使用一个服务用户。提供的ServiceNow用户需要访问以下表:
表格 | 原因 |
---|---|
sys_db_object |
用于检索要查询的可用表列表。 |
sys_dictionary |
用于在查询表时检索字段列表。 |
sys_choice |
类筛选表结果时,用于检索选择列表选择 字段。 |
sys_glide_object |
用于收集有关数据类型的信息,包括名称、基类型等。 |
事件 |
在健康检查中用于验证表API和聚合API是否正常工作 |
建议使用的用户只能访问必要的表。如果用户可以访问太多的表,那么您可能会在查询编辑器中遇到性能问题。
Servicenow用户帐户可以通过以下步骤进行配置
- 将admin用户提升为security admin执行以下操作。
- 创建一个名为
grafana_reader_role
.这可以是任何东西。 - 创建一个名为
grafana_user_1
.这也可以是任何东西。 - 将以下角色分配给上述用户
grafana_user_1
或者你在第三步中创建的任何东西。grafana_reader_role
或者你在第二步中创建的任何东西。
- 创建ACL规则,为上述角色提供以下权限。要执行以下操作,需要将admin用户提升为安全管理员。
- 读取访问
sys_db_object
表格 - 读取访问
sys_db_object.name
场 - 读取访问
sys_db_object.label
场 - 读取访问
sys_db_object.sys_name
(在ACL编辑器中,它将显示为表[sys_db_object] =>显示名称) - 读取访问
sys_db_object.super_class
(在ACL编辑器中,它将显示为表[sys_db_object] => Extends Table) - 读取访问
sys_dictionary
表格 - 读取访问
sys_dictionary。*
字段 - 读取访问
sys_choice
表格 - 读取访问
sys_choice。*
字段 - 读取访问
sys_glide_object
表格 - 读取访问
sys_glide_object。*
字段
- 读取访问
- 提供对
事件
表格要执行此操作,需要将admin用户提升为安全管理员。 - 对用户需要从中读取数据的其余表重复步骤6。
开发实例
要创建和设置ServiceNow的开发人员实例,请转到ServiceNow开发人员页创建帐户。
在Grafana中配置数据源
添加数据源通过填写以下字段:
身份验证领域
的名字 | 描述 |
---|---|
URL | ServiceNow实例的URL。 |
用户名 | servicenow帐户的用户名 |
密码 | servicenow帐号密码 |
用供应配置数据源
可以在Grafana的供应系统中使用配置文件来配置数据源。您可以阅读更多关于它是如何工作的,以及可以为数据源设置的所有设置配置文档页面
apiVersion: 1 datasources: - name: ServiceNow type: ServiceNow -datasource enabled: true access: proxy url: https://dev59952.service-now.com basicAuth: true basicAuthUser: ADD_YOUR_USER_HERE secureJsonData: basicAuthPassword: ADD_YOUR_PASSWORD_HERE version: 1 editable: true isDefault: true
查询数据源
查询方法有两种:表格
而且统计数据
.
表查询
返回适合在表面板中显示的数据。它允许有序地选择要显示的字段加上过滤选项。查询编辑器还提供一个字段来限制查询返回的行数。
示例表面板显示上述查询的结果:
显示
的显示Row为要显示的字段提供选择器。还可以指定多个字段。字段将按照指定的精确顺序返回。
显示值
的显示值flag将导致查询返回人性化的值,或“显示值”,而不是数值。有三种不同的选择
选项 | 描述 |
---|---|
所有 | 首选方法。此模式用于显示人性化的显示值。此外,整数字段将呈现为数字,Choice字段将显示为人类友好的标签。 |
真正的 | 这类似于所有模式。但是整数字段将被呈现为格式化的字符串。 |
假 | 在这种模式下,所有字段都显示实际值而不是标签。这可能比其他模式具有更好的性能。(注意:选择字段如严重性/状态将显示为整数id而不是人类友好的标签) |
例如,严重性的1
与假旗帜只会显示1
.如果将标志设置为真正的/所有,显示的值将为1 -高
.
根据ServiceNow API文档,所有而且真正的模式可能比假模式。阅读更多关于显示值/sysparm_display_value在ServiceNow文档
过滤器(通用)
的过滤器Row提供了基于多个字段和值标准缩小显示行的能力。
所有的过滤器都与和或者一个或操作。
在选择自定义表时,将从Service Now API自动填充字段。
值
值选择取决于所选过滤器的类型。
- 布尔过滤器有True/False选项
- 文本过滤器将允许输入任何值
- 如果需要选择日期,日期筛选器将显示日期选择器日历
- 一些运算符,如是什么或今天,不显示额外的字段供输入。
排序
的排序Row提供了基于多个字段和值标准缩小显示行的能力。
所有的过滤器都与和操作。将添加对其他操作符的支持。
限制
可以指定行限制,以防止返回过多的数据。缺省值为25。
时间字段
的时间字段
将查询的数据转换为时间序列。将数据作为时间序列处理意味着所选“时间字段”中不属于仪表板/面板时间范围的值将不会显示。
如果未开启此值,则提供一个特殊值“Ignore Time”,以允许“到目前为止”的结果,并使过滤器能够控制显示的数据。
的时间字段默认是在打开,但它可以更改为任何保存时间值的可用字段。
统计查询
AggregateAPI总是返回带有以下聚合的指标:avg、min、max和sum。筛选也可用于缩小查询范围。
显示
的显示行为要显示的度量提供选择器。还可以指定多个指标。
过滤器(通用)
总过滤器提供基于字段和值标准缩小显示指标的能力,类似于表选项。
所有的过滤器都与和操作。将添加对其他操作符的支持。
统计过滤器选项与TableAPI相同。
聚合
有四种类型的度量聚合,外加一个“计数”:
- 平均
- 最低
- 最大
- 总和
- Count——它返回查询返回的度量的“数量”
集团
这个选择器提供了将指标拆分为较小聚合的能力。按“优先级”分组将返回具有优先级“标签”和分隔的惟一值的指标。
字段的引用
的v2.0.0
,现在支持字段引用。
默认情况下,引用其他表的字段会被折叠:
点击后,它们将展开显示字段:
字段引用只会扩展到一个层次的深度,例如考虑以下结构:
字段(参考)—>—字段1—字段2(参考)—字段4—字段5—字段6(参考)—字段7—字段8(参考)……——第三场
目前,只有第一个引用可以展开,导致如下:
字段(参考)->—字段1—字段3
模板和变量
要添加一个新的ServiceNow查询变量,请参见添加一个查询变量.使用ServiceNow数据源作为以下可用查询的数据源:
在创建变量之后,您可以在ServiceNow查询中使用变量的语法.有关变量的更多信息,请参见模板和变量.
模板
您可以使用变量代替在查询中硬编码名称。变量显示为仪表板顶部的下拉选择框。通过这些下拉菜单,可以轻松更改仪表板上显示的数据。
参见下面的示例查询变量部分介绍了如何添加查询变量并使用Template值引用它。
查询变量
如果添加类型的模板变量查询
,您可以编写一个查询,该查询可以返回类别名称、键名称或显示为下拉选择框的键值等项。
例如,您可以有一个包含所有值的变量类别
通过在模板变量中指定这样的查询查询设置。
当选择查询设置,过滤器,允许您选择类型而且场.目前,类型仅限于事件和变化。在选择类型时,将提供适用于该类型的字段列表。一次类型而且场,则会在底部显示值的预览,显示该类型/字段的可用选项。这些值将在下拉菜单中显示在Dashboard上,您可以将其与template一起使用,以过滤Dashboard面板上的数据。
例如,如果您添加一个名为类别然后选择类型=事件和字段=类别,您将看到类别的选项列表。如果您在面板中添加一个Filter,并选择Category Equals ${Category},面板数据将只显示从Dashboard下拉菜单中选择的Category的数据。
导入按类别划分的事故仪表板查看示例。
查询中使用变量
有两种语法:
$ < varname >
示例,其中模板变量名为主机名
:
[[varname]]
示例,其中模板变量名为主机名
:
注释
注释使您能够在图上覆盖事件。
Annotations查询支持与标准查询编辑器相同的选项。
转换
转换在使用带有group by子句的聚合查询时非常有用。
字段的标签
的示例字段的标签转换:
为ServiceNow导入一个仪表板
遵循这些指令用于导入仪表板。
导入的仪表板可以在配置中找到>数据源>选择你的ServiceNow数据源>选择dashboards选项卡查看可用的预先制作的仪表板。
版本兼容性
插件的当前版本进行了测试纽约ServiceNow的版本。每个版本之间没有显著差异,有些版本可能完全相同。
如果您的ServiceNow版本不在此列表中,则没有使用此数据源进行正式测试。基本功能预计将在ServiceNow的最新版本中工作,例如奥兰多
,巴黎
而且魁北克
.
版本 |
---|
纽约 |
API | ServiceNow版本 | 版本 |
---|---|---|
表API | 纽约 |
v2 |
总API | 纽约 |
v1 |
突发的变化
升级到V2.0
现有的仪表板应该在2.0中继续工作。如果存在现有仪表板不再工作的任何问题,那么要知道这不是有意的,您的反馈是有价值的。在提交支持问题时,请确保包含面板JSON或仪表板JSON的副本。
备份仪表板
在升级到2.0版本之前,必须备份仪表板。v2.0中的查询模式已经更改,并且添加了迁移,以便在旧查询更改时将其更改为新查询。
如果您遇到任何问题,需要降级,那么在降级后,您的仪表板不太可能继续工作。
了解更多
- 添加注释.
- 配置和使用模板和变量.
- 添加转换.
- 设置报警;指警报概述.
- ServiceNow REST API引用.
- ServiceNow版本
使用HTTP代理
当使用HTTP代理时,Grafana需要设置以下环境变量之一:
HTTP_PROXY
(或http_proxy
)- 〇全路径
http://host:port
- 或者是:
主持人:港口
- 〇全路径
HTTPS_PROXY
(或https_proxy
):- 〇全路径
https://host:port
- 或者是:
主持人:港口
- 〇全路径
如果我们没有ITSM角色插件呢?
执行以下操作需要管理员访问权限
选项1:授予Grafana用户admin特权,允许访问所有表。
选项2:创建一个角色,并对需要由Grafana访问的所有表应用acl
执行以下操作需要管理员访问权限
登录的管理员需要将访问权限提升到security_admin
- 单击右上角导航面板上的概要文件图标。就是那个有下拉胡萝卜指示灯的
- 从下拉菜单中点击“提升角色”
- 从显示的模式中,选中“security_admin”旁边的复选框
- 单击OK
用您喜欢的任何命名约定创建一个新角色
- 导航到左侧导航的“角色”部分:系统安全=>用户和组=>角色
- 点击顶部的“New”
- 输入角色名称和相关描述
- 单击Submit
创建一个新用户并附加步骤2中创建的角色
为所需的表和字段创建表acl
为sys_db_object表创建ACL
- 在第二个搜索头列“Name”中,输入sys_db_object并按enter
- 过滤后的结果应该显示“Table”。单击可导航到记录中
- 在选项卡部分,选择“控件”
- 在页面的底部,确保“访问控制”是选中的选项卡
- 单击“新建”,创建新的ACL
- 将“操作”选项更改为读取
- 在底部的“required Role”部分,双击“Insert New Row”并搜索您创建的角色
- 选择已创建的角色后,单击绿色复选标记
- 单击底部的Submit以创建ACL,然后在出现模式时单击continue
为特定的sys_db_object字段创建acl。需要对以下每个字段重复以下步骤:名称、标签、显示名称和扩展表
- 在sys_db_object的表记录视图中,选择最靠近屏幕顶部的选项卡组中的“Columns”选项卡
- 找到字段名并选择它
- 在底部选项卡部分,单击访问控制选项卡中的“新建”
- 将操作更改为读取
- 双击底部“requirements role”表格中的插入一行文本
- 搜索您创建的角色并单击绿色复选标记
- 单击Submit
- 确保您已经为所有必需字段重复了这些步骤:名称、标签、显示名称和扩展表
在Change、Incident和您希望从Grafana查询的任何其他非cmdb表上重复4.1中的步骤。不要重复4.2中的步骤,只有sys_db_object才需要这个步骤。
如何为grafana用户提供必要的访问?
执行以下操作需要管理员访问权限
选项1:执行以下步骤为grafana创建连接servicenow的用户
- 将admin用户提升为security admin执行以下操作。
- 创建一个名为
grafana_reader_role
.这可以是任何东西。 - 创建一个名为
grafana_user_1
.这也可以是任何东西。 - 将以下角色分配给上述用户
grafana_user_1
或者你在第三步中创建的任何东西。grafana_reader_role
或者你在第二步中创建的任何东西。
- 创建ACL规则,为上述角色提供以下权限。要执行以下操作,需要将admin用户提升为安全管理员。
- 读取访问
sys_db_object
表格 - 读取访问
sys_db_object.name
场 - 读取访问
sys_db_object.label
场 - 读取访问
sys_db_object.sys_name
(在ACL编辑器中,它将显示为表[sys_db_object] =>显示名称) - 读取访问
sys_db_object.super_class
(在ACL编辑器中,它将显示为表[sys_db_object] => Extends Table) - 读取访问
sys_dictionary
表格 - 读取访问
sys_dictionary。*
字段 - 读取访问
sys_choice
表格 - 读取访问
sys_choice。*
字段 - 读取访问
sys_glide_object
表格 - 读取访问
sys_glide_object。*
字段
- 读取访问
- 提供对
事件
表格要执行此操作,需要将admin用户提升为安全管理员。 - 对用户需要从中读取数据的其余表重复步骤6。
下面的步骤详细说明了如何执行上述操作。
登录的管理员需要将访问权限提升到security_admin
- 单击右上角导航面板上的概要文件图标。就是那个有下拉胡萝卜指示灯的
- 从下拉菜单中点击“提升角色”
- 从显示的模式中,选中“security_admin”旁边的复选框
- 单击OK
用您喜欢的任何命名约定创建一个新角色
- 导航到左侧导航的“角色”部分:系统安全=>用户和组=>角色
- 点击顶部的“New”
- 输入角色名称和相关描述
- 单击Submit
使用步骤2中创建的角色创建新用户或修改现有用户
为所需的表和字段创建表acl
为sys_db_object表创建ACL
- 在第二个搜索头列“Name”中,输入sys_db_object并按enter
- 过滤后的结果应该显示“Table”。单击可导航到记录中
- 在选项卡部分,选择“控件”
- 在页面的底部,确保“访问控制”是选中的选项卡
- 单击“新建”,创建新的ACL
- 将“操作”选项更改为读取
- 在底部的“required Role”部分,双击“Insert New Row”并搜索您创建的角色
- 选择已创建的角色后,单击绿色复选标记
- 单击底部的Submit以创建ACL,然后在出现模式时单击continue
为特定的sys_db_object字段创建acl。需要对以下每个字段重复以下步骤:名称、标签、显示名称和扩展表
- 在sys_db_object的表记录视图中,选择最靠近屏幕顶部的选项卡组中的“Columns”选项卡
- 找到字段名并选择它
- 在底部选项卡部分,单击访问控制选项卡中的“新建”
- 将操作更改为读取
- 双击底部“requirements role”表格中的插入一行文本
- 搜索您创建的角色并单击绿色复选标记
- 单击Submit
- 确保您已经为所有必需字段重复了这些步骤:名称、标签、显示名称和扩展表
在Change、Incident和您希望从Grafana查询的任何其他非cmdb表上重复4.1中的步骤。不要重复4.2中的步骤,只有sys_db_object才需要这个步骤。
选项2:授予Grafana用户admin权限,允许访问所有表。(强烈不推荐)
执行上述任何选项都需要管理员访问权限
相关的Grafana Servicenow数据源资源
用Grafana插件统一数据:datdog, Splunk, MongoDB等等
在本次网络研讨会中,学习如何利用Grafana的插件生态系统访问80多个数据源,包括datdog、Splunk、MongoDB等插件。
Grafana插件演示:Github, Gitlab, JIRA, ServiceNow等
在这次网络研讨会上,我们将向您展示如何使用Grafana来解锁这些洞见,并更好地了解您的软件开发团队的性能。
关于Grafana插件的一切:在一个地方可视化不同的数据源
Grafana Enterprise插件是与其他商业监控工具(如datdog、Splunk、New Relic、ServiceNow、Oracle和Dynatrace)的集成,这些工具由Grafana Labs团队创建、维护和支持。bob电竞频道