说明
v3.4.0之前KubeSphere默认使用es作为日志系统,由于es出现es无限重启,但是启动不起来问题。现将es更换为opensearch(注意统计服务也需要修改)。
v3.4.0之后默认使用opensearch作为日志存储,不用修改。
- 导入opensearch镜像
导入opensearch镜像,目前使用本地优先默认。如果使用离线模式部署,需要推送到harbor私有仓库。在线部署也可让docker自动拉取。opensearch.tar.gz
- 部署opensearch
将opensearch.zip上传至服务器,解压后,执行除rizhijieshouqi.yaml以外的yaml
代码语言:javascript复制kubectl apply -f ***.yaml
将会添加4个opensearch服务和两个opensearch工作负载
之前的es服务和工作负载可不理会。
- 修改日志接收器
点击es,进入后编辑yaml,将rizhijieshouqi.yaml中的内容替换当前内容。主要是修改红框中的内容。
以上修改后,可以看到保密字典中的fluent-bit配置以修改为opensearch的
查看fluent和opensearch日志是否有报错
- 验证
通过接口访问工具,查看opensearch日志,注意需要添加header:Authorization:Basic YWRtaW46YWRtaW4=
可以看到总日志数一直在增加,kubesphere右下角容易日志数据不再变化(暂不知其从何处取数据,若知道可修改为opensearch地址)。
- es对应统计类服务改写
日志相关统计,使用专门统计服务对es数据分析。由于更换为opensearch,需要调整统计服务的查询。
ps:了解es和opensearch的历史可知,opensearch从es 7.1某个版本后分离出来。统计服务使用的es包改为v6版本,如果使用v7及以上版本会报错不是es协议
代码语言:javascript复制import ""github.com/elastic/go-elasticsearch/v6""
//主要是添加header
header := http.Header{}
header.Set("Authorization", "Basic YWRtaW46YWRtaW4=")
cfg := elasticsearch.Config{
Addresses: []string{
utils.Config.ElasticSearch.Addr,
},
Header: header,//主要是添加header
Transport: &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
MaxIdleConnsPerHost: 10,
MaxIdleConns: 10,
MaxConnsPerHost: 100,
IdleConnTimeout: 10 * time.Second,
ResponseHeaderTimeout: 5 * time.Second,
DialContext: (&net.Dialer{
Timeout: 1 * time.Second,
KeepAlive: 30 * time.Second,
DualStack: true,
}).DialContext,
},
// ...
}
esClient, err = elasticsearch.NewClient(cfg)
代码语言:javascript复制