引言
在安装完成时候可以启用日志组件,这样会安装 ES 组件并可以收集所有部署组件的日志,也可以收集审计日志,然后可以很方便的在 KubeSphere 平台上进行日志查询。
但是在实际使用过程中发现使用 KubeSphere 自身的 ES 会很重,而且官方也建议我们将日志接入到外部的 ES 中减轻 Kubernetes 的压力。
以下为操作实战。
前置步骤
ES 集群需支持 http 协议
① 搭建好外部 ES 集群,使用 http 协议(非本文重点)。
测试环境 IP: 172.30.10.226,172.30.10.191,172.30.10.184
port: 9200
username: elastic
password: changeme② 对 ES 做负载均衡。
有三种常见的做法:
使用 nginx 做负载均衡; 单协调节点; 通过自定义 service 和 endpoints 负载均衡。本文档基于第三种负载均衡方案(通过 endpoints 负载)做对接。
备份 ks-installer
管理员账号登录 KubeSphere,在平台管理 – 集群管理 – CRD 中搜索 clusterconfiguration,在自定义资源中,点击 ks-installer 选择编辑 YAML ,复制备份。
关闭内部 ES 对接外部 ES(如果未开启日志则省略)
集群开启了内部 Elasticsearch,会存在如下系统组件和日志接收器
① 系统组件:
② 日志接收器:
容器日志、资源事件、审计日志(不开启不会有日志接收器)
接收器地址为内部 Elasticsearch 地址:elasticsearch-logging-data.kubesphere-logging-system.svc:9200
关闭内部 ES 并卸载日志相关可插拔组件
执行命令编辑 ks-installer:
① 卸载日志系统,将 ks-installer 参数的 logging.enabled 字段的值从 true 改为 false。
② 卸载事件日志系统,将 ks-installer 参数的 events.enabled 字段的值从 true 改为 false。
③ 卸载审计日志系统,将 ks-installer 参数的 auditing.enabled 字段的值从 true 改为 false。
④ 配置文件的最后,删除如下内容:
执行命令检查安装过程:
执行命令卸载相关可插拔组件:
卸载过程中可能出现如下异常:
crd 资源删除时出现问题,尝试使用如下命令
创建 namespace
自定义 service 负载均衡 ES 节点
es-service.yaml
es-endpoints.yaml
ip 地址修改为真实要对接的 ES 集群节点的 IP 地址。
执行命令创建自定义 SVC:
“平台管理-集群管理-应用负载-服务”搜索 es-service。
es-service 服务地址:es-service.kubesphere-logging-system.svc。
开启日志并对接外部 ES
在平台管理 – 集群管理 – CRD 中搜索 clusterconfiguration,在自定义资源中,点击 ks-installer,修改配置:
开启容器日志、审计日志分别修改
logging.enabled: true
auditing.enabled: true
修改外部 ES 配置
es.basicAuth.enabled: true
es.basicAuth.password
es.basicAuth.username
es.externalElasticsearchUrl
es.externalElasticsearchPort
修改日志保存日期(默认 7 天)
logMaxAge
修改日志索引前缀(默认 logstash)
elkPrefix(开发:dev,测试:sit,生产:prod)
执行命令检查安装过程
执行命令,查看对应的 ConfigMap 配置:
执行命令编辑对应 output(如果已自动修改则不需要手动修改):
修改 host 修改索引 (开发、测试、生产前缀分别对应 ks-dev-、ks-sit-、ks-prod-)重启 ks-apiserver
验证
日志接收器:
查询审计日志:
以上就是KubeSphere接入外部Elasticsearch实战示例的详细内容,更多关于KubeSphere接入Elasticsearch的资料请关注服务器之家其它相关文章!
原文链接:https://juejin.cn/post/7175023701543354427