在kibana6.7版本之后自带支持中文,默认配置为英文,需要修改默认配置
网上大部分是非k8s部署的修改教程,以下提供k8s部署时的修改方法
关于k8s下部署EFK集群可以参考另一篇博文:k8s 日志收集,部署EFK-elasticsearch+fluentd+kibana
对于非k8s部署:
只需要修改kibana配置文件,添加一行:i18n.locale: “zh-CN”,即可
kibana默认安装配置文件路径:/usr/share/kibana/config/kibana.yml
对于k8s部署,需要借助configmap进行配置挂载:
apiVersion: v1
kind: ConfigMap
metadata:
namespace: kube-log
name: kibana-config
labels:
app: kibana
data:
kibana.yml: |-
server.name: kibana
server.host: "0"
i18n.locale: zh-CN #设置默认语言为中文
elasticsearch:
hosts: ${ELASTICSEARCH_HOSTS} #es集群连接地址,由于我这都都是k8s部署且在一个ns下,可以直接使用service name连接
---
apiVersion: v1
kind: Service
metadata:
name: kibana
namespace: kube-log
labels:
app: kibana
spec:
type: NodePort
ports:
- port: 5601
nodePort: 30032
selector:
app: kibana
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: kibana
namespace: kube-log
labels:
app: kibana
spec:
replicas: 1
selector:
matchLabels:
app: kibana
template:
metadata:
labels:
app: kibana
spec:
nodeName: k8s-elasticsearch #此处指定部署到k8s-elasticsearch节点,如果es集群分布在不同物理机,可使用nodeSelector+标签指定部署
containers:
- name: kibana
image: docker.elastic.co/kibana/kibana:7.2.0 #kibana版本需要与es版本一致
imagePullPolicy: IfNotPresent
resources:
limits:
cpu: 1000m
requests:
cpu: 100m
env:
- name: ELASTICSEARCH_URL
value: http://elasticsearch:9200 #设置为handless service dns地址即可
- name: ELASTICSEARCH_HOSTS
value: http://elasticsearch:9200 #变量,供configmap引用
ports:
- containerPort: 5601
volumeMounts:
- name: config
mountPath: /usr/share/kibana/config/kibana.yml #kibana配置文件挂载地址
readOnly: true
subPath: kibana.yml
volumes:
- name: config
configMap:
name: kibana-config #对应configmap名称
$ kubectl apply -f kibana.yaml
重启kibana,可以看到语言已经变为中文,大功告成