K8S搭建ELK(Elasticsearch,Kibana,Logstash和Filebeat)

K8s部署elk(参考) ELFK是ElasticsearchLogstashFilebeatKibana的简称,是目前最流行的开源日志分析平台。首先,创建一个命名空间来管理ELFK服务:kubectl create namespace elfkkubectl get namespacesapiVersion: apps/v1 kind: Deployment metadata: name: logstash namespace: elfk spec: replicas: 1 selector: matchLabels: ap 阅读详情

部署前提:

1、完成K8S集群搭建,搭建参考:

基于ECS云主机搭建k8s集群-详细过程_Soft_Engneer的博客-CSDN博客Kubernetes集群详细部署过程,K8s避坑记录,快速搭建环境并把主要时间花在专注k8s的学习上https://blog.csdn.net/Soft_Engneer/article/details/124517916?spm=1001.2014.3001.55022、完成GlusterFS共享存储部署,搭建参考:

CentOS安装GlusterFS_Soft_Engneer的博客-CSDN博客glusterfs部署及测试https://blog.csdn.net/Soft_Engneer/article/details/124554384?spm=1001.2014.3001.55023、下载部署的镜像包:

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.2
docker pull docker.elastic.co/kibana/kibana:7.17.2
docker pull docker.elastic.co/logstash/logstash:7.17.2
docker pull docker.elastic.co/beats/filebeat:7.17.2

一,搭建elasticsearch+kibana

elasticsearch配置文件:

[root@k8s-node01 elk]# more elasticsearch.yml
cluster.name: my-es
node.name: "node-1"
path.data: /usr/share/elasticsearch/data
#path.logs: /var/log/elasticsearch
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
#集群个节点IP地址,也可以使用els、els.shuaiguoxia.com等名称,需要各节点能够解析
#discovery.zen.ping.unicast.hosts: ["172.16.30.11", "172.17.77.12"]
#集群节点数
#discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts: ["127.0.0.1", "[::1]"]
cluster.initial_master_nodes: ["node-1"]
#增加参数,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

kibana配置文件:

kibana连接的主机使用了域名,是由有状态应用statefulset创建的Pod

[root@k8s-node01 elk]# more kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: "http://es-kibana-0.es-kibana.kube-system:9200"
kibana.index: ".kibana"

创建elasticsearch和kibana的配置文件configmap:

kubectl create configmap es-config -n kube-system --from-file=elasticsearch.yml
kubectl create configmap kibana-config -n kube-system --from-file=kibana.yml

创建glusterfs存储,用于创建pv:

es-volume存储卷已创建,那么需要创建endpoint和svc:

es-endpoints.yaml

es-glusterfs-svc.yaml

[root@k8s-node01 elk]# more es-endpoints.yaml
apiVersion: v1
kind: Endpoints
metadata:
  name: glusterfs-es
  namespace: kube-system
subsets:
- addresses:
  - ip: 192.168.16.5
  ports:
  - port: 49155
- addresses:
  - ip: 192.168.16.4
  ports:
  - port: 49155
- addresses:
  - ip: 172.17.22.4
  ports:
  - port: 49155
[root@k8s-node01 elk]#
[root@k8s-node01 elk]# more es-glusterfs-svc.yaml
apiVersion: v1
kind: Service
metadata:
  name: glusterfs-es
  namespace: kube-system
spec:
  ports:
  - port: 49155

[root@k8s-node01 elk]#

创建服务:

[root@k8s-node01 elk]# kubectl create -f es-endpoints.yaml
[root@k8s-node01 elk]# kubectl create -f es-glusterfs-svc.yaml

es存储pvc,pv配置文件:es-pv.yaml和es-pvc.yaml

[root@k8s-node01 elk]# more es-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: es-pv
  namespace: kube-system
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  glusterfs:
    endpoints: "glusterfs-es"
    path: "es-volume"
    readOnly: false

[root@k8s-node01 elk]# more es-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: es-pv-claim
  namespace: kube-system
  labels:
    app: es
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi

[root@k8s-node01 elk]#

创建pvc、pv:

