k8s部署elk+filebeat

Kubernetes(k8s)中部署ELK+Filebeat实践
本文详细介绍了如何在Kubernetes环境下部署Elasticsearch(ELK)栈,包括Elasticsearch集群、Logstash、Kibana的配置与部署,以及Filebeat的日志收集设置,确保日志数据能够被有效管理和分析。

k8s部署elk+filebeat 第一步elasticsearch集群

cat elasticsearch.yaml

apiVersion: v1
kind: Service
metadata:
name: elasticsearch
namespace: kafka
labels:
k8s-app: elasticsearch
spec:
ports:

  • name: transport
    port: 9300
    protocol: TCP
    targetPort: 9300
    clusterIP: None
    selector:
    k8s-app: elasticsearch
    role: master

apiVersion: v1
kind: ServiceAccount
metadata:
name: elasticsearch
namespace: kafka
labels:
k8s-app: elasticsearch
—**
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: elasticsearch
labels:
k8s-app: elasticsearch
rules:

  • apiGroups:
    • “”
      resources:
    • “services”
    • “namespaces”
    • “configmaps”
    • “endpoints”
    • “secrets”
    • “pods”
      verbs:
    • “get”
    • “list”
    • “watch”

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: kafka
name: elasticsearch
labels:
k8s-app: elasticsearch
subjects:

  • kind: ServiceAccount
    name: elasticsearch
    namespace: kafka
    apiGroup: “”
    roleRef:
    kind: ClusterRole
    name: elasticsearch
    apiGroup: “”

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch-master
namespace: kafka
labels:
k8s-app: elasticsearch
role: master
spec:
replicas: 4
serviceName: elasticsearch-master
selector:
matchLabels:
k8s-app: elasticsearch
role: master
template:
metadata:
labels:
k8s-app: elasticsearch
role: master
spec:
serviceAccountName: elasticsearch
containers:
- image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
name: elasticsearch-mater
resources:
# need mo

### 部署ELK堆栈于Kubernetes #### 准备工作 为了成功部署ELK(Elasticsearch, Logstash 和 Kibana),需先确认Kubernetes集群已正常运行并具备足够的资源来支持这些服务。此外,建议安装Helm以简化应用程序的部署过程[^3]。 #### 创建命名空间 创建专门用于容纳ELK组件的新命名空间可以更好地管理和隔离资源: ```bash kubectl create namespace elk-stack ``` #### 安装Elasticsearch 通过官方提供的Helm图表可方便地设置Elasticsearch实例。这一步骤会自动处理存储卷声明和其他必要的配置项: ```bash helm repo add elastic https://helm.elastic.co helm install elasticsearch elastic/elasticsearch --namespace=elk-stack ``` 等待几分钟直到Pod处于就绪状态后再继续下一步操作[^2]. #### 设置Logstash 对于Logstash而言,在`logstash.yml`中指定正确的Elasticsearch主机地址非常重要。如下所示为一个典型的YAML片段,它指定了连接到名为`es-kibana-0.es-kibana.kube-system.svc.cluster.local`的服务端点的方式[^1]: ```yaml http.host: "0.0.0.0" xpack.monitoring.elasticsearch.hosts: ["http://es-kibana-0.es-kibana.kube-system:9200"] ``` 接着利用上述配置文件启动Logstash容器: ```bash helm install logstash elastic/logstash \ --set config.http.host="0.0.0.0",config.xpack.monitoring.elasticsearch.hosts=http://elasticsearch-master.elk-stack:9200 \ --namespace=elk-stack ``` 注意这里假设Elasticsearch主节点名称为`elasticsearch-master`. #### 启动Kibana可视化工具 最后同样借助Helm完成Kibana的快速部署,并将其指向先前建立好的Elasticsearch集群作为数据源: ```bash helm install kibana elastic/kibana \ --set env.ELASTICSEARCH_HOSTS=http://elasticsearch-master.elk-stack:9200 \ --namespace=elk-stack ``` 此时应该可以通过浏览器访问Kibana界面来进行日志分析等工作了. #### 测试连通性 确保所有组件都能相互通信至关重要。可以从任意客户端尝试向各部分发送请求验证其可用性和响应情况。 ```bash curl -X GET "http://localhost:5601/api/status" # 检查Kibana curl -X GET "http://localhost:9200/_cluster/health?pretty=true" # 查看Elasticsearch健康状况 ``` 以上命令假定本地机器已经正确设置了port-forward规则以便能够触及目标服务.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值