关于日志收集部分,没有用到logstash,而是用的瑞士军刀rsyslog,可以支持百万级每秒日志的收集。关于这部分的安装实践请参考日志收集rsyslog+es+kibana
下面介绍下如何用helm搭建ES和kibana的k8s集群
1. 创建ES集群,默认3个master和2个client, monitor是我本地的namespace
helm install --name mdsp-es stable/elasticsearch --namespace monitor
补充官方安装过程:https://github.com/helm/charts/tree/master/stable/elasticsearch
需要注意的是,这里代码仓库里有一个values.yaml,如果你需要修改你的参数,譬如修改master的个数,可以创建的时候应用你的values.yaml
helm install --name mdsp-es stable/elasticsearch --namespace monitor -f values.yaml
2. 通过Ingress把这个ES集群暴露出去
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: elasticsearch
namespace: monitor
spec:
rules:
- host: elasticsearch.mindsphere.cn
http:
paths:
- path:
backend:
serviceName: mdsp-es-elasticsearch-client
servicePort: 9200
3. 创建Kibana集群
同样给出git官方地址: https://github.com/helm/charts/tree/master/stable/kibana
修改values.yaml的配置如下, 配置elasticsearch的地址。
files:
kibana.yml:
## Default Kibana configuration from kibana-docker.
server.name: kibana
server.host: "0"
elasticsearch.hosts: http://elasticsearch.mindsphere.cn
helm install --name mdsp-kibana stable/kibana --namespace monitor -f values.yaml
注意这里的values.yaml不要跟es的yaml搞混淆,都是同样的名字,内容不一样。
4. 给Kibana部署打个Patch,使其ES配置生效
kubectl -n monitor patch deployments mdsp-kibana --patch '{
"spec": {
"template": {
"spec": {
"hostAliases": [
{
"hostnames": [
"elasticsearch.mindsphere.cn"
],
"ip": "139.24.217.xxx"
}
]
}
}
}
}'
等待Kibana重新部署以后,会看到kibana能识别到ES的地址了。
5. 通过Ingress让Kibana提供外部访问
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: kibana
namespace: monitor
spec:
rules:
- host: kibana.mindsphere.cn
http:
paths:
- path:
backend:
serviceName: mdsp-kibana
servicePort: 5601
6. 完成
在本地hosts文件里配置好
139.24.217.xxx kibana.mindsphere.cn
访问一下Kibana
![](https://img.haomeiwen.com/i2010339/0cea89396f6fc319.png)
这样基于k8s的EK集群就很快搭建好了。
总觉得关于配置ES地址的地方,应该有其他更好的方式,而不需要打patch。
网友评论