客户环境MES堆栈组件#
本页列出了凯睿德制造MES堆栈内运行的所有容器,并解释了其用途以及每个容器的具体配置。
Info
可以为属于单个客户的任何基础设施部署多个环境,每个环境都有自己的URL。
graph LR
subgraph Infrastructure Agent
Squid[Edge Squid Proxy]
end
subgraph Customer Environment
Edge[EdgeForwardProxy]
Env[Environment Manager]
UI[UI]
Host[Host]
Help[Help]
Grafana[Grafana]
SecurityPortal[Security Portal]
Traefik[Traefik]
TraefikForwardAuth[Traefik Forward Auth]
Bus[MessageBus]
DiscoveryService[Discovery Service]
SQL[SQL Server]
ConnectIoTManager[Connect IoT Manager]
Rasa[Rasa]
RasaActions[Rasa Actions]
LBOGenerator[LBO Generator]
MESScheduler[MES Scheduler]
end
subgraph DataPlatform
direction RL
ClickHouse[ClickHouse]
DataManager[Data Manager]
DataManagerREST[Data Manager REST]
EPFAMAT[EPF Alarm Management Action Trigger]
EPFAMERH[EPF Alarm Management Event Rule Handler]
EPFMEH[EPF Alarm Management MES Event Handler]
EPFCB[EPF CDM Builder]
EPFCH[EPF CDM Handler]
K1[Kafka1]
K2[Kafka2]
K3[Kafka3]
MLAgent[ML Platform Agent]
MLPlatformTraining[ML Platform Training]
Redis[Redis]
ReplicateEvents[Replicate Events]
ReplicateIDs[Replicate IDs]
ReplicateTableSchemas[Replicate Table Schemas]
Zookeeper[Zookeeper1]
end
Traefik --> TraefikForwardAuth
TraefikForwardAuth --> Traefik
Traefik --> UI
Traefik --> Host
Traefik --> Help
Traefik --> Grafana
Traefik --> SecurityPortal
Traefik --> Bus
Traefik --> DataPlatform
Traefik --> ConnectIoTManager
Traefik --> Rasa
Traefik --> RasaActions
Traefik --> DiscoveryService
Traefik --> LBOGenerator
Traefik --> MESScheduler
Host -.-> SQL
SQL -.-> Env
Host -.-> Env
UI -.-> Env
Help -.-> Env
Grafana -.-> Env
SecurityPortal -.-> Env
Bus -.-> Env
DataPlatform -.-> Env
ConnectIoTManager -.-> Env
Rasa -.-> Env
RasaActions -.-> Env
DiscoveryService -.-> Env
LBOGenerator -.-> Env
MESScheduler -.-> Env
Env ---> Squid
classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300;
class Squid,UI,Host,Help,SecurityPortal,ConnectIoTManager,Bus,Grafana,DiscoveryService,Rasa,RasaActions,LBOGenerator,MESScheduler mermaid_businessdata
class Env,Traefik,TraefikForwardAuth mermaid_entitylinked
class User mermaid_context
class ClickHouse,DataManager,DataManagerREST,EPFAMAT,EPFAMERH,EPFMEH,EPFCB,EPFCH,K1,K2,K3,MLAgent,MLPlatformTraining,Redis,ReplicateEvents,ReplicateIDs,ReplicateTableSchemas,Zookeeper mermaid_nonbusinessdata
class SQL mermaid_optional
click Traefik "#traefik"
click TraefikForwardAuth "#traefik-forward-auth"
click Bus "#mesmessage-bus"
click Host "#mes-host"
click Env "#environment-manager"
click SecurityPortal "#security-portal"
click UI "#mes-gui"
click Help "#mes-documentation"
click HelpReference "#mes-documentation-reference"
click Grafana "#grafana"
click SQL "#sql-server"
click ClickHouse "#clickhouse"
click ConnectIoTManager "#connect-iot-manager"
click DataManager "#data-manager"
click DataManagerREST "#data-manager-rest"
click DiscoveryService "#discovery-service"
click EPFAMAT "#epf-alarm-management-action-trigger"
click EPFAMERH "#epf-alarm-management-event-rule-handler"
click EPFMEH "#epf-alarm-management-mes-event-handler"
click EPFCB "#epf-cdm-builder"
click EPFCH "#epf-cdm-handler"
click K1 "#kafka1"
click K2 "#kafka2"
click K3 "#kafka3"
click MLAgent "#ml-platform-agent"
click MLPlatformTraining "#ml-platform-training"
click Rasa "#rasa"
click RasaActions "#rasa-actions"
click Redis "#redis"
click ReplicateEvents "#replicate-events"
click ReplicateIDs "#replicate-ids"
click ReplicateTableSchemas "#replicate-table-schemas"
click Zookeeper "#zookeeper" 边缘前向代理#
这是您自己的基础架构与外部世界之间的主要连接器,允许您与客户门户进行通信以执行多项操作,其中包括:
- 下载安装期间环境管理器所需的新组件。
- 激活许可证。
- 检索安装日志。
边缘前向代理是负责打开连接并发送连接的组件,它通过与Squid代理共享网络来实现这一点(详细信息请参见Infrastructure Agent,并且只能通过它从您的基础架构与客户门户进行通信,反之亦然。
容器卷中的相关文件夹#
| 路径 | 描述 |
|---|---|
/app/ | 应用程序主目录. |
Table: Docker的边缘前向代理相关文件夹
Traefik#
管理路由,包括端口分配和重定向。它还平衡和转发代理和外部世界之间的网络流量,并处理证书验证以确保安全连接。更多信息,请参阅https://doc.traefik.io/traefik/ ⧉.
与同时存在于代理和MES堆栈中的边缘前向代理不同,Traefik实例保持独立并与代理中的Squid实例直接通信,Traefik实例也同时存在于代理和MES堆栈中,但具有不同的操作模式。此Traefik实例负责向任何外部请求指示,以便将它们重定向到MES堆栈内正在到达的正确URL路径。
MES堆栈中的每个Traefik实例都可以被视为位于infrastructure agent中的父实例的子实例,从父实例接收指令,并将这些指令输出到运行它们的客户环境。
例如:
http://<domain_one>/api-MES堆栈内的Traefik实例将此请求发送到MES堆栈内处理/路径的“domain_one”的容器,在本例中为“UI”。http://<domain_one>/api- MES堆栈内的Traefik实例将此请求发送到MES堆栈内处理“api”路径的“domain_ one”的容器,在本例中,该路径为“host”。http://<domain_two>/help- MES堆栈内的Traefik实例将此请求发送到MES堆栈内处理“help”路径的“domain_two”的容器,在本例中,该路径是文档门户。
graph LR
subgraph 代理
Traefik[Traefik]
end
subgraph mes_实例_2
Traefik3[Traefik]
ui3["UI"]
api3["Host"]
help3["文档门户"]
end
subgraph mes_实例_1
Traefik2[Traefik]
ui2["UI"]
api2["Host"]
help2["文档门户"]
end
Traefik --->|https://mes_instance_one.domain.local/|Traefik2
Traefik --->|https://mes_instance_one.domain.local/api|Traefik2
Traefik --->|https://mes_instance_two.domain.local/help|Traefik3
Traefik2 -.->|/|ui2
Traefik2 -.->|/api|api2
Traefik3 -.->|/help|help3
classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300;
class Traefik,Traefik2,Traefik3 mermaid_entity
class api2,api3,help2,help3,ui2,ui3 mermaid_businessdata Info
这些规则以及地址映射到哪些内部容器的配置在Traefik配置文件中定义,可以通过Portainer或其他管理工具进行访问。
Traefik转发身份验证#
通过凯睿德制造安全门户提供身份验证支持,相当于在传统安装中安装和运行的IIS模块。Traefik收到的每个请求都会转移到’Traefik Forward Auth‘,以确定该请求是否具有有效的身份验证。
容器卷中的相关文件夹#
| 路径 | 描述 |
|---|---|
/opt/app/ | 应用程序主目录. |
Table: 用于Docker的Traefik Forward Auth相关文件夹
环境管理器#
环境管理器作为整个MES堆栈的监管者,并作为所有其他容器依赖的主要信息点进行协调。它执行类似于传统环境的实际安装应用程序的操作,并添加了功能,其中每次启动堆栈时,所有容器都有相同的入口点(一小段可执行代码),用于查询环境管理器的容器,以查看系统是否已安装和运行,以及是否需要为任何特定容器安装所需自定义包。当环境管理器响应来自所有其他容器的查询以指示系统已安装时,其他容器可以安全运行。
sequenceDiagram
MES堆栈中的容器->>环境管理器: MES是否已安装?
activate 环境管理器
环境管理器-->>MES堆栈中的容器: 还没有,正在检查
环境管理器-->>MES堆栈中的容器: 是的,你可以安全运行
deactivate 环境管理器
activate MES堆栈中的容器
MES堆栈中的容器->>+环境管理器: 有什么我应该知道的自定义组件吗?
deactivate MES堆栈中的容器
环境管理器-->>MES堆栈中的容器: 是的,在这儿
activate 环境管理器
MES堆栈中的容器->>环境管理器: 好的,在运行主应用程序之前安装
deactivate 环境管理器 定制包通常存储在由环境管理器绑定的其中一个卷中,并且可以通过它进行访问。
容器卷中的相关文件夹#
| 路径 | 描述 |
|---|---|
/opt/app/ | 应用程序主目录. |
/opt/packages/ | 自定义包位置. |
/opt/backups/ | 干净安装前的数据库备份位置. |
/var/log/cmf/ | 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹 |
Table: Docker的环境管理器相关文件夹
安全门户#
作为身份管理系统的多租户应用程序。有关更多信息,请参阅安全门户网站.
容器卷中的相关文件夹#
| 路径 | 描述 |
|---|---|
/app/ | 应用程序主目录. |
/var/log/cmf/ | 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹。 |
Table: Docker的凯睿德制造MES安全门户相关文件夹
MES主机#
操作凯睿德制造MES服务和管理核心的一组服务,为外部访问公开公共API。
容器卷中的相关文件夹#
| 路径 | 描述 |
|---|---|
/opt/app/ | 应用程序主目录.(包括主机配置文件和自定义库)。 |
/opt/document/ | 文件存储位置。 |
/var/log/cmf/ | 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹。 |
Table: Docker的凯睿德制造MES主机相关文件夹
MES GUI#
Web服务器用作凯睿德制造MES的主要视觉入口点。
容器卷中的相关文件夹#
| 路径 | 描述 |
|---|---|
/app/ | 应用程序主目录. |
/var/log/cmf/ | 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹。 |
Table: Docker的凯睿德制造MES GUI相关文件夹
MES 文档#
凯睿德制造MES的全套文档,包括本页。
容器卷中的相关文件夹#
| 路径 | 描述 |
|---|---|
/app/ | 应用程序主目录. |
/var/log/cmf/ | 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹。 |
Table: Docker的凯睿德制造MES文档相关文件夹
MES 消息总线#
一种高性能的发布和订阅消息总线。更多信息,请参阅消息总线.
容器卷中的相关文件夹#
| 路径 | 描述 |
|---|---|
/app/ | 应用程序主目录. |
/var/log/cmf/ | 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹。 |
Table: Docker的凯睿德制造MES消息总线相关文件夹
Grafana#
Grafana是一个可视化框架,允许您通过小部件和仪表板查询、可视化凯睿德制造MES的指标。
容器卷中的相关文件夹#
| 路径 | 描述 |
|---|---|
/var/lib/grafana/ | Grafana主机的共享目录。. |
Table: Docker的Grafana相关文件夹
SQL服务器#
此容器可通过DevOps中心选择性安装,其中包含一个SQL Server实例,该实例只能与联机数据库一起使用。它不包括:
- Reports
- ODS数据库
- DWH数据库
- Analysis Services
Info
这个容器是唯一一个可以配置为对外开放端口的容器。此端口用于通过SQL Server Management Studio访问数据库,SQLServer Management Studio可以通过以下名称访问服务器: 主机_实例名,[端口].
Warning
请注意,机器名和端口之间的字符分隔符是逗号(,),而不是传统的冒号(:)。B
容器卷中的相关文件夹#
| 路径 | 描述 |
|---|---|
/app/ | 应用程序主目录. |
/opt/backups/ | 干净安装前的数据库备份位置(与环境管理器共享) |
/var/opt/mssql/data/ | MSSQL数据文件 |
Table: Docker的边缘前向代理相关文件夹