Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/public/
public/
.idea/
docs/config.bak
docs/resources/_gen
config.bak
resources/_gen
themes/
4 changes: 4 additions & 0 deletions docs/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ languages:
languageName: English
contentDir: content.en
weight: 3
zh:
languageName: 简体中文
contentDir: content.zh
weight: 4


menu:
Expand Down
59 changes: 59 additions & 0 deletions docs/content.zh/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
title: INFINI Console
type: docs
bookCollapseSection: true
weight: 2
---

# INFINI Console

## 介绍

**INFINI Console** 一款非常轻量级、功能强大的多集群、跨版本的 Elasticsearch 统一管控平台。
通过对 Elasticsearch 跨版本多集群的集中纳管,我们可以快速方便的对企业内部的所有 Elasticsearch 集群进行统一管理。

## 架构

{{% load-img "/img/architecture.png" "Architecture Overview" %}}

## 特性

> INFINI Console 功能强大、轻量级、使用起来也非常简单。

- 支持多集群管理,可以在一个平台内同时纳管任意多套集群;
- 多版本 Elasticsearch 支持,支持 1.x、2.x、5.x、6.x、7.x、8.x;
- 支持以项目为单位来分组管理集群的元数据信息、支持标签;
- 支持动态注册添加集群,目标集群无需任何变动即可被接入管理;
- 支持统一的多集群层面、索引和 API 接口粒度的权限控制;
- 支持统一的跨集群的告警引擎,灵活配置基于阈值的告警规则;
- 支持查看集群元数据的历史变更信息,用于审计、追踪集群变化;
- 开发者工具支持多个工作区快速切换,支持智能提示,支持常用命令保存和快捷加载;
- 支持任意版本的集群监控,包括集群、节点、索引等详细维度的指标查看和分析;
- 支持索引的管理操作,支持索引的快速查看浏览,支持索引内文档的更新、删除;
- 支持创建索引数据视图,可以修改字段的展示格式,支持时序索引数据的快速查看;
- 支持跨平台部署环境,支持 MacOS(Intel 和 M1)、Windows(32 位和 64 位)、Linux(32 位和 64 位);
- 支持 x86、arm5、arm6、arm7、mips、mipsle、mips64 等 CPU 架构:
- 支持 Docker 容器和 K8s 云原生环境;
- 支持极限网关的集中管理;

INFINI Console 使用 Golang 编写,安装包很小,只有 11MB 左右,没有任何外部环境依赖,部署安装也都非常简单,只需要下载对应平台的二进制可执行文件,启动程序文件执行即可。

{{< button relref="./docs/getting-started/install" >}}即刻开始{{< /button >}}

## 系统截图

{{% load-img "/img/screenshot/screenshot2023/overview.png" "overview" %}}
{{% load-img "/img/screenshot/20220330-devtool_tab.jpg" "多个工作区并存" %}}
{{% load-img "/img/screenshot/20220330-cluster_manage.jpg" "Elasticsearch 集群管理" %}}

{{< button relref="./docs/screenshot" >}}更多截图{{< /button >}}

## 社区

