博客/工程

仔细看看Grafana Enterprise Logs中集中租户管理和控制的管理API和插件

2021年3月9日4分钟

跟进我们的介绍Grafana企业日志,最新加入Grafana企业堆栈,让我们深入研究其中一个关键特性:管理API和管理插件。

Grafana洛基, bob电竞频道Grafana实验室的日志聚合项目,提供了Grafana企业日志(GEL)的基础。Loki通过允许客户端通过报头提供租户ID来支持多个租户,该报头将传入数据或传入查询路由到该租户的数据,且仅路由到该租户的数据。洛基以这种方式建造是为了灵活,这与它的姐妹项目是一样的皮质

与Loki一样,Grafana Enterprise Logs是开箱即用的多租户,我们已经将集中式租户管理和控制直接构建到软件中,允许您创建租户(我们在GEL中称为实例)以及访问策略和令牌,以控制实例的数据入口和出口。这是通过访问GEL公开的管理API来实现的,这是一个关键特性,使您无需自己构建和支持这些保护和功能。许多组织需要限制或控制对日志数据的访问,使用api进行设置被认为是一种最佳实践。

使用GEL,管理员有两种选项来配置这些资源:直接使用管理API,无论您当前使用什么系统来配置组织中的资源(例如,Puppet、Chef、Ansible),或使用提供的管理APIGrafana企业日志管理插件,它在使用底层API的同时提供了类似gui的体验。

如果你使用了管理APIGrafana企业度量,这个API对您来说似乎非常熟悉。在其他功能中,Grafana插件HTTP端点创建实例(租户),访问策略,令牌.下面来看看如何创建它们。

实例

要创建一个实例,例如,你可以保存Team A的所有日志,你可以发出一个POST请求:

POST /admin/api/v1/instances {"name": "Team - A", "display_name": "Team A", "cluster": " enterprise-logs-cluster"}

或者使用UI创建它:

访问策略

现在您已经拥有了Team A的实例,您可以创建一个访问策略来将数据输入和输出您的新实例。该访问策略在未来将具有一个可选的一年到期日期,并且由于配置的作用域,该策略能够读写数据。

你可以使用POST请求来创建这个访问策略:

POST /admin/api/v1/ accesspolies {"name": "Team - A读写AP", "display_name": "Team A读写AP", "created_at": " 2021-03-05t17:37:59. 34172833z ", "expiration": " 2022-03-05t17:37:59. 3417283z ", "realms": [{"instance": "Team - A ", "cluster": "enterprise-logs-cluster"}], "scope ": ["logs: Read ", "logs: Write "]}}

或者再次使用UI轻松完成此操作:

令牌

有了实例和访问策略之后,就可以创建令牌了。使用用它创建的令牌team-a-read-and-write-ap访问策略来从Grafana实例中读取数据,因为它具有日志:阅读范围。方法将数据发送到实例中Grafana代理,或promtail,独立的Loki客户端,因为关联的访问策略也具有日志:写范围。

POST /admin/api/v1/tokens {"name": "Team - A读写Token", "display_name": "Team A读写Token", "created_at": " 2021-03-05t17:37:59. 3417283z ", "expiration": "2022-03-05T17:37:59.341728283Z", "access_policy": "Team - A读写ap"}

作为响应,你会收到相同的对象,但附加了一个令牌:

{"name": "team-a-读写ap- Another", "display_name": "Another", "created_at": "2021-03-05T21:25:27.679Z", "access_policy": "team-a-读写ap", "expiration": "0001-01-01T00:00:00Z", "access_policy": "team-a-读写ap", "token": "dGVhbS1hLXJlYWQtYW5kLXdyaXRlLWFwLWFub3RoZXI6fUoxcSkiNC02NXk1cGB8Ny4rNCwyMDgk"}

或者使用UI完成工作:

代理

有了这个令牌,向GEL发送日志就很简单了。使用这个示例配置运行Grafana代理,将<标记>对于您创建的令牌和< cluster-dns-name >GEL集群的主机名。请注意,目前是在URL中找到的用户名。可以创建访问多个实例的访问策略,因此有必要指定要写入的实例。

Loki: positions_directory: /tmp/ Loki -positions configs:—name: PI clients:—url: 'http://team-a:@/api/prom/push' scrape_configs:—job_name:系统static_configs:—targets:—localhost labels: job: varlogs __path__: /var/log/*log

Grafana

现在已经有日志流入GEL实例,让我们配置Grafana来查看它们。创建一个Loki数据源,将URL设置为您的集群名称,如下所示,并指定基本认证.请注意,目前用户名。将令牌指定为密码并保存数据源。

你现在可以查询你的实例来查看和分析日志:

了解更多

想要深入了解Grafana企业日志,请务必注册3月18日的网络研讨会,“Grafana企业日志:安全且规模化的日志。”你也可以在文档中阅读更多关于GEL的信息,联系我们如果你想试试的话!