菜单
Grafana文档 设置 配置安全 审计Grafana实例

审计Grafana实例

审计可以让你追踪重要的变化Grafana实例。默认情况下,审计日志记录到文件但审计功能还支持直接发送日志洛基。

只有API请求或UI动作触发一个API请求生成一个审计日志。

注意:可以在Grafana企业7.3及以后版本,和Grafana云先进

审计日志

审计日志是JSON对象代表用户操作:

  • 修改资源,如仪表板和数据源。
  • 用户无法登录。

格式

审计日志包含以下字段。田野紧随其后*总是可用,其他依赖于类型的行动记录。

字段名 类型 描述
时间戳* 字符串 请求的日期和时间,在协调世界时(UTC)使用RFC3339格式。
用户* 对象 发出请求的用户信息。任何一个的用户标识orgydF4y2BaApiKeyID如果字段将包含内容isAnonymous = false
user.userId 数量 的ID Grafana发出请求的用户。
user.orgId* 数量 当前组织用户的请求。
user.orgRole 字符串 当前角色的用户的请求。
user.name 字符串 Grafana用户的请求的名称。
user.tokenId 数量 ID的用户身份验证令牌。
user.apiKeyId 数量 ID Grafana API键用来制造请求。
user.isAnonymous* 布尔 如果一个匿名用户的请求,真正的。否则,
行动* 字符串 请求行动。例如,创建,更新,或管理权限
请求* 对象 有关HTTP请求的信息。
request.params 对象 请求的路径参数。
request.query 对象 请求的查询参数。
request.body 字符串 请求的身体。
结果* 对象 有关HTTP响应的信息。
result.statusType 字符串 如果请求行动是成功的,成功。否则,失败
result.statusCode 数量 HTTP请求的状态。
result.failureMessage 字符串 HTTP错误消息。
result.body 字符串 身体的反应。
资源 数组 信息资源请求动作的影响。这个字段可以为空等非资源的行为登录orgydF4y2Ba注销
[x] .id资源* 数量 资源的ID。
[x] .type资源* 字符串 记录资源的类型:警报,警报通知,注释,api密匙,鉴定标识,指示板,数据源,文件夹,org,面板,播放列表,报告,团队,用户,或版本
requestUri* 字符串 请求URI。
ipAddress* 字符串 是由IP地址的请求。
userAgent* 字符串 代理的请求。
grafanaVersion* 字符串 当前版本的Grafana当创建此日志。
additionalData 对象 可以提供额外的信息关于请求。

additionalData字段可以包含以下信息:

字段名 行动 描述
loginUsername 登录 Grafana中使用的登录身份验证形式。
extUserInfo 登录 外部系统提供的用户信息,用于登录。
authTokenCount 登录 活跃用户登录身份验证令牌。
terminationReason 注销 用户注销的原因,如手动注销或令牌到期。
billing_role 的付款信息 与计费相关的计费角色信息被发送。

记录操作

审计日志记录包括以下类别的行动。每一个行动是杰出的行动参考资料[…].typeJSON记录中的域。

例如,创建一个API密匙产生审计日志是这样的:

{“行动”:“创造”,“资源”:[{" id ": 1、“类型”:“api密匙”}],“时间戳”:“2021 - 11 - 12 t22:12:36.144795692z”,“用户”:{“标识”:1、“orgId”: 1、“orgRole”:“管理”、“用户名”:“Admin”、“isAnonymous”:假的,“authTokenId”: 1},“请求”:{“身体”:“{\“\”:\“\”,\“\”,\“观众\”,\“secondsToLive \”:零}”},“结果”:{“statusType”:“成功”,“statusCode”: 200年,“responseBody”:“{\ \“id”: 1, \“\”, \“\”}”},“资源”:[{" id ": 1、“类型”:“api密匙”}],“requestUri”:“/ api /认证/键”,“ipAddress”:“127.0.0.1:54652”、“userAgent”:“Mozilla / 5.0 (X11;Linux x86_64;房车:Firefox 94.0)壁虎/ 20100101 / 94.0”,“grafanaVersion ": " 8.3.0-pre "}

一些操作只能是杰出的requestUri字段。对于这些行为,相关的模式requestUri字段。

注意,几乎所有这些记录操作行为对应于API请求或UI动作触发一个API请求。因此,行动{“行动”:“电子邮件”、“资源”:[{“类型”:“报告”}]}对应于操作,当用户请求一个通过电子邮件发送报告的预览,而不是预定的。

会话

行动 识别领域
登录 {“行动”:“login-AUTH-MODULE”}*
退出* * {“行动”:“注销”}
力注销用户 {“行动”:“logout-user”}
删除用户身份验证令牌 {“行动”:“revoke-auth-token”、“资源”:[{“类型”:“鉴定标识”},{“类型”:“用户”}]}
创建API密钥 {“行动”:“创造”,“资源”:[{“类型”:“api密匙”}]}
删除API密匙 {“行动”:“删除”、“资源”:[{“类型”:“api密匙”}]}

*在哪里AUTH-MODULE身份验证模块的名称:grafana,saml,ldap等。
* *包括手动注销,令牌过期/撤销,SAML单注销

服务帐户

行动 识别领域
创建服务帐户 {“行动”:“创造”,“资源”:[{“类型”:“服务帐户”}]}
更新服务帐户 {“行动”:“更新”、“资源”:[{“类型”:“服务帐户”}]}
删除服务帐户 {“行动”:“删除”、“资源”:[{“类型”:“服务帐户”}]}
创建服务帐户牌 {“行动”:“创造”,“资源”:[{“类型”:“服务帐户”},{“类型”:“service-account-token”}]}
删除服务帐户令牌 {“行动”:“删除”、“资源”:[{“类型”:“服务帐户”},{“类型”:“service-account-token”}]}
隐藏的API密钥 {“行动”:“hide-api-keys”}
迁移的API密钥 {“行动”:“migrate-api-keys”}
迁移API密匙 {“行动”:“migrate-api-keys”},“资源”:[{“类型”:“api密匙”}]}