[加入我们的 Discord](https://discord.gg/4tKTMkkvVX)


## 谁在用?

如果您正在使用 INFINI Console,并且您觉得它还不错的话,请[告诉我们](https://discord.gg/4tKTMkkvVX),所有的用户案例我们会集中放在[这里](./docs/user-cases/),感谢您的支持。

59 changes: 59 additions & 0 deletions docs/content.zh/docs/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
title: INFINI Console
type: docs
bookCollapseSection: true
weight: 2
---

# INFINI Console

## 介绍

**INFINI Console** 一款非常轻量级、功能强大的多集群、跨版本的 Elasticsearch 统一管控平台。
通过对 Elasticsearch 跨版本多集群的集中纳管,我们可以快速方便的对企业内部的所有 Elasticsearch 集群进行统一管理。

## 架构

{{% load-img "/img/architecture.png" "Architecture Overview" %}}

## 特性

> INFINI Console 功能强大、轻量级、使用起来也非常简单。

- 支持多集群管理,可以在一个平台内同时纳管任意多套集群;
- 多版本 Elasticsearch 支持,支持 1.x、2.x、5.x、6.x、7.x、8.x;
- 支持以项目为单位来分组管理集群的元数据信息、支持标签;
- 支持动态注册添加集群,目标集群无需任何变动即可被接入管理;
- 支持统一的多集群层面、索引和 API 接口粒度的权限控制;
- 支持统一的跨集群的告警引擎,灵活配置基于阈值的告警规则;
- 支持查看集群元数据的历史变更信息,用于审计、追踪集群变化;
- 开发者工具支持多个工作区快速切换,支持智能提示,支持常用命令保存和快捷加载;
- 支持任意版本的集群监控,包括集群、节点、索引等详细维度的指标查看和分析;
- 支持索引的管理操作,支持索引的快速查看浏览,支持索引内文档的更新、删除;
- 支持创建索引数据视图,可以修改字段的展示格式,支持时序索引数据的快速查看;
- 支持跨平台部署环境,支持 MacOS(Intel 和 M1)、Windows(32 位和 64 位)、Linux(32 位和 64 位);
- 支持 x86、arm5、arm6、arm7、mips、mipsle、mips64 等 CPU 架构:
- 支持 Docker 容器和 K8s 云原生环境;
- 支持极限网关的集中管理;

INFINI Console 使用 Golang 编写,安装包很小,只有 11MB 左右,没有任何外部环境依赖,部署安装也都非常简单,只需要下载对应平台的二进制可执行文件,启动程序文件执行即可。

{{< button relref="./getting-started/install" >}}即刻开始{{< /button >}}

## 系统截图

{{% load-img "/img/screenshot/screenshot2023/overview.png" "overview" %}}
{{% load-img "/img/screenshot/20220330-devtool_tab.jpg" "多个工作区并存" %}}
{{% load-img "/img/screenshot/20220330-cluster_manage.jpg" "Elasticsearch 集群管理" %}}

{{< button relref="./screenshot" >}}更多截图{{< /button >}}

## 社区

[加入我们的 Discord](https://discord.gg/4tKTMkkvVX)


## 谁在用?

如果您正在使用 INFINI Console,并且您觉得它还不错的话,请[告诉我们](https://discord.gg/4tKTMkkvVX),所有的用户案例我们会集中放在[这里](./user-cases/),感谢您的支持。

11 changes: 11 additions & 0 deletions docs/content.zh/docs/configuration/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
weight: 13
title: 参数配置
bookCollapseSection: true
---

# 参数配置

## 参数配置


89 changes: 89 additions & 0 deletions docs/content.zh/docs/configuration/keystore/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
weight: 2
title: Keystore
---

# Keystore

## 简介

在配置里面直接明文配置用户密码是非常不安全的操作,通过使用 Keystore 可以很方便的帮助您以键值对的方式管理敏感数据,如用于密码,TOKEN 等身份验证信息管理。
Keystore 管理功能以 keystore 子命令的方式 支持,查看 KEY 列表,添加和删除 SECRET。

## 获取 Keystore 命令帮助

命令行进入 console 安装目录,然后执行 `./console-xxx-xxx keystore -h`
输出如下:

```
usage : keystore <command> [<args>]
These are common keystore commands used in various situations:
add Add keystore secret
list List keystore keys
remove remove keystore secret
```

## 查看 Keystore Key 列表

命令行输入 `./console-xxx-xxx keystore list`,然后会输出 Keystore 存储的所有 Key 如下:

```
test
test1
testx
```

## 添加 Keystore Secret

命令行输入 `./console-xxx-xxx keystore add -h` 获取帮助如下:

```
Usage of add secret:
-force
Override the existing key
-stdin
Use the stdin as the source of the secret
```

可以看到添加 keystore secret `add` 子命令有两个选项

- -force 带上这个选项,如果添加 secret 的 Key 值是存在的会自动覆盖旧值,否则直接退出
- -stdin 标准输入上回显 secret,不带这个选项默认隐藏输入 secret

添加一个 Key 为 `hello` 的 Secret `./console-xxx-xxx keystore add hello`
然后输入 secret 值就可以了

## 删除 Keystore Secret

以删除 Key 为 `hello` 的 Secret 为例,命令行输入 `./console-xxx-xxx keystore remove hello` 就可以了

## keystore 应用

INFINI Console, INFINI Gateway, INFINI Agent 都是支持上述功能的。

### 配置文件中使用 keystore

首先使用 Keystore 命令 创建 Key 为 `default_cluster_password` 的 Secret;
然后在 INFINI Gateway 配置文件中 gateway.yml 使用

```
elasticsearch:
- name: default
enabled: true
endpoint: http://192.168.3.8:9200
basic_auth:
username: elastic
password: $[[keystore.default_cluster_password]]
```

[comment]: <> (### 告警模版中使用 keystore)

[comment]: <> (使用函数 `get_keystore_secret`,传递 Secret Key 作为参数就可以拿到)

[comment]: <> (Keystore secret 的值了。示例:在告警模版中获取 key 为 `weixin_access_token`的 Secret 值,如下:)

[comment]: <> (```)

[comment]: <> ({{get_keystore_secret "weixin_access_token"}})

[comment]: <> (```)
74 changes: 74 additions & 0 deletions docs/content.zh/docs/configuration/security/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
weight: 3
title: LDAP 集成
---

# LDAP 配置

## 描述

在某些情况下,在用户通过一个域(realm)进行身份验证后,我们可能希望将用户的查找和角色分配委托给另一个域。任何支持用户查找(无需用户凭证)的领域都可以用作认证域。

例如,通过 Kerberos 域进行身份验证的用户可以在 LDAP 域中进行查找。LDAP 域负责在 LDAP 中搜索用户并确定其角色。在这种情况下,LDAP 域充当认证域。

## 配置示例

一个参考配置示例如下:

```
security:
enabled: true
authc:
realms:
ldap:
myprovider1:
enabled: true
host: "localhost"
port: 3893
bind_dn: "cn=serviceuser,ou=svcaccts,dc=glauth,dc=com"
bind_password: "mysecret"
base_dn: "dc=glauth,dc=com"
user_filter: "(cn=%s)"
group_attribute: "ou"
bypass_api_key: true
cache_ttl: "10s"
role_mapping:
group:
superheros: [ "Administrator" ]
uid:
hackers: [ "Administrator" ]
myprovider2:
enabled: true
host: "ldap.forumsys.com"
port: 389
bind_dn: "cn=read-only-admin,dc=example,dc=com"
bind_password: "password"
base_dn: "dc=example,dc=com"
user_filter: "(uid=%s)"
cache_ttl: "10s"
role_mapping:
uid:
tesla: [ "readonly","data" ]
```

上面的配置使用了两个名为 `myprovider1` 和 `myprovider2` 的外部 LDAP 服务器作为认证渠道,任何一个 LDAP 都可以提供认证服务,通过 `role_mapping` 设置关联 LDAP 返回的 UID 和 Group 到 Console 里面的角色信息。

## 参数说明

| 名称 | 类型 | 说明 |
| ------------------ | ------ | ------------------------------------------------ |
| host | string | LDAP 服务器地址 |
| port | int | LDAP 服务器端口,默认 `389` |
| tls | bool | LDAP 服务器是否为 TLS 安全传输协议,默认 `false` |
| bind_dn | string | 执行 LDAP 查询的用户信息 |
| bind_password | string | 执行 LDAP 查询的密码信息 |
| base_dn | string | 过滤 LDAP 用户的根域 |
| user_filter | string | 过滤 LDAP 用户的查询条件,默认 `(uid=%s)` |
| uid_attribute | string | 用于用户 ID 的属性,默认 `uid` |
| group_attribute | string | 用于用户组的属性,默认 `cn` |
| role_mapping.uid | map | 用于基于用户 UID 的权限映射 |
| role_mapping.group | map | 用于基于用户 Group 的权限映射 |

## 其他资源
* [INFINI Console LDAP 配置教程](https://www.bilibili.com/video/BV1kj411S74B/) 视频介绍
* [常见问题](https://www.infinilabs.cn/blog/2023/console-ldap-setting/)
5 changes: 5 additions & 0 deletions docs/content.zh/docs/getting-started/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
weight: 10
title: 入门指南
bookCollapseSection: true
---
60 changes: 60 additions & 0 deletions docs/content.zh/docs/getting-started/docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
weight: 35
title: 容器部署
asciinema: true
---

# 容器部署

INFINI Console 支持容器方式部署。

## 下载镜像

INFINI Console 的镜像发布在 Docker 的官方仓库,地址如下:

<https://hub.docker.com/r/infinilabs/console>

使用下面的命令即可获取最新的容器镜像:

```bash
docker pull infinilabs/console:{{< globaldata "console" "version" >}}
```

## 验证镜像

将镜像下载到本地之后,可以看到 INFINI Console 平台的容器镜像非常小,只有不到 30MB,所以下载的速度应该是非常快的。

```text
➜ docker images |grep "console" |grep "{{< globaldata "console" "version" >}}"
REPOSITORY TAG IMAGE ID CREATED SIZE
infinilabs/console latest 8c27cd334e4c 47 minutes ago 26.4MB
```

## 启动平台

使用如下命令启动极限网关容器:

```bash
docker run -p 9000:9000 infinilabs/console:{{< globaldata "console" "version" >}}
```

## Docker Compose

还可以使用 docker compose 来管理容器实例,新建一个 `docker-compose.yml` 文件如下:

```yaml
version: "3.5"

services:
infini-console:
image: infinilabs/console:{{< globaldata "console" "version" >}}
ports:
- 9000:9000
container_name: "infini-console"
```

在配置文件所在目录,执行如下命令即可启动,如下:

```bash
docker-compose up
```
Loading
Loading