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
    • 已有环境变量
      • OPENSEARCH_ADMIN_PASSWORD
      • OPENSEARCH_OSD_VERSION

使用外部 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

results matching ""

    No results matching ""