访问控制

行动 识别领域
创建角色 {“行动”:“创造”,“资源”:[{“类型”:“角色”}]}
更新的作用 {“行动”:“更新”、“资源”:[{“类型”:“角色”}]}
删除角色 {“行动”:“删除”、“资源”:[{“类型”:“角色”}]}
内置的角色分配 {“行动”:“assign-builtin-role”、“资源”:[{“类型”:“角色”},{“类型”:“builtin-role”}]}
删除内置角色 {“行动”:“remove-builtin-role”、“资源”:[{“类型”:“角色”},{“类型”:“builtin-role”}]}
格兰特团队角色 {“行动”:“grant-team-role”、“资源”:[{“类型”:“团队”}]}
设置团队角色 {“行动”:“set-team-roles”、“资源”:[{“类型”:“团队”}]}
撤销团队角色 {“行动”:“revoke-team-role”、“资源”:[{“类型”:“角色”},{“类型”:“团队”}]}
授予用户角色 {“行动”:“grant-user-role”、“资源”:[{“类型”:“角色”},{“类型”:“用户”}]}
设置用户角色 {“行动”:“set-user-roles”、“资源”:[{“类型”:“用户”}]}
撤销用户角色 {“行动”:“revoke-user-role”、“资源”:[{“类型”:“角色”},{“类型”:“用户”}]}
设置用户权限的文件夹 {“行动”:“set-user-permissions-on-folder”、“资源”:[{“类型”:“文件夹”},{“类型”:“用户”}]}
团队文件夹权限设置 {“行动”:“set-team-permissions-on-folder”、“资源”:[{“类型”:“文件夹”},{“类型”:“团队”}]}
文件夹权限设置基本的角色 {“行动”:“set-basic-role-permissions-on-folder”、“资源”:[{“类型”:“文件夹”},{“类型”:“builtin-role”}]}
在仪表板设置用户权限 {“行动”:“set-user-permissions-on-dashboards”、“资源”:[{“类型”:“仪表盘”},{“类型”:“用户”}]}
在仪表板设置组权限 {“行动”:“set-team-permissions-on-dashboards”、“资源”:[{“类型”:“仪表盘”},{“类型”:“团队”}]}
在仪表板设置基本的角色权限 {“行动”:“set-basic-role-permissions-on-dashboards”、“资源”:[{“类型”:“仪表盘”},{“类型”:“builtin-role”}]}
设置用户权限的团队 {“行动”:“set-user-permissions-on-teams”、“资源”:[{“类型”:“团队”},{“类型”:“用户”}]}
设置用户权限服务帐户 {“行动”:“set-user-permissions-on-service-accounts”、“资源”:[{“类型”:“服务帐户”},{“类型”:“用户”}]}
设置用户权限的数据源 {“行动”:“set-user-permissions-on-data-sources”、“资源”:[{“类型”:“数据源”},{“类型”:“用户”}]}
在数据源设置组权限 {“行动”:“set-team-permissions-on-data-sources”、“资源”:[{“类型”:“数据源”},{“类型”:“团队”}]}
设置数据源的基本角色权限 {“行动”:“set-basic-role-permissions-on-data-sources”、“资源”:[{“类型”:“数据源”},{“类型”:“builtin-role”}]}