[root@k8s-node01 elk]#
[root@k8s-node01 elk]# kubectl apply -f es-pv.yaml
persistentvolume/es-pv created
[root@k8s-node01 elk]# kubectl apply -f es-pvc.yaml
persistentvolumeclaim/es-pv-claim created
[root@k8s-node01 elk]#
[root@k8s-node01 elk]# kubectl get pv,pvc -A
NAME                          CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                     STORAGECLASS   REASON   AGE
persistentvolume/es-pv        5Gi        RWX            Retain           Bound    kube-system/es-pv-claim                           26s
persistentvolume/prometheus   4Gi        RWX            Retain           Bound    prome-system/prometheus                           23h

NAMESPACE      NAME                                STATUS   VOLUME       CAPACITY   ACCESS MODES   STORAGECLASS   AGE
kube-system    persistentvolumeclaim/es-pv-claim   Bound    es-pv        5Gi        RWX                           22s
prome-system   persistentvolumeclaim/prometheus    Bound    prometheus   4Gi        RWX                           23h

创建es-kibana的yaml配置文件: es-statefulset.yaml

[root@k8s-node01 elk]# more es-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    app: es-kibana
  name: es-kibana
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      app: es-kibana
  serviceName: "es-kibana"
  template:
    metadata:
      labels:
        app: es-kibana
    spec:
      imagePullSecrets:
      - name: registry-pull-secret
      containers:
      - image: elasticsearch:7.17.2
        imagePullPolicy: IfNotPresent
        lifecycle:
          postStart:
            exec:
              command: [ "/bin/bash", "-c", "sysctl -w vm.max_map_count=262144; ulimit -l unlimited;chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/da
ta;" ]
        name: elasticsearch
        resources:
          requests:
            memory: "800Mi"
            cpu: "800m"
          limits:
            memory: "1Gi"
            cpu: "1000m"
        ports:
        - containerPort: 9200
        - containerPort: 9300
        volumeMounts:
        - name: es-config
          mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
          subPath: elasticsearch.yml
        - name: es-persistent-storage
          mountPath: /usr/share/elasticsearch/data
        env:
        - name: TZ
          value: Asia/Shanghai
      - image: kibana:7.17.2
        imagePullPolicy: IfNotPresent
        #command: [ "/bin/bash", "-ce", "tail -f /dev/null" ]
        name: kibana
        env:
        - name: TZ
          value: Asia/Shanghai
        volumeMounts:
        - name: kibana-config
          mountPath: /usr/share/kibana/config/kibana.yml
          subPath: kibana.yml
      volumes:
      - name: es-config
        configMap:
          name: es-config
      - name: kibana-config
        configMap:
          name: kibana-config
      - name: es-persistent-storage
        persistentVolumeClaim:
          claimName: es-pv-claim
      #hostNetwork: true
      #dnsPolicy: ClusterFirstWithHostNet
      # nodeSelector:
      #            kubernetes.io/hostname: 172.16.30.1

创建es-kibana应用:

[root@k8s-node01 elk]# kubectl create -f es-statefulset.yaml
statefulset.apps/es-kibana created
[root@k8s-node01 elk]#
[root@k8s-node01 elk]# kubectl get pod -o wide -n kube-system|grep es
es-kibana-0                          2/2     Running   0            18s   10.244.1.22    k8s-node01   <none>           <none>
[root@k8s-node01 elk]#
[root@k8s-node01 elk]#

使用curl命令测试elasticsearch是否正常:(es-kibana-0这个pod的IP:10.244.1.22)

[root@k8s-node01 elk]# kubectl get pod -o wide -n kube-system|grep es
es-kibana-0                          2/2     Running   0            18s   10.244.1.22    k8s-node01   <none>           <none>
[root@k8s-node01 elk]#
[root@k8s-node01 elk]# curl 10.244.1.22:9200
{
  "name" : "node-1",
  "cluster_name" : "my-es",
  "cluster_uuid" : "0kCaXU_CSpi4yByyW0utsA",
  "version" : {
    "number" : "7.17.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "de7261de50d90919ae53b0eff9413fd7e5307301",
    "build_date" : "2022-03-28T15:12:21.446567561Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
[root@k8s-node01 elk]#

创建es-kibana的cluserip的svc:es-cluster-none-svc.yaml

[root@k8s-node01 elk]# more es-cluster-none-svc.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: es-kibana
  name: es-kibana
  namespace: kube-system
spec:
  ports:
  - name: es9200
    port: 9200
    protocol: TCP
    targetPort: 9200
  - name: es9300
    port: 9300
    protocol: TCP
    targetPort: 9300
  clusterIP: None
  selector:
    app: es-kibana
  type: ClusterIP
[root@k8s-node01 elk]#
[root@k8s-node01 elk]# kubectl apply -f es-cluster-none-svc.yaml
service/es-kibana created
[root@k8s-node01 elk]#
[root@k8s-node01 elk]# kubectl get svc -n kube-system|grep es-kibana
es-kibana      ClusterIP   None            <none>        9200/TCP,9300/TCP        29s
[root@k8s-node01 elk]#
[root@k8s-node01 elk]#

创建完以后kiban及可以正常连接elasticsearch了

为了查看方便创建一个nodeport类型的svc:es-nodeport-svc.yaml

[root@k8s-node01 elk]# more es-nodeport-svc.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: es-kibana
  name: es-kibana-nodeport-svc
  namespace: kube-system
spec:
  ports:
  - name: 9200-9200
    port: 9200
    protocol: TCP
    targetPort: 9200
    #nodePort: 9200
  - name: 5601-5601
    port: 5601
    protocol: TCP
    targetPort: 5601
    #nodePort: 5601
  selector:
    app: es-kibana
  type: NodePort
[root@k8s-node01 elk]# kubectl apply -f es-nodeport-svc.yaml
service/es-kibana-nodeport-svc created
[root@k8s-node01 elk]#
[root@k8s-node01 elk]# kubectl get svc -n kube-system|grep es-kibana
es-kibana                ClusterIP   None             <none>        9200/TCP,9300/TCP               3m39s
es-kibana-nodeport-svc   NodePort    10.110.159.163   <none>        9200:30519/TCP,5601:32150/TCP   13s
[root@k8s-node01 elk]#
[root@k8s-node01 elk]#

使用nodeip+port访问,本次端口为32150

页面显示正常即可

 二,创建logstash服务

logstash.yml配置文件,输出至es使用域名配置:

[root@k8s-node01 elk]# more logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: http://es-kibana-0.es-kibana.kube-system:9200

logstash.conf配置文件:

[root@k8s-node01 elk]# more logstash.conf
input {
  beats {
     port => 5044
     client_inactivity_timeout => 36000
  }
}

filter {
 #需要配置否则host是一个json不是文本则无法输出至elasticsearch
  mutate {
    rename => { "[host][name]" => "host" }
  }
}

output {
           elasticsearch {
              hosts => ["http://es-kibana-0.es-kibana.kube-system:9200"]
              index => "k8s-system-log-%{+YYYY.MM.dd}"
           }
          stdout{
              codec => rubydebug
           }
}
[root@k8s-node01 elk]#

创建两个配置文件:

kubectl create configmap logstash-yml-config -n kube-system  --from-file=logstash.yml
kubectl create configmap logstash-config -n kube-system  --from-file=logstash.conf

logstash的yaml配置文件:

[root@k8s-node01 elk]# more logstash-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    app: logstash
  name: logstash
  namespace: kube-system
spec:
  serviceName: "logstash"
  replicas: 1
  selector:
    matchLabels:
      app: logstash
  template:
    metadata:
      labels:
        app: logstash
    spec:
      imagePullSecrets:
      - name: registry-pull-secret
      containers:
      - image: logstash:7.17.2
        name: logstash
        resources:
          requests:
            memory: "500Mi"
            cpu: "400m"
          limits:
            memory: "800Mi"
            cpu: "800m"
        volumeMounts:
        - name: logstash-yml-config
          mountPath: /usr/share/logstash/config/logstash.yml
          subPath: logstash.yml
        - name: logstash-config
          mountPath: /usr/share/logstash/pipeline/logstash.conf
          subPath: logstash.conf
        env:
        - name: TZ
          value: Asia/Shanghai
      volumes:
      - name: logstash-yml-config
        configMap:
          name: logstash-yml-config
      - name: logstash-config
        configMap:
          name: logstash-config
      #nodeSelector:
      # kubernetes.io/hostname: 172.16.30.1
[root@k8s-node01 elk]#

创建logstash应用:

[root@k8s-node01 elk]# kubectl create -f logstash-statefulset.yaml
statefulset.apps/logstash created
[root@k8s-node01 elk]#
[root@k8s-node01 elk]# kubectl get pod -o wide -n kube-system|grep logstash
logstash-0                           1/1     Running   0            24s   10.244.1.23    k8s-node01   <none>           <none>
[root@k8s-node01 elk]#

注意:logstash的默认启动端口在9600-9700之间,一般是9600,具体可以查看logstash的日志确认;

 logstash的svc配置文件:

[root@k8s-node01 elk]# more logstash-none-svc.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: logstash
  name: logstash
  namespace: kube-system
spec:
  ports:
  - name: logstsh
    port: 5044
    protocol: TCP
    targetPort: 9600
  clusterIP: None
  selector:
    app: logstash
  type: ClusterIP
[root@k8s-node01 elk]#
[root@k8s-node01 elk]# kubectl create -f logstash-none-svc.yaml
service/logstash created
[root@k8s-node01 elk]#

三,创建filebeat服务

filebeat.yml配置文件:

[root@k8s-node01 elk]# more filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /messages
  fields:
    app: k8s
    type: module
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
setup.kibana:
output.logstash:
  hosts: ["logstash-0.logstash.kube-system:5044"]
processors:
  - add_host_metadata:
  - add_cloud_metadata:
[root@k8s-node01 elk]#

解析

  容器日志路径为/messages 需要在启动Pod时候把该路径对应挂载

  使用的是k8s内部的dns配置elasticsearch服务

  创建filebeat的configmap

kubectl create configmap filebeat-config -n kube-system --from-file=filebeat.yml

filebeat的yaml文件:

[root@k8s-node01 elk]# more filebeat-daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    app: filebeat
  name: filebeat
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app: filebeat
  template:
    metadata:
      labels:
        app: filebeat
    spec:
      imagePullSecrets:
      - name: registry-pull-secret
      containers:
      - image: elastic/filebeat:7.17.2
        name: filebeat
        volumeMounts:
        - name: filebeat-config
          mountPath: /etc/filebeat.yml
          subPath: filebeat.yml
        - name: k8s-system-logs
          mountPath: /messages
        args: [
          "-c", "/etc/filebeat.yml",
          "-e",
        ]
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
          limits:
            cpu: 500m
            memory: 500Mi
        securityContext:
          runAsUser: 0
        env:
        - name: TZ
          value: "CST-8"
      volumes:
      - name: filebeat-config
        configMap:
          name: filebeat-config
      - name: k8s-system-logs
        hostPath:
          path: /var/log/messages
          type: File
[root@k8s-node01 elk]#

使用DaemonSet保证每个node有且仅调度一个Pod用于收集node主机的/var/log/messages日志

[root@k8s-node01 elk]# kubectl apply -f filebeat-daemonset.yaml
daemonset.apps/filebeat created
[root@k8s-node01 elk]#
[root@k8s-node01 elk]#
[root@k8s-node01 elk]# kubectl get pod -o wide -n kube-system|grep filebeat
filebeat-5h58b                       1/1     Running   0            24s     10.244.0.17    k8s-master   <none>           <none>
filebeat-7x9xm                       1/1     Running   0            24s     10.244.1.24    k8s-node01   <none>           <none>
filebeat-z6lwv                       1/1     Running   0            24s     10.244.2.6     k8s-node02   <none>           <none>
[root@k8s-node01 elk]#

在kibana添加日志索引以后查看:

到discover页面,创建索引模式,“k8s-system-log-*” ,选择时间"timestamp",然后,就可以看到日志了

ELK日志系统搭建完成!

这篇博文写的不错,本文参考:k8s之使用k8s搭建ELK日志收集系统 - minseo - 博客园

解析ELKfilebeat+logstash+elasticsearch+kibana)日志系统原理以及k8s集群日志采集过程 ELKES+LogStash+Kibana】日志分析系统以及k8s集群日志采集 阅读详情

相关推荐

k8s管理--集群日志管理elk

k8s安装elk

嘻哈记的运维学习之路 2237

使用kubernetes部署ELK日志系统

使用kubernetes部署ELK日志系统

Kubernetes中部署ELK Stack日志收集平台

kubelet会在/var/log/pods/var/log/containers下面建立软链接,指向/var/lib/docker/containers/$CONTAINERID目录下的容器日志文件。- dissect: #参考https://www.elastic.co/guide/en/beats/filebeat/current/dissect.html。创建一个软链接/var/log/pods指向数据盘挂载点下的某个目录(ln -s /data/var/log/pods /var/log/)

别来沾边儿 1600

k8s-elk:Kubernetes ELK-ElasticSearchKibanaLogstash所有装饰

Kubernetes ELK-ElasticSearchKibanaLogstash所有装饰 该存储库当前包含ElasticSearchKibana配置。 ElasticSearch以3种形式运行。 第一个是“主”类型,这是ElasticSearch文档中的主类型。 第二种类型是“摄取”类型,这是ElasticSearch文档中的摄取类型。 接收节点包括一个基于CPU使用率的horizo​​ntalalPodAutoscaler,这些节点连接到Kibana的内部服务以及外部HTTP输入的外部服务。 第三种类型是“数据”节点。 这些是使用statefulSetPersistentVolumeClaims构造的,它们会相应缩放。 您只能按比例缩放(+ 1,-1,到最新的容器),并且所有通用的ElasticSearch规则都适用(如果删除的节点数量超过允许群集重新平衡自身之间无法承受

ELK】-2 ELK搭建

ELK搭建

ordinary的博客 276

k8s集群部署elk

k8s集群部署elk

ApexPredator的博客 5377

kubernetes(k8s) 安装 elk

kubernetes(k8s) 安装 elk elkelasticsearch,logstash,kibana的缩写,组成了日志收集的服务端。在看这篇文章,要先了解以下二篇文章: ubuntu elasticsearch,logstash,kibana,filebeat安装配置 kubernetes(k8s) 集群 安装配置 一,elk的选择 方案一,用k8s分别安装elasticsearch,logstash,kibana,配置要复杂一点,但是灵活度要高一点 方案二,用已集...

会哭的雨@的博客 6958

【记一次ELK实践】

【记一次ELK实践】 目的: K8S调度docker部署nginx服务,并以NodePort的暴露方式暴露nginx服务 部署ELK对nginx的日志文件进行采集并展示 Node_name IP Service vms61 192.168.100.61 K8S-master vms62 192.168.100.62 K8S-worker vms21 192.168.100.21 Elasticsearch-master vms22 192.168.100.22 ES-slav

m0_46671789的博客 204

企业级日志系统架构——ELKElasticsearchFilebeat、Kafka、LogstashKibana

文章目录一、概述1)Elasticsearch 存储2)Filebeat 日志数据采集3)Kafka4)Logstash 过滤5)Kibana 展示filebeatlogstash的关系二、ELK相关的备份组件备份方式1)Elasticsearch的snapshot快照备份2)elasticdump备份迁移es数据3)esm备份迁移es数据 一、概述 大致流程图如下: 1)Elasticsearch 存储 Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有

