OpenSearch, SkyWalking 使用外部服务
当前的实现 OpenSearch 是系统安装时安装到 k8s 的 common 名空间下的;SkyWalking 是通过模板安装到 newcsl 租户名空间下的 <br/>
用户需要使用 k8s 外部安装的这两个服务
使用外部 OpenSearch 服务的前提
平台对 OpenSearch-Dashboard 做过一些适配性修改,主要有以下内容:
- 自动生成用户
- 自动登录
- 屏蔽了一些界面上的元素
- 查看日志时,根据当前登录用户和当前服务自动增加过滤条件
- 增加了当前查询结果导出功能
如果用户只使用外部的 OpenSearch 服务,只需要版本上能对应上(OpenSearch 和 OpenSearch-Dashboard 在版本上必须一致) 如果用户同时要使用外部的 OpenSearch-Dashboard,需要使用平台适配过的版本(可以提供源码或编译后的版本)
使用外部 SkyWaling 服务的前提
平台对 SkyWalking 的 OAP-Server 做过一些适配性修改,主要有以下内容:
- 服务与 POD 的对应关系
- ID 处理的问题
平台对 SkyWalking 的 Java-Agent 做过一些适配性修改,主要有以下内容:
- 类加载问题
平台对 SkyWalking 的 UI 做过一些适配性修改,主要有以下内容:
- 增加根目录 /skywalking
- 屏蔽了一些界面上的元素
用户只能使用平台适配过的版本(可以提供源码或编译后的版本)
使用外部 OpenSearch 服务的修改
- k8s 的 common 名空间下的
- fluent-bit 守护进程中使用的环境变量
- name: ELASTICSEARCH_HOST
value: ${内部OPENSEARCH服务的地址}
- name: ELASTICSEARCH_PORT
value: ${内部OPENSEARCH服务的端口}
- name: ELASTICSEARCH_SCHEME
value: http # 因skywalking的原因,目前只支持HTTP
- name: ELASTICSEARCH_USERNAME
value: admin #内部OPENSEARCH管理员
- name: ELASTICSEARCH_PASSWORD
value: adminPassword #内部OPENSEARCH管理员密码
- name: ELASTICSEARCH_HOST2
value: ${要使用的外部OPENSEARCH服务的地址}
- name: ELASTICSEARCH_PORT2
value: ${要使用的外部OPENSEARCH服务的端口}
- name: ELASTICSEARCH_SCHEME2
value: http # 因skywalking的原因,目前只支持HTTP
- name: ELASTICSEARCH_USERNAME2
value: admin #外部OPENSEARCH管理员,如果没有启用帐户,可空
- name: ELASTICSEARCH_PASSWORD2
value: adminPassword #外部OPENSEARCH管理员密码,如果没有启用帐户,可空
- name: LOGSTASH_HTTP_URL
value: url eg. http://192.168.0.64:4560
- logstash.conf 示例
input {
http {
port => 4560
}
}
filter{
json {
source => "message"
}
mutate {
remove_field => ["url","http","user_agent","message","event","host","@version"]
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "%{[namespace]}-%{+yyyy.MM.dd}"
}
stdout { codec => rubydebug }
}
- opensearch-dashboards 部署中使用的环境变量
- 如果使用外部的 dashboard 服务,需要修改 console 名空间下的 console-service 服务(见下节)
- name: OPENSEARCH_HOSTS
value: http://opensearch-master:9200
- name: OPENSEARCH_USERNAME
value: admin #内部OPENSEARCH管理员
- name: OPENSEARCH_PASSWORD
value: adminPassword #内部OPENSEARCH管理员密码
- k8s 的 console 名空间下的 console-service 服务
- 修改下面两个功能的实现,定义两个环境变量(在 console-service 的 YAML 上加)
- getOpenSearchUrl
- 缺省实现:"http://opensearch-master." + NAMESPACE_PREFIX + "common:9200/"
- 增加环境变量:OPENSEARCH_SERVER_URL
- getOpenSearchSecurityPluginUrl
- 缺省实现:"http://opensearch-dashboards." + NAMESPACE_PREFIX + "common:5601/opensearch"
- 增加环境变量:OPENSEARCH_DASHBOARD_URL
- getOpenSearchUrl
- 已有环境变量
- OPENSEARCH_ADMIN_PASSWORD
- OPENSEARCH_OSD_VERSION
- 修改下面两个功能的实现,定义两个环境变量(在 console-service 的 YAML 上加)
使用外部 SkyWaling 服务的修改
- 在租户的名空间下配置字典 global.conf 上加
- SKYWALKING_URL,指向 skywalking 界面服务(webapp)
- SW_GRPC_LOG_SERVER_HOST,指向 skywalking 服务中的 oap-server 的地址
- SW_GRPC_LOG_SERVER_PORT,指向 skywalking 服务中的 oap-server 的端口
- 在租户的名空间下配置字典 otel-collector-conf-kubernetes-monitor 上 otlp.endpoint 指向外部 oap-server
- k8s 的 console 名空间下的 console-service 服务
- 增加环境变量: SKYWALKING_URL