用户管理

行动 识别领域
创建用户 {“行动”:“创造”,“资源”:[{“类型”:“用户”}]}
更新用户 {“行动”:“更新”、“资源”:[{“类型”:“用户”}]}
删除用户 {“行动”:“删除”、“资源”:[{“类型”:“用户”}]}
禁用用户 {“行动”:“禁用”,“资源”:[{“类型”:“用户”}]}
启用用户 {“行动”:“启用”、“资源”:[{“类型”:“用户”}]}
更新密码 {“行动”:“update-password”、“资源”:[{“类型”:“用户”}]}
发送密码重置邮件 {“行动”:“send-reset-email”}
重置密码 {“行动”:“reset-password”}
更新权限 {“行动”:“update-permissions”、“资源”:[{“类型”:“用户”}]}
发送注册电子邮件 {“行动”:“signup-email”}
点击注册链接 {“行动”:“注册”}
重载LDAP配置 {“行动”:“ldap-reload”}
在LDAP用户 {“行动”:“ldap搜索”}
同步与LDAP用户 {“行动”:“ldap-sync”、“资源”:[{“类型”:“用户”}]

团队和组织管理

行动 识别领域
加入团队 {“行动”:“创造”,“requestUri”:“/ api /小组”}
更新团队 {“行动”:“更新”、“requestUri”:“/ api /团队/ TEAM-ID”}*
删除团队 {“行动”:“删除”,“requestUri”:“/ api /团队/ TEAM-ID”}*
添加外部组团队 {“行动”:“创造”,“requestUri”:“/ api /团队/ TEAM-ID /团体”}*
删除外部组团队 {“行动”:“删除”,“requestUri”:“/ api /团队/ TEAM-ID /组织/组id "}*
将用户添加到团队 {“行动”:“创造”,“资源”:[{“类型”:“用户”},{“类型”:“团队”}]}
更新团队成员权限 {“行动”:“更新”、“资源”:[{“类型”:“用户”},{“类型”:“团队”}]}
删除用户组 {“行动”:“删除”、“资源”:[{“类型”:“用户”},{“类型”:“团队”}]}
创建组织 {“行动”:“创造”,“资源”:[{“类型”:“org”}]}
更新组织 {“行动”:“更新”、“资源”:[{“类型”:“org”}]}
删除组织 {“行动”:“删除”、“资源”:[{“类型”:“org”}]}
添加用户组织 {“行动”:“创造”,“资源”:[{“类型”:“org”},{“类型”:“用户”}]}
更改用户在组织中的作用 {“行动”:“更新”、“资源”:[{“类型”:“用户”},{“类型”:“org”}]}
删除用户组织 {“行动”:“删除”、“资源”:[{“类型”:“用户”},{“类型”:“org”}]}
邀请外部用户的组织 {“行动”:“org-invite”、“资源”:[{“类型”:“org”},{“类型”:“用户”}]}
取消邀请 {“行动”:“revoke-org-invite”、“资源”:[{“类型”:“org”}]}

*在哪里TEAM-ID影响团队的ID,组id(如果存在)是外部组的ID。

文件夹和仪表板管理

行动 识别领域
创建文件夹 {“行动”:“创造”,“资源”:[{“类型”:“文件夹”}]}
更新文件夹 {“行动”:“更新”、“资源”:[{“类型”:“文件夹”}]}
更新文件夹权限 {“行动”:“管理权限”、“资源”:[{“类型”:“文件夹”}]}
删除文件夹 {“行动”:“删除”、“资源”:[{“类型”:“文件夹”}]}
创建/更新仪表板 {“行动”:“create-update”、“资源”:[{“类型”:“仪表盘”}]}
进口仪表板 {“行动”:“创造”,“资源”:[{“类型”:“仪表盘”}]}
更新仪表板权限 {“行动”:“管理权限”、“资源”:[{“类型”:“仪表盘”}]}
仪表盘恢复旧版本 {“行动”:“恢复”、“资源”:[{“类型”:“仪表盘”}]}
删除仪表板 {“行动”:“删除”、“资源”:[{“类型”:“仪表盘”}]}

图书馆管理元素

行动 识别领域
创建库元素 {“行动”:“创造”,“资源”:[{“类型”:“library-element”}]}
更新库元素 {“行动”:“更新”、“资源”:[{“类型”:“library-element”}]}
删除库元素 {“行动”:“删除”、“资源”:[{“类型”:“library-element”}]}

数据源管理

行动 识别领域
创建数据源 {“行动”:“创造”,“资源”:[{“类型”:“数据源”}]}
更新数据源 {“行动”:“更新”、“资源”:[{“类型”:“数据源”}]}
删除数据源 {“行动”:“删除”、“资源”:[{“类型”:“数据源”}]}
为数据源启用权限 {“行动”:“权限”、“资源”:[{“类型”:“数据源”}]}
禁用权限数据源 {“行动”:“disable-permissions”、“资源”:[{“类型”:“数据源”}]}
格兰特数据源允许角色,团队,或用户 {“行动”:“创造”,“资源”:[{“类型”:“数据源”},{“类型”:“dspermission”}]}*
删除数据源的许可 {“行动”:“删除”、“资源”:[{“类型”:“数据源”},{“类型”:“dspermission”}]}
对数据源启用高速缓存 {“行动”:“enable-cache”、“资源”:[{“类型”:“数据源”}]}
禁用缓存为数据源 {“行动”:“disable-cache”、“资源”:[{“类型”:“数据源”}]}
更新数据源缓存配置 {“行动”:“更新”、“资源”:[{“类型”:“数据源”}]}

*资源也可能包含一个第三项呢“类型”:设置为“用户”orgydF4y2Ba“团队”

警报和通知渠道管理

行动 识别领域
保存报警管理程序配置 {“行动”:“更新”、“requestUri”:“/ api / alertmanager /收件人/ config / api / v1 /警报”}
重置警报管理器配置 {“行动”:“删除”,“requestUri”:“/ api / alertmanager /收件人/ config / api / v1 /警报”}
创建的沉默 {“行动”:“创造”,“requestUri”:“/ api / alertmanager /收件人/ api / v2 /沉默”}
删除沉默 {“行动”:“删除”,“requestUri”:“/ api / alertmanager /收件人/ api / v2 /沉默/ SILENCE-ID”}
创建警报 {“行动”:“创造”,“requestUri”:“/ api /统治者/收件人/ api / v2 /警报”}
创建或更新规则组 {“行动”:“create-update”、“requestUri”:“/ api /统治者/收件人/ api / v1 /规定/命名空间”}
删除规则组 {“行动”:“删除”,“requestUri”:“/ api /统治者/收件人/ api / v1 /规定/命名空间/组名称”}
删除名称空间 {“行动”:“删除”,“requestUri”:“/ api /统治者/收件人/ api / v1 /规定/命名空间”}
测试Grafana管理接收器 {“行动”:“测试”、“requestUri”:“/ api / alertmanager /收件人/ config / api / v1 /接收器/测试”}
创建或更新NGalert配置用户的组织 {“行动”:“create-update”、“requestUri”:“/ api / v1 / ngalert / admin_config”}
删除NGalert配置用户的组织 {“行动”:“删除”,“requestUri”:“/ api / v1 / ngalert / admin_config”}

以下的地方:

  • 收件人grafana请求由Grafana或数据源UID请求转发到一个数据源。
  • 名称空间是规则的字符串标识符名称空间。
  • 组名称字符串标识符的规则组。
  • SILENCE-ID是影响沉默的ID。

以下遗留报警行动仍然支持:

行动 识别领域
测试警报的规则 {“行动”:“测试”、“资源”:[{“类型”:“面板”}]}
暂停警报 {“行动”:“暂停”、“资源”:[{“类型”:“警报”}]}
暂停所有警报 {“行动”:“pause-all”}
测试警报通知渠道 {“行动”:“测试”、“资源”:[{“类型”:“告警”}]}
创建警报通知渠道 {“行动”:“创造”,“资源”:[{“类型”:“告警”}]}
更新警报通知渠道 {“行动”:“更新”、“资源”:[{“类型”:“告警”}]}
删除警报通知渠道 {“行动”:“删除”、“资源”:[{“类型”:“告警”}]}

报告

行动 识别领域
创建报告 {“行动”:“创造”,“资源”:[{“类型”:“报告”},{“类型”:“仪表盘”}]}
更新报告 {“行动”:“更新”、“资源”:[{“类型”:“报告”},{“类型”:“仪表盘”}]}
删除报告 {“行动”:“删除”、“资源”:[{“类型”:“报告”}]}
通过电子邮件发送报告 {“行动”:“电子邮件”、“资源”:[{“类型”:“报告”}]}
更新报告设置 {“行动”:“更改设置”}

注释,播放列表和快照管理

行动 识别领域
创建注释 {“行动”:“创造”,“资源”:[{“类型”:“注释”}]}
创建石墨注释 {“行动”:“create-graphite”、“资源”:[{“类型”:“注释”}]}
更新注释 {“行动”:“更新”、“资源”:[{“类型”:“注释”}]}
块注释 {“行动”:“补丁”,“资源”:[{“类型”:“注释”}]}
删除注释 {“行动”:“删除”、“资源”:[{“类型”:“注释”}]}
删除所有注释从面板 {“行动”:“删除”,“资源”:[{“类型”:“仪表盘”},{“类型”:“面板”}]}
创建播放列表 {“行动”:“创造”,“资源”:[{“类型”:“播放列表”}]}
更新播放列表 {“行动”:“更新”、“资源”:[{“类型”:“播放列表”}]}
删除播放列表 {“行动”:“删除”、“资源”:[{“类型”:“播放列表”}]}
创建一个快照 {“行动”:“创造”,“资源”:[{“类型”:“仪表盘”},{“类型”:“快照”}]}
删除快照 {“行动”:“删除”、“资源”:[{“类型”:“快照”}]}
通过删除键删除快照 {“行动”:“删除”、“资源”:[{“类型”:“快照”}]}

供应

行动 识别领域
重新加载配置指示板 {“行动”:“provisioning-dashboards”}
重新加载配置数据源 {“行动”:“provisioning-datasources”}
重新加载配置插件 {“行动”:“provisioning-plugins”}
重新加载配置通知 {“行动”:“provisioning-notifications”}
重新加载配置警报 {“行动”:“provisioning-alerts”}
重新加载配置访问控制 {“行动”:“provisioning-accesscontrol”}

插件管理

行动 识别领域
安装插件 {“行动”:“安装”}
卸载插件 {“行动”:“卸载”}

杂项

行动 识别领域
设置许可令牌 {“行动”:“创造”,“requestUri”:“/ api /授权/令牌”}
保存的付款信息 {“行动”:“账单信息”}

通用的行为

除了上面列出的行动,任何HTTP请求(帖子,补丁,,删除)对API记录下列通用的行为之一。

此外,您还可以记录得到请求。见下文如何配置它。

行动 识别领域
POST请求 {“行动”:“行动”}
补丁的请求 {“行动”:“局部迭代”}
PUT请求 {“行动”:“更新”}
删除请求 {“行动”:“delete”}
GET请求 {“行动”:“检索”}

配置

注意:审计功能默认是禁用的。

审计日志可以保存到文件,发送到洛基实例或发送到Grafana默认日志记录器。默认情况下,只有文件启用出口国。你可以选择使用哪一个出口国配置文件

选项是文件,洛基,日志记录器。使用空格分隔多个模式,如文件洛基

默认情况下,当一个用户创建或更新仪表板,它的内容不会出现在日志可以显著增加你的日志的大小。如果这对你来说是重要的信息,你可以处理生成的数据量,然后你可以配置中启用该选项。

(审计)#启用审计特性使= false #列表启用伐木工伐木工=文件#仪表盘保持内容的日志(请求或响应领域);这可以大大增加你的日志的大小。log_dashboard_content = false #保持请求和响应的身体;这可以大大增加你的日志的大小。verbose = false #写审计日志为每个状态码。#默认情况下它只记录以下的:2 xx, xx, 401年、403年和500年。log_all_status_codes = false #最大响应身体(字节)审计;默认500简约。#可能有助于降低审计造成的内存占用。max_response_size_bytes = 512000

每个出口都有自己的配置字段。

文件出口国

审计日志保存到文件中。您可以配置用于保存这些文件的文件夹。日志是旋转时文件大小超过在新的一天的开始。

[auditing.logs。文件] # Path to logs folder path = data/log # Maximum log files to keep max_files = 5 # Max size in megabytes per log file max_file_size_mb = 256

洛基出口国

被送到一个审计日志洛基服务,通过HTTP或gRPC。

注意:洛基出口国的HTTP选项只有在Grafana企业7.4和更高版本。

[auditing.logs。洛基] # Set the communication protocol to use with Loki (can be grpc or http) type = grpc # Set the address for writing logs to Loki (format must be host:port) url = localhost:9095 # Defaults to true. If true, it establishes a secure connection to Loki tls = true

如果你有多个Grafana实例将日志发送到相同的洛基服务或为非审计日志,如果您使用的是洛基审计日志有额外的标签来帮助识别:

  • 主机——操作系统的主机名Grafana实例正在运行。
  • grafana_instance——应用程序的URL。
  • - - - - - -审计

控制台出口国

审计日志发送到Grafana默认日志记录器。审计日志使用auditing.console记录器,登录调试层次,学习如何启用调试日志记录日志配置部分的文档。以这种方式访问审计日志不建议生产使用。