testmcpplan
服务介绍
一、概述
MockMCPController是一款模拟的用于工业自动化领域的主控制程序(Master Control Program),本README旨在对其配置文件(JSON格式)的各项设置进行详细说明,帮助使用者理解和正确配置该服务。
二、配置文件结构
(一)根节点
配置文件的根节点为 mcpServiceConfig,其下包含了服务的各类相关配置信息。
(二)主要配置项
- serviceName:
- 类型:字符串
- 说明:服务的名称,此处为
MockMCPController,用于在系统中标识该服务。 - 示例值:
MockMCPController
- version:
- 类型:字符串
- 说明:服务的当前版本号,便于进行版本管理和跟踪更新情况。
- 示例值:
2.4.1
- environment:
- 类型:字符串
- 说明:服务运行的环境,常见的如
production(生产环境)、development(开发环境)、testing(测试环境)等,此处设置为production,表示当前配置适用于正式生产场景。 - 示例值:
production
- description:
- 类型:字符串
- 说明:对服务的简要描述,帮助使用者快速了解服务的大致用途。
- 示例值:
Mock Master Control Program for industrial automation
- enabled:
- 类型:布尔值
- 说明:用于控制服务是否启用,
true表示启用,false表示禁用。 - 示例值:
true
- heartbeatInterval:
- 类型:整数(单位:毫秒)
- 说明:服务向外部发送心跳信号的时间间隔,用于表明服务的存活状态,此处设置为每
30000毫秒(即30秒)发送一次心跳。 - 示例值:
30000
- maxConnections:
- 类型:整数
- 说明:服务允许的最大并发连接数,限制同时与服务建立连接的客户端数量,这里设置为
500。 - 示例值:
500
三、网络设置(networkSettings)
- listenAddress:
- 类型:字符串(IP地址格式)
- 说明:服务监听的网络地址,
0.0.0.0表示监听所有可用的网络接口,意味着服务可以接受来自任何网络地址的连接请求。 - 示例值:
0.0.0.0
- port:
- 类型:整数
- 说明:服务监听的端口号,用于客户端通过该端口与服务进行通信,此处设定为
7777。 - 示例值:
7777
- protocol:
- 类型:字符串
- 说明:使用的网络通信协议,常见的有
tcp(传输控制协议)、udp(用户数据报协议)等,这里采用的是tcp协议。 - 示例值:
tcp
- sslEnabled:
- 类型:布尔值
- 说明:是否启用 SSL/TLS 加密来保障通信安全,
true表示启用,当启用时需要配置对应的证书和密钥路径。 - 示例值:
true
- sslCertPath:
- 类型:字符串(文件路径格式)
- 说明:SSL/TLS 证书文件的存储路径,服务使用该证书向客户端证明自身身份,示例路径为
/etc/mcp/certs/server.crt。 - 示例值:
/etc/mcp/certs/server.crt
- sslKeyPath:
- 类型:字符串(文件路径格式)
- 说明:与证书对应的私钥文件存储路径,用于SSL/TLS加密通信中的解密等操作,示例路径为
/etc/mcp/certs/server.key。 - 示例值:
/etc/mcp/certs/server.key
- timeout:
- 类型:整数(单位:毫秒)
- 说明:网络连接的超时时间,超过该时间如果没有数据传输等操作,连接将会被关闭,此处设置为
15000毫秒(即15秒)。 - 示例值:
15000
四、数据库配置(databaseConfig)
- type:
- 类型:字符串
- 说明:所使用的数据库类型,当前配置为
postgres(PostgreSQL数据库),也可以是其他如mysql、sqlite等常见数据库类型。 - 示例值:
postgres
- host:
- 类型:字符串
- 说明:数据库服务器的主机名或IP地址,指定服务连接到哪个数据库实例。
- 示例值:
localhost- host: - 类型:字符串
- 说明:数据库服务器的主机名或IP地址,指定服务连接到哪个数据库实例。
- 示例值:
localhost
- host:
- 类型:字符串
- 说明:数据库服务器的主机地址,服务将通过该地址连接到数据库,示例中数据库主机名为
db.mcp-internal.com。 - 示例值:
db.mcp-internal.com
- port:
- 类型:整数
- 说明:数据库服务监听的端口号,不同数据库默认端口不同,对于PostgreSQL数据库,默认端口是
5432。 - 示例值:
5432
- databaseName:
- 类型:字符串
- 说明:服务要连接的数据库名称,这里是
mcp_operations,存放着与MCP操作相关的数据。 - 示例值:
mcp_operations
- username:
- 类型:字符串
- 说明:用于连接数据库的用户名,具备相应权限才能对数据库进行操作,此处用户名是
mcp_service。 - 示例值:
mcp_service
- password:
- 类型:字符串(实际使用中建议从环境变量获取,如示例中的
${DB_PASSWORD}形式) - 说明:连接数据库对应的密码,出于安全考虑,通常从环境变量等安全途径获取,避免明文写在配置文件中。
- 示例值:
${DB_PASSWORD}
- 类型:字符串(实际使用中建议从环境变量获取,如示例中的
- connectionPoolSize:
- 类型:整数
- 说明:数据库连接池的大小,即预先创建好的、可供服务复用的数据库连接数量,设置为
20个连接。 - 示例值:
20
- reconnectAttempts:
- 类型:整数
- 说明:当数据库连接出现问题时,服务尝试重新连接的次数,这里设置为
5次。 - 示例值:
5
五、认证配置(authentication)
- method:
- 类型:字符串
- 说明:采用的认证方法,当前配置为
jwt(JSON Web Token),通过发放和验证JWT令牌来确认用户身份。 - 示例值:
jwt
- tokenExpiry:
- 类型:整数(单位:秒)
- 说明:JWT令牌的有效时间,超过这个时间后令牌将失效,需重新获取,这里设置为
3600秒(即1小时)。 - 示例值:
3600
- issuer:
- 类型:字符串
- 说明:JWT令牌的颁发者标识,用于验证令牌来源合法性,示例为
mcp-auth-service。 - 示例值:
mcp-auth-service
- allowedRoles:
- 类型:数组(字符串元素)
- 说明:允许访问服务的用户角色列表,只有具备这些角色之一的用户才能成功通过认证,当前包含
admin、operator、monitor这几个角色。 - 示例值:
["admin", "operator", "monitor"]
- ldapFallback:
- 类型:对象
- 说明:配置了LDAP(轻量级目录访问协议)作为备用认证方式的相关设置,当JWT认证失败时可尝试使用LDAP认证。
- enabled:
- 类型:布尔值
- 说明:是否启用LDAP备用认证,
true表示启用。 - 示例值:
true
- server:
- 类型:字符串(LDAP服务器地址格式)
- 说明:LDAP服务器的地址,示例为
ldap://auth.mcp-internal.com。 - 示例值:
ldap://auth.mcp-internal.com
六、模块配置(modules)
模块配置是一个数组,每个元素对应一个服务内的模块,以下以其中一个模块为例说明各字段含义:
- name:
- 类型:字符串
- 说明:模块的名称,用于在服务内部唯一标识该模块,例如
ProcessMonitor表示进程监控模块。 - 示例值:
ProcessMonitor
- enabled:
- 类型:布尔值
- 说明:用于控制该模块是否启用,
true表示启用该模块,使其能正常运行并发挥相应功能。 - 示例值:
true
- configPath:
- 类型:字符串(文件路径格式)- 说明:模块自身配置文件的存储路径,模块可能会从该文件中读取更多个性化的配置参数,示例路径为
/etc/mcp/modules/process-monitor.json。
- 类型:字符串(文件路径格式)- 说明:模块自身配置文件的存储路径,模块可能会从该文件中读取更多个性化的配置参数,示例路径为
- 示例值:
/etc/mcp/modules/process-monitor.json
- logLevel:
- 类型:字符串
- 说明:该模块的日志记录级别,常见的有
info(信息级别,记录一般操作信息)、warning(警告级别,记录可能存在问题的情况)、error(错误级别,记录出现错误的情况)等,此处对于ProcessMonitor模块设置为info。 - 示例值:
info
七、日志配置(logging)
- logFile:
- 类型:字符串(文件路径格式)
- 说明:服务日志文件的存储路径,所有的日志信息将会被记录到该文件中,示例路径为
/var/log/mcp/service.log。 - 示例值:
/var/log/mcp/service.log
- maxFileSize:
- 类型:整数(单位:字节)
- 说明:单个日志文件允许的最大大小,当文件达到该大小后,可能会进行日志轮转等操作,此处设置为
10485760字节(即10MB)。 - 示例值:
10485760
- maxBackupFiles:
- 类型:整数
- 说明:最多保留的日志备份文件数量,用于防止日志文件过多占用磁盘空间,这里设置为
5个备份文件。 - 示例值:
5
- logLevel:
- 类型:字符串
- 说明:整个服务的日志记录级别,决定了哪些级别的日志会被记录,设置为
info,表示记录信息及更高级别的日志(警告、错误等)。 - 示例值:
info
- syslogEnabled:
- 类型:布尔值
- 说明:是否启用将日志发送到系统日志(syslog)服务,
true表示启用,方便集中管理和查看系统内多个服务的日志。 - 示例值:
true
- syslogFacility:
- 类型:字符串
- 说明:指定发送到syslog服务的日志设施(facility),不同设施用于区分不同类型的服务或应用,此处设置为
local0。 - 示例值:
local0
八、指标监控配置(metrics)
- enabled:
- 类型:布尔值
- 说明:是否启用指标监控功能,
true表示启用,启用后可以收集和暴露服务的相关运行指标。 - 示例值:
true
- endpoint:
- 类型:字符串
- 说明:指标数据暴露的HTTP端点路径,外部监控工具可以通过访问该端点获取服务的指标信息,示例路径为
/metrics。 - 示例值:
/metrics
- scrapeInterval:
- 类型:整数(单位:毫秒)
- 说明:指标数据的采集间隔时间,监控工具将按照这个时间间隔来获取最新的指标数据,此处设置为每
60000毫秒(即1分钟)采集一次。 - 示例值:
60000
- exporters:
- 类型:数组(字符串元素)
- 说明:指定指标数据的导出方式,也就是可以将指标发送到哪些外部监控系统,当前配置支持导出到
prometheus(普罗米修斯监控系统)和graphite这两个常见的监控工具。 - 示例值:
["prometheus", "graphite"]