在kubernetes中部署企业级ELK并使用其APM( 三 )
我们可以看到集群状态是green , 表示正常 。
三、部署KibanaKibana是一个简单的可视化ES数据的工具 , 其yaml清单如下:
---apiVersion: v1kind: ConfigMapmetadata:namespace: elasticname: kibana-configlabels:app: kibanadata:kibana.yml: |-server.host: 0.0.0.0elasticsearch:hosts: ${ELASTICSEARCH_HOSTS}username: ${ELASTICSEARCH_USER}password: ${ELASTICSEARCH_PASSWORD}---apiVersion: v1kind: Servicemetadata:namespace: elasticname: kibanalabels:app: kibanaspec:ports:- port: 5601name: webinterfaceselector:app: kibana---apiVersion: networking.k8s.io/v1beta1kind: Ingressmetadata:annotations:prometheus.io/http-probe: 'true'prometheus.io/scrape: 'true'name: kibananamespace: elasticspec:rules:- host: kibana.coolops.cnhttp:paths:- backend:serviceName: kibanaservicePort: 5601path: /---apiVersion: apps/v1kind: Deploymentmetadata:namespace: elasticname: kibanalabels:app: kibanaspec:selector:matchLabels:app: kibanatemplate:metadata:labels:app: kibanaspec:containers:- name: kibanaimage: docker.elastic.co/kibana/kibana:7.8.0ports:- containerPort: 5601name: webinterfaceenv:- name: ELASTICSEARCH_HOSTSvalue: ""- name: ELASTICSEARCH_USERvalue: "elastic"- name: ELASTICSEARCH_PASSWORDvalueFrom:secretKeyRef:name: elasticsearch-pw-elastickey: passwordvolumeMounts:- name: configmountPath: /usr/share/kibana/config/kibana.ymlreadOnly: truesubPath: kibana.ymlvolumes:- name: configconfigMap:name: kibana-config---然后执行kubectl apply -f kibana.yaml创建kibana , 查看pod的状态是否为running 。
# kubectl get pod -n elastic NAMEREADYSTATUSRESTARTSAGEelasticsearch-client-f79cf4f7b-pbz9d1/1Running030melasticsearch-data-01/1Running033melasticsearch-master-77d5d6c9db-gklgd1/1Running036melasticsearch-master-77d5d6c9db-gvhcb1/1Running036melasticsearch-master-77d5d6c9db-pflz61/1Running036mkibana-6b9947fccb-4vp291/1Running03m51s如下图所示 , 使用上面我们创建的 Secret 对象的 elastic 用户和生成的密码即可登录:
文章插图
登录成功后即可进入以下界面 。
文章插图
四、部署Elastic APMElastic APM 是 Elastic Stack 上用于应用性能监控的工具 , 它允许我们通过收集传入请求、数据库查询、缓存调用等方式来实时监控应用性能 。 这可以让我们更加轻松快速定位性能问题 。 Elastic APM 是兼容 OpenTracing 的 , 所以我们可以使用大量现有的库来跟踪应用程序性能 。 比如我们可以在一个分布式环境(微服务架构)中跟踪一个请求 , 并轻松找到可能潜在的性能瓶颈 。
文章插图
Elastic APM 通过一个名为 APM-Server 的组件提供服务 , 用于收集并向 ElasticSearch 以及和应用一起运行的 agent 程序发送追踪数据 。
4.1、安装APM Server配置清单如下(apm-server.yaml):
---apiVersion: v1kind: ConfigMapmetadata:namespace: elasticname: apm-server-configlabels:app: apm-serverdata:apm-server.yml: |-apm-server:host: "0.0.0.0:8200"output.elasticsearch:hosts: ['${ELASTICSEARCH_HOST:elasticsearch}:${ELASTICSEARCH_PORT:9200}']username: ${ELASTICSEARCH_USERNAME}password: ${ELASTICSEARCH_PASSWORD}setup.kibana:host: '${KIBANA_HOST:kibana}:${KIBANA_PORT:5601}'---apiVersion: v1kind: Servicemetadata:namespace: elasticname: apm-serverlabels:app: apm-serverspec:ports:- port: 8200name: apm-serverselector:app: apm-server---apiVersion: apps/v1kind: Deploymentmetadata:namespace: elasticname: apm-serverlabels:app: apm-serverspec:replicas: 1selector:matchLabels:app: apm-servertemplate:metadata:labels:app: apm-serverspec:containers:- name: apm-serverimage: docker.elastic.co/apm/apm-server:7.8.0env:- name: ELASTICSEARCH_HOSTvalue: elasticsearch-client.elastic.svc.cluster.local- name: ELASTICSEARCH_PORTvalue: "9200"- name: ELASTICSEARCH_USERNAMEvalue: elastic- name: ELASTICSEARCH_PASSWORDvalueFrom:secretKeyRef:name: elasticsearch-pw-elastickey: password- name: KIBANA_HOSTvalue: kibana.elastic.svc.cluster.local- name: KIBANA_PORTvalue: "5601"ports:- containerPort: 8200name: apm-servervolumeMounts:- name: configmountPath: /usr/share/apm-server/apm-server.ymlreadOnly: truesubPath: apm-server.ymlvolumes:- name: configconfigMap:name: apm-server-config然后执行kubectl apply -f apm-server.yaml , 查看其pod状态 , 当其成为running则代表启动成功 。
# kubectl get pod -n elasticNAMEREADYSTATUSRESTARTSAGEapm-server-667bfc5cff-7vqsd1/1Running091selasticsearch-client-f79cf4f7b-pbz9d1/1Running0177melasticsearch-data-01/1Running03helasticsearch-master-77d5d6c9db-gklgd1/1Running03h3melasticsearch-master-77d5d6c9db-gvhcb1/1Running03h3melasticsearch-master-77d5d6c9db-pflz61/1Running03h3mkibana-6b9947fccb-4vp291/1Running0150m4.2、部署APM Agent这里以Java agent为例 。 接下来我们在示例应用程序 spring-boot-simple 上配置一个 Elastic APM Java agent 。 首先我们需要把 elastic-apm-agent-1.8.0.jar 这个 jar 包程序内置到应用容器中去 , 在构建镜像的 Dockerfile 文件中添加一行如下所示的命令直接下载该 JAR 包即可:
- 麒麟|荣耀新款,麒麟810+4800万超清像素,你还在犹豫什么呢?
- 智能手机市场|华为再拿第一!27%的份额领跑全行业,苹果8%排在第四名!
- 空调|让格力、海尔都担忧,中国取暖“新潮物”强势来袭,空调将成闲置品?
- 行业|现在行业内客服托管费用是怎么算的
- 国外|坐拥77件专利,打破国外的垄断,造出中国最先进的家电芯片
- 零部件|马瑞利发力电动产品,全球第七大零部件供应商在转型
- 手机基带|为了5G降低4G网速?中国移动回应来了:罪魁祸首不是运营商
- 通气会|12月4~6日,2020中国信息通信大会将在成都举行
- 中国|浅谈5G移动通信技术的前世和今生
- 俄罗斯手机市场|被三星、小米击败,华为手机在俄罗斯排名跌至第三!