匠人精神,持之以恒! 6266

ELK系列之四---如何通过FilebeatLogstash优化K8S集群的日志收集展示

ELK Stack组件中,有logstashfilebeat都可以实现日志收集,因为filebeat更轻量化,在K8S集群中通常使用filebeat来收集pod的日志,通过daemonSet控制器在每个K8S每个节点上运行一个filebeat来收集每个节点上的pod日志,filebeat官网图如下,filebeat输出支持对接ElasticsearchLogstash、Kafka、Redis,本文选择对接Kafka,先缓存filebeat收集的日志,这样可以减少对ES的性能要求。

gjjumin的专栏 2505

k8s部署elk+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 p...

wangzhongtao1314的博客 2491

快速搞定docker部署FilebeatElasticsearchLogstashKibana

本文介绍使用docker安装部署FilebeatElasticsearchLogstashKibana(简称ELK)全家桶7.5.1。如果熟悉框架的话,直接copy配置文件与docker命令,简单删减修改路径,即可快速启动整个链路。 安装docker环境以及常用docker命令,请点击跳转查看 简单的ELK数据平台是这样的流程: 由于Kafka并不是ELK中必须的组件,所以本博客跳过部署...

全菜工程师小辉的博客 6010

Springboot/Springcloud整合ELK平台,(Filebeat方式)日志采集及管理(Elasticsearch+Logstash+Filebeat+Kibana

前言 最近在搞一套完整的云原生框架,详见 spring-cloud-alibaba专栏,目前已经整合的log4j2,但是想要一套可以实时观察日志的系统,就想到了ELK,然后上一篇文章是socket异步发送给logstashlogstash再输出到elasticsearch索引库中。 logstash是java应用,解析日志是非的消耗cpu内存,logstash安装在应用部署的机器上显得非常的笨重。最常见的做法是用filebeat部署在应用的机器上,logstash单独部署,然后由filebeat将日志输

weixin_43627706的博客 8734

ELK 圣经:ElasticsearchLogstashKibana 从入门到精通

ELK指的是Elastic公司下面ElasticsearchLogstashKibana三大开源框架首字母大写简称。ElasticsearchLogstashKibana三大开源框架首字母大写简称。是一个用于将 Java 应用程序的日志输出转换为 Logstash 可解析的 JSON 格式的库。

架构师尼恩 1356

K8s 搭建 FileBeat+ELK 分布式日志收集系统 以及 KQL 语法介绍

Filebeat 是一个轻量级的日志传输工具,它负责收集日志数据并将其传输到Elasticsearch进行索引存储。ELKElasticsearchLogstashKibana三个开源项目的首字母缩写,它们共同构成了一个强大的日志管理分析平台。

小毕超博客 2477

kubernetes搭建 二十一、Filebeat+ELK日志监控

1、ELK流程图 2、再创建一台虚拟机10.0.0.107用来搭建ELK 下载安装包并解压 [root@elk-107 ~]# mkdir /home/elk [root@elk-107 ~]# cd /home/elk/ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.tar.gz wg...

光明小学王小雨的博客 4113

ELK Stack日志管理:ElasticsearchLogstashKibana

ELK Stack是云原生环境下强大的日志管理工具,由ElasticsearchLogstashKibana三大组件构成。Elasticsearch负责分布式存储检索日志数据,Logstash用于日志收集、处理传输,Kibana则提供可视化分析界面。本文详细介绍了各组件的功能特点、安装配置方法,并展示了如何在Kubernetes环境中通过Filebeat收集容器日志。最后还提供了日志收集失败的常见排查方法,帮助用户构建完整的云原生日志管理系统。

fykam的博客 947

Logging:ELK Stack(Elasticsearch+Logstash+Kibana)、EFK(Filebeat)、Graylog

分布式日志系统架构方案摘要 本文对比分析了三种主流分布式日志系统方案: ELK经典栈:Logstash+Elasticsearch+Kibana组合,适合复杂日志处理,但资源消耗大。包含数据流架构、Logstash配置示例索引生命周期管理策略。 EFK轻量方案:Filebeat替代Logstash直接对接ES,适合云原生环境。提供Filebeat配置模板ES端轻处理方案。 Graylog企业方案:内置管理界面,适合合规审计场景。 三种方案在资源占用、处理能力、延迟等方面各有优劣,可根据实际业务需求选择。

瘦到被风吹走的博客 1381
上一篇: -bash: telnet: command not found问题
下一篇: CentOS安装GlusterFS
Soft_Engneer
博客等级 码龄14年 12粉丝 · 8原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值