Kubernetes上安装ELK监控

安装elk operator自定义的resource

里面包含了es,kibana,filebeat等资源的定义,以及RBAC

kubectl apply -f https://download.elastic.co/downloads/eck/1.3.1/all-in-one.yaml

在这里插入图片描述

安装elasticsearch

cat <<EOF | kubectl apply -f -
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: quickstart
spec:
  version: 7.10.2
  nodeSets:
    - name: default
      count: 1
      config:
        node.store.allow_mmap: false
EOF

开放端口

kubectl port-forward service/quickstart-es-http 9200

默认用户名:elastic,密码:

PASSWORD=$(kubectl get secret quickstart-es-elastic-user -o go-template='{{.data.elastic | base64decode}}')
echo $PASSWORD

测试访问

curl -u "elastic:$PASSWORD" -k "https://localhost:9200"

在这里插入图片描述

部署Kibana

创建kibana

cat <<EOF | kubectl apply -f -
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  name: quickstart
spec:
  version: 7.10.2
  count: 1
  elasticsearchRef:
    name: quickstart
EOF

在这里插入图片描述

开放端口

kubectl port-forward service/quickstart-kb-http 5601

默认用户名:elastic,获取密码(同es密码)

kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode; echo

访问kibana,注意是https

https://localhost:5601

在这里插入图片描述
kibana已经可以访问了,要收集containers日志还要创建filebeat。

filebeat 测试

k create -f https://raw.githubusercontent.com/chenjiangtao/spring-boot-on-kubernetes/main/kubernetes/elk/all-in-one/filebeat.yaml

在这里插入图片描述
在kibana中创建filebeat索引,已经可以看到k8s的日志了
在这里插入图片描述

使用busybox模拟应用打印日志

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: counter
spec:
  containers:
  - name: count
    image: busybox
    # 输出hello world 
    args: [/bin/sh, -c,
            'i=0; while true; do echo "hello world: $i: $(date)"; i=$((i+1)); sleep 3; done']
EOF        

可以看到filebeat已经收集到了
在这里插入图片描述

参考:
quickstart https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-quickstart.html
演示代码位置:https://github.com/chenjiangtao/spring-boot-on-kubernetes/tree/main/kubernetes/elk/all-in-one

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Kubernetes是一个用于容器编排和管理的开源平台,而ELK是一套用于日志分析和可视化的工具组合,包括Elasticsearch、Logstash和Kibana。在Kubernetes集群中部署ELK的目的是为了对集群中的日志信息进行收集、存储、分析和展示。 首先,我们需要为ELK组件创建Kubernetes Deployment和Service对象。Deployment定义了应用的副本数量和升级策略,Service提供了一个稳定的网络入口。 然后,我们需要为Elasticsearch、Logstash和Kibana分别创建Pod模板。Pod是Kubernetes中最小的可部署的单元,包含了一个或多个容器。Elasticsearch是用于存储和索引日志的分布式搜索引擎,Logstash用于收集、转换和发送日志数据,Kibana提供了可视化和查询界面。 在Pod模板中,我们需要指定每个容器的镜像、环境变量、容器端口等信息。特别注意的是,在Elasticsearch配置中,我们需要指定节点的名称、集群名称和持久化存储的挂载路径。 接下来,我们需要为每个组件创建Kubernetes Service对象,以便在集群内进行服务发现和负载均衡。Service会为每个Pod分配一个稳定的虚拟IP地址,并将这些地址与Service的名称关联起来。 最后,我们需要为Elasticsearch集群配置存储卷,以便持久化存储数据。Kubernetes支持多种存储卷类型,例如本地存储、网络存储和云存储等。 完成上述步骤后,我们就可以在Kubernetes集群中部署ELK。在部署过程中,Kubernetes会根据我们定义的Deployment和Service对象,自动调度和管理ELK组件的副本数量、网络和存储等资源。这样,我们就可以通过Kibana访问ELK集群,对日志进行搜索、过滤和可视化展示,实现集群日志的实时监控和分析。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值