国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

搭建高效微服務(wù)架構(gòu):Kubernetes、Prometheus和ELK Stack的完美組合

這篇具有很好參考價(jià)值的文章主要介紹了搭建高效微服務(wù)架構(gòu):Kubernetes、Prometheus和ELK Stack的完美組合。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、前言

1 微服務(wù)架構(gòu)簡(jiǎn)介

微服務(wù)架構(gòu)是一種軟件設(shè)計(jì)模式,它將單個(gè)應(yīng)用程序拆分成一組更小、更獨(dú)立的服務(wù)。每個(gè)服務(wù)在自己的進(jìn)程中運(yùn)行,并使用輕量級(jí)通信機(jī)制進(jìn)行通信。由于每個(gè)服務(wù)都是獨(dú)立的,因此可以獨(dú)立部署、擴(kuò)展和更新,從而使開發(fā)和運(yùn)維更加容易。

2 Kubernetes 簡(jiǎn)介

Kubernetes 是一個(gè)開源的容器編排和管理系統(tǒng),它提供了高度可靠的基礎(chǔ)設(shè)施,使得應(yīng)用程序可以在多個(gè)節(jié)點(diǎn)上運(yùn)行,從而提高可用性和性能。Kubernetes 還包含一組核心概念,例如 Pod、服務(wù)、部署和副本集等,它們可以幫助您更好地管理和編排容器化應(yīng)用程序。

3 Kubernetes 與微服務(wù)

Kubernetes 與微服務(wù)是相互關(guān)聯(lián)的。它提供了高效、可擴(kuò)展的容器管理工具和服務(wù),讓微服務(wù)的部署、升級(jí)和擴(kuò)容變得非常簡(jiǎn)單。

二、準(zhǔn)備工作

1 安裝 Kubernetes

1.1 搭建 Kubernetes 集群

要部署 Kubernetes 集群需要至少三個(gè)計(jì)算機(jī)實(shí)例。其中一個(gè)實(shí)例(即 Master 節(jié)點(diǎn))將充當(dāng)集群的控制中心,調(diào)度和管理容器的生命周期,另外兩個(gè)實(shí)例將作為 Worker 節(jié)點(diǎn)負(fù)責(zé)運(yùn)行和管理容器實(shí)例。

搭建 Kubernetes 集群有很多方式這里將使用 kubeadm 工具完成。請(qǐng)先確保每個(gè)計(jì)算機(jī)實(shí)例上都已安裝了 Docker 引擎和 kubeadm 工具。

在 Master 節(jié)點(diǎn)上運(yùn)行以下命令,初始化 Kubernetes 集群:

$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16

注:pod-network-cidr 參數(shù)(10.244.0.0/16)用于設(shè)置 Calico 網(wǎng)絡(luò)插件的 IP 地址范圍。必須指定此參數(shù)才能成功安裝 Calico 網(wǎng)絡(luò)插件。

初始化成功后,應(yīng)該能夠看到類似下面的輸出信息:

Your Kubernetes control-plane has initialized successfully!

根據(jù)輸出信息在 Master 節(jié)點(diǎn)上運(yùn)行以下命令,安裝網(wǎng)絡(luò)插件(這里我們將使用 Calico 網(wǎng)絡(luò)插件):

$ kubectl apply -f https://docs.projectcalico.org/v3.16/manifests/calico.yaml

運(yùn)行以下命令查看節(jié)點(diǎn)狀態(tài):

$ kubectl get nodes

應(yīng)該能夠看到類似下面的輸出信息:

NAME          STATUS    AGE     VERSION
k8s-master    Ready     3m36s   v1.19.0
k8s-worker1   Ready     12s     v1.19.0
k8s-worker2   Ready     3s      v1.19.0

至此已成功地搭建了 Kubernetes 集群!

1.2 安裝 kubectl 工具

kubectl 是 Kubernetes 的命令行工具。它可用于與 Kubernetes 集群進(jìn)行交互,例如通過 kubectl 創(chuàng)建、更新和刪除 Kubernetes 對(duì)象,以及查看集群狀態(tài)和日志等。

在每個(gè)節(jié)點(diǎn)上安裝 kubectl 工具:

$ sudo apt-get update && sudo apt-get install -y apt-transport-https
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
$ cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
$ sudo apt-get update
$ sudo apt-get install -y kubectl

2 準(zhǔn)備 Docker 鏡像

2.1 編寫 Dockerfile 文件

在使用 Kubernetes 部署應(yīng)用程序之前需要將應(yīng)用程序打包成一個(gè) Docker 鏡像。下面是一個(gè)簡(jiǎn)單的 Node.js 應(yīng)用程序的 Dockerfile 文件:

FROM node:12
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

這個(gè) Dockerfile 文件指定了 Node.js 的 12.x 版本作為基礎(chǔ)鏡像,并將工作目錄設(shè)置為 /app。然后,它復(fù)制了 package.json 和 package-lock.json 文件到 /app 目錄中,并運(yùn)行 npm install 命令安裝所需的 Node.js 模塊。接下來它復(fù)制了所有項(xiàng)目文件到 Docker 鏡像中,并暴露端口號(hào) 3000。最后它在容器啟動(dòng)時(shí)運(yùn)行 npm start 命令來啟動(dòng)應(yīng)用程序。

2.2 構(gòu)建 Docker 鏡像

在 Dockerfile 文件所在的目錄中,使用以下命令構(gòu)建 Docker 鏡像:

$ docker build -t mynodeapp:1.0 .

這個(gè)命令將使用當(dāng)前目錄下的 Dockerfile 文件,并將構(gòu)建出的 Docker 鏡像標(biāo)記為 mynodeapp:1.0。

2.3 將 Docker 鏡像上傳到容器倉庫

要在 Kubernetes 中部署應(yīng)用程序需要將 Docker 鏡像上傳到容器倉庫中。下面是一個(gè)例子,展示如何將 Docker 鏡像上傳到 Docker Hub:

  1. 先行創(chuàng)建一個(gè) Docker Hub 賬戶。
  2. 在本地終端中登錄到 Docker Hub:
$ docker login
  1. 將先前構(gòu)建的 Docker 鏡像標(biāo)記并上傳到 Docker Hub:
$ docker tag mynodeapp:1.0 myhubuser/mynodeapp:1.0
$ docker push myhubuser/mynodeapp:1.0

現(xiàn)在,我們已經(jīng)準(zhǔn)備好在 Kubernetes 中部署我們的應(yīng)用程序了!

三、部署微服務(wù)

在 Kubernetes 中部署和管理微服務(wù)非常簡(jiǎn)單。以下是如何使用 Deployment、Service 和 Ingress 對(duì)象來部署和管理微服務(wù)的詳細(xì)步驟。

1 使用 Deployment 部署微服務(wù)

1.1 創(chuàng)建 Deployment 對(duì)象

Deployment 對(duì)象是 Kubernetes 中一種用于自動(dòng)部署和更新應(yīng)用程序的對(duì)象。它會(huì)自動(dòng)創(chuàng)建和管理 Pod 對(duì)象,并根據(jù)應(yīng)用程序的副本數(shù)和更新策略,自動(dòng)擴(kuò)展或縮小每個(gè) Pod 副本的數(shù)量。

要?jiǎng)?chuàng)建一個(gè) Deployment 對(duì)象,您需要?jiǎng)?chuàng)建一個(gè)簡(jiǎn)單的 YAML 文件例如:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mynodeapp-deployment
  labels:
    app: mynodeapp
spec:
  replicas: 3
  selector:
    matchLabels:
      app: mynodeapp
  template:
    metadata:
      labels:
        app: mynodeapp
    spec:
      containers:
      - name: mynodeapp
        image: myhubusername/mynodeapp:1.0
        ports:
        - containerPort: 3000

上述 YAML 文件定義了一個(gè)名為 mynodeapp-deployment 的 Deployment 對(duì)象。這個(gè) Deployment 會(huì)創(chuàng)建 3 個(gè) Pod 副本,每個(gè) Pod 副本包含一個(gè)名為 mynodeapp 的容器。每個(gè)容器都會(huì)使用 Docker Hub 中的 myhubusername/mynodeapp:1.0 鏡像并在容器內(nèi)打開 3000 端口。

要使用這個(gè) YAML 文件創(chuàng)建 Deployment 對(duì)象,請(qǐng)?jiān)?Kubernetes 集群中運(yùn)行以下命令:

$ kubectl apply -f mynodeapp-deployment.yaml

如果一切順利應(yīng)該能夠看到類似下面的輸出信息:

deployment.apps/mynodeapp-deployment created

1.2 查看 Deployment 狀態(tài)

要查看部署的狀態(tài),請(qǐng)運(yùn)行以下命令:

$ kubectl get deployments

您應(yīng)該能夠看到類似下面的輸出信息:

NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
mynodeapp-deployment   3/3     3            3           1m

此命令將顯示您創(chuàng)建的 mynodeapp-deployment Deployment 中的 Pod 副本的狀態(tài)。

1.3 手動(dòng)擴(kuò)展/縮小副本數(shù)

要手動(dòng)擴(kuò)展/縮小 Deployment 中的 Pod 副本數(shù)可以使用以下命令:

$ kubectl scale deployment mynodeapp-deployment --replicas=5

上述命令將把 mynodeapp-deployment Deployment 中的 Pod 副本數(shù)擴(kuò)展到 5,您可以將 5 更改為您需要的任何數(shù)字。

每當(dāng)您需要縮小 Pod 副本數(shù)時(shí),您也可以使用類似的命令,如:

$ kubectl scale deployment mynodeapp-deployment --replicas=3

以上命令將把 mynodeapp-deployment Deployment 中的 Pod 副本數(shù)縮小到 3。請(qǐng)注意此操作可能會(huì)導(dǎo)致您的部署中斷因此請(qǐng)小心使用。

2 使用 Service 暴露微服務(wù)

2.1 創(chuàng)建 Service 對(duì)象

Service 對(duì)象是 Kubernetes 中用于公開和暴露微服務(wù)的對(duì)象。它使用標(biāo)簽選擇器來選擇相應(yīng)的 Pod,并創(chuàng)建一個(gè)穩(wěn)定的 IP 地址和 DNS 名稱,以便其他微服務(wù)可以通過它來訪問您的微服務(wù)。

要?jiǎng)?chuàng)建一個(gè) Service 對(duì)象,請(qǐng)創(chuàng)建一個(gè)新的 YAML 文件例如:

apiVersion: v1
kind: Service
metadata:
  name: mynodeapp-service
  labels:
    app: mynodeapp
spec:
  type: LoadBalancer
  selector:
    app: mynodeapp
  ports:
  - port: 80
    targetPort: 3000

上述 YAML 文件定義了一個(gè)名為 mynodeapp-service 的 Service 對(duì)象。這個(gè) Service 對(duì)象使用標(biāo)簽選擇器來選擇名稱為 mynodeapp 的 Pod,并創(chuàng)建了一個(gè)穩(wěn)定的 80 端口。

要使用這個(gè) YAML 文件創(chuàng)建 Service 對(duì)象,請(qǐng)?jiān)?Kubernetes 集群中運(yùn)行以下命令:

$ kubectl apply -f mynodeapp-service.yaml

如果一切順利應(yīng)該能夠看到類似下面的輸出信息:

service/mynodeapp-service created

2.2 通過 Service 訪問微服務(wù)

要訪問微服務(wù)可以使用在 Service 中創(chuàng)建的 IP 地址和端口號(hào)。要查找 Service 的 IP 地址,請(qǐng)運(yùn)行以下命令:

$ kubectl get services

您應(yīng)該能夠看到類似下面的輸出信息:

NAME                 TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE
kubernetes           ClusterIP      10.96.0.1       <none>          443/TCP        8h
mynodeapp-service    LoadBalancer   10.105.13.218   35.227.28.137   80:31524/TCP   1m

此命令將顯示您創(chuàng)建的 mynodeapp-service Service 的 IP 地址和端口號(hào)。在上面的示例中,IP 地址為 10.105.13.218,端口號(hào)為 80。

現(xiàn)在可以使用在 Service 中創(chuàng)建的 IP 地址和端口號(hào),訪問您的微服務(wù)。例如,如果您的微服務(wù)是一個(gè) Node.js Web 應(yīng)用程序,您可以使用以下命令在 Web 瀏覽器中訪問它:

$ xdg-open http://10.105.13.218

3 使用 Ingress 管理多個(gè)微服務(wù)

如果你正在運(yùn)行多個(gè)微服務(wù),您可以使用 Ingress 對(duì)象管理它們。Ingress 對(duì)象是 Kubernetes 中的一種對(duì)象,它允許您通過創(chuàng)建和配置 Ingress 控制器,將多個(gè)微服務(wù)公開到同一 IP 地址和端口上。

3.1 安裝 Ingress 控制器

要使用 Ingress 對(duì)象管理多個(gè)微服務(wù),請(qǐng)先安裝 Ingress 控制器。這里我們將使用官方提供的 Nginx Ingress 控制器。

要安裝 Nginx Ingress 控制器,請(qǐng)?jiān)?Kubernetes 集群上運(yùn)行以下命令:

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.41.2/deploy/static/provider/cloud/deploy.yaml

3.2 創(chuàng)建 Ingress 對(duì)象

要?jiǎng)?chuàng)建一個(gè) Ingress 對(duì)象,您需要?jiǎng)?chuàng)建一個(gè)新的 YAML 文件,例如:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: my-ingress
spec:
  rules:
  - http:
      paths:
      - path: /mynodeapp
        backend:
          serviceName: mynodeapp-service
          servicePort: 80
      - path: /myredisapp
        backend:
          serviceName: myredisapp-service
          servicePort: 80

上述 YAML 文件定義了一個(gè)名為 my-ingress 的 Ingress 對(duì)象。這個(gè) Ingress 對(duì)象定義了兩個(gè)微服務(wù)的路徑和后端:

  1. 路徑為 /mynodeapp,使用 mynodeapp-service 作為后端。
  2. 路徑為 /myredisapp,使用 myredisapp-service 作為后端。

與 Service 對(duì)象類似,您可以根據(jù)需要?jiǎng)?chuàng)建一個(gè)或多個(gè) Ingress 對(duì)象來管理多個(gè)微服務(wù)。

要使用這個(gè) YAML 文件創(chuàng)建 Ingress 對(duì)象,請(qǐng)?jiān)?Kubernetes 集群中運(yùn)行以下命令:

$ kubectl apply -f my-ingress.yaml

如果一切順利,您應(yīng)該能夠看到類似下面的輸出信息:

ingress.extensions/my-ingress created

現(xiàn)在,您可以在 Web 瀏覽器中使用 my-node.com/mynodeapp 和 my-node.com/myredisapp 訪問兩個(gè)微服務(wù)。請(qǐng)注意,您需要在 DNS 服務(wù)器或本地 hosts 文件中將 my-node.com 映射到 Ingress 控制器的 IP 地址。

四、微服務(wù)的監(jiān)控與日志

監(jiān)控和日志管理是微服務(wù)架構(gòu)中必不可少的兩個(gè)方面。在 Kubernetes 集群中,我們可以使用不同的工具來完成這兩個(gè)任務(wù)。本文將介紹如何使用 Prometheus 和 Grafana 監(jiān)控 Kubernetes 中的微服務(wù),并使用 ELK Stack 進(jìn)行微服務(wù)的日志管理。

1 Kubernetes 的監(jiān)控

Kubernetes 提供了一些內(nèi)置的監(jiān)控和診斷工具,例如 kubectl top 命令可對(duì) Kubernetes 中的 Pod 和節(jié)點(diǎn)進(jìn)行監(jiān)控。但是,如果您需要進(jìn)行更細(xì)粒度的監(jiān)控,并且需要可視化和警報(bào)功能,則可以使用第三方工具,例如 Prometheus 和 Grafana。

1.1 Prometheus 監(jiān)控

Prometheus 是一種流行的開源監(jiān)控工具,它可以收集多個(gè)數(shù)據(jù)源的指標(biāo),并允許我們與 Grafana 等工具一起使用,以實(shí)現(xiàn)更好的可視化和警報(bào)功能。

要在 Kubernetes 中使用 Prometheus,我們可以使用一個(gè)叫做 Prometheus Operator 的工具來管理 Prometheus 實(shí)例并配置規(guī)則。

以下是如何使用 Prometheus Operator 在 Kubernetes 中設(shè)置 Prometheus 監(jiān)控的詳細(xì)步驟:

步驟 1. 安裝 Prometheus Operator CRD

首先需要通過運(yùn)行以下命令來安裝 Prometheus Operator CRD:

$ kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/master/bundle.yaml
步驟 2. 安裝 Prometheus Operator

然后需要安裝 Prometheus Operator。有兩種方法可以安裝 Prometheus Operator:使用 Operator 部署程序或者使用 Helm Chart。

1 使用 Operator 部署程序

要使用 Operator 部署程序安裝 Prometheus Operator,請(qǐng)按照以下步驟操作:

  1. 下載 kustomize 工具:
$ curl -Lo kustomize https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv3.5.4/kustomize_v3.5.4_darwin_amd64
$ chmod +x kustomize
$ sudo mv kustomize /usr/local/bin/
  1. 下載 Prometheus Operator:
$ git clone https://github.com/coreos/kube-prometheus.git
  1. 部署 Prometheus Operator:
$ cd kube-prometheus
$ kustomize build manifests/prometheus-operator | kubectl apply -f -

完成后應(yīng)該能夠看到一個(gè)名為 prometheus-operator 的 Deployment,它正在運(yùn)行 Prometheus Operator。

2 使用 Helm Chart

要使用 Helm Chart 安裝 Prometheus Operator,請(qǐng)按照以下步驟操作:

  1. 啟用 Helm 倉庫:
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
  1. 安裝 Prometheus Operator:
$ helm install prometheus-operator prometheus-community/kube-prometheus-stack

完成后應(yīng)該能夠看到一個(gè)名為 prometheus-operator 的 Deployment,它正在運(yùn)行 Prometheus Operator。

步驟 3. 安裝 Prometheus 實(shí)例

有了 Prometheus Operator 后,我們就可以使用 Prometheus CRD 并安裝一個(gè)新的 Prometheus 實(shí)例,以便開始監(jiān)控 Kubernetes。

以下是如何安裝 Prometheus 實(shí)例的示例 YAML 文件(prometheus.yaml):

apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
  name: my-prometheus
spec:
  replicas: 1
  serviceAccountName: prometheus
  serviceMonitorSelector:
    matchLabels:
      release: prometheus-operator
  ruleSelector:
    matchLabels:
      prometheus: my-prometheus
  alerting:
    alertmanagers:
    - namespace: monitoring
      name: alertmanager-main
      port: web
  image:
    repository: prom/prometheus
    tag: v2.25.0
    sha: 70eaa1c84f09a57f7430afeb229f15c28efcd1cb09c74bb2318917bde3fcb3eb
  retention:
    size: 1Gi
    period: 10d

上述 YAML 文件創(chuàng)建了一個(gè)名為 my-prometheus 的 Prometheus 實(shí)例,并包括以下各項(xiàng):

  • 1 個(gè)副本。
  • 使用 prometheus 服務(wù)賬戶。
  • 使用 Kubernetes ServiceMonitors 對(duì)象進(jìn)行選擇。
  • 使用 PrometheusRule 對(duì)象進(jìn)行選擇,并配置警報(bào)規(guī)則。
  • 配置警報(bào)管理器,可與 Alertmanager 一起使用。
  • Prometheus 鏡像版本為 v2.25.0,并已驗(yàn)證 SHA 校驗(yàn)和。
  • 配置數(shù)據(jù)保留策略。

要使用以上 YAML 文件創(chuàng)建 Prometheus 實(shí)例,請(qǐng)使用以下命令:

$ kubectl apply -f prometheus.yaml

完成后應(yīng)該能夠看到一個(gè)名為 my-prometheus 的 StatefulSet 和 Service 對(duì)象,它們正用于運(yùn)行 Prometheus 實(shí)例。

1.2 Grafana 可視化

Grafana 是一種流行的開源可視化工具,它可以與 Prometheus 及其他數(shù)據(jù)源配合使用,并提供豐富的數(shù)據(jù)可視化和警報(bào)功能。

要在 Kubernetes 中使用 Grafana,我們可以使用一個(gè)叫做 Grafana Operator 的工具來管理 Grafana 實(shí)例,并配置相應(yīng)的數(shù)據(jù)源和面板。

以下是如何使用 Grafana Operator 在 Kubernetes 中設(shè)置 Grafana 可視化的詳細(xì)步驟:

步驟 1. 安裝 Grafana Operator

要安裝 Grafana Operator 需要首先安裝 Operator 部署程序,然后再使用 Operator 創(chuàng)建新的 Grafana 實(shí)例。

以下是如何使用 Operator 部署程序安裝 Grafana Operator 的步驟:

  1. 下載 kube-prometheus-stack:
$ git clone https://github.com/prometheus-operator/kube-prometheus.git
  1. 部署 Grafana Operator:
$ kubectl apply -f kube-prometheus/manifests/grafana-operator

完成后應(yīng)該能夠看到一個(gè)名為 grafana-operator 的 Deployment。

步驟 2. 安裝 Grafana 實(shí)例

有了 Grafana Operator 后,我們就可以使用新的 Grafana CRD 并安裝一個(gè)新的 Grafana 實(shí)例,以便開始可視化 Prometheus 的數(shù)據(jù)。

以下是如何安裝 Grafana 實(shí)例的示例 YAML 文件(grafana.yaml):

apiVersion: integreatly.org/v1alpha1
kind: Grafana
metadata:
  name: my-grafana
spec:
  plugins:
    - name: grafana-clock-panel
      version: 1.0.3
    - name: grafana-piechart-panel
      version: 1.4.0
  config:
    auth.anonymous:
      enabled: true
      org_role: Admin
  dashboardLabelSelector: {}

上述 YAML 文件創(chuàng)建了一個(gè)名為 my-grafana 的 Grafana 實(shí)例,并包括以下各項(xiàng):

  • 配置了兩個(gè)插件:grafana-clock-panel 和 grafana-piechart-panel。
  • 可以啟用匿名訪問,訪客可以使用 Admin 權(quán)限登錄。
  • 沒有選擇特定的面板。

要使用以上 YAML 文件創(chuàng)建 Grafana 實(shí)例,請(qǐng)使用以下命令:

$ kubectl apply -f grafana.yaml

完成后,您應(yīng)該能夠看到一個(gè)名為 my-grafana 的 Deployment 和 Service,它們正用于運(yùn)行 Grafana 實(shí)例。

步驟 3. 創(chuàng)建數(shù)據(jù)源和面板

有了 Grafana 實(shí)例后就可以開始創(chuàng)建數(shù)據(jù)源和面板,以便可視化 Prometheus 中收集的數(shù)據(jù)。

以下是如何在 Grafana 中創(chuàng)建 Prometheus 數(shù)據(jù)源的詳細(xì)步驟:

  1. 登錄 Grafana 界面。默認(rèn)情況下,您可以通過瀏覽器訪問 Grafana 在 Kubernetes 中暴露的服務(wù)(如 http://:3000)。

  2. 在 Grafana 中創(chuàng)建一個(gè)數(shù)據(jù)源。單擊左側(cè)菜單中的 “Configuration” 選項(xiàng)卡,在下拉菜單中選擇 “Data Sources” 。

  3. 點(diǎn)擊 “Add data source” 創(chuàng)建一個(gè)新的數(shù)據(jù)源。在彈出的數(shù)據(jù)源配置界面中,選擇 Prometheus,并輸入正確的 Prometheus URL (如 http://:9090)。

  4. 配置完畢后,單擊 “Save & Test” 按鈕驗(yàn)證 Prometheus 數(shù)據(jù)源是否連接正常。

現(xiàn)在,我們已經(jīng)成功配置了 Prometheus 和 Grafana,如果您需要進(jìn)一步了解如何使用 Grafana 來可視化 Prometheus 中的監(jiān)控?cái)?shù)據(jù),可以考慮參考 Grafana 的官方文檔和相關(guān)教程。

2 微服務(wù)的日志管理

日志管理是微服務(wù)架構(gòu)中另一個(gè)關(guān)鍵方面,通過合理的日志管理,我們可以更好地理解微服務(wù)各個(gè)組件之間的通信、出現(xiàn)的失敗或故障等。在 Kubernetes 中,我們可以使用 ELK Stack 來進(jìn)行微服務(wù)的日志管理。

2.1 ELK Stack

ELK Stack 是指 Elasticsearch、Logstash 和 Kibana 三個(gè)開源軟件的組合,用于實(shí)現(xiàn)日志管理和分析。以下是每個(gè)組件的簡(jiǎn)單介紹:

  • Elasticsearch:一種基于 Lucene 的全文搜索引
    擎,用于存儲(chǔ)和搜索各種類型的數(shù)據(jù),包括日志數(shù)據(jù)。

  • Logstash:一個(gè)用于收集、分析、過濾和轉(zhuǎn)換日志數(shù)據(jù)
    的開源工具,支持多種輸入和輸出格式,例如:
    syslog、Beats、TCP/UDP、Kafka、Elasticsearch 等。

  • Kibana:一個(gè)用于可視化和分析 Elasticsearch 數(shù)據(jù)的可
    視化工具,提供各種儀表板和圖表。

2.2 在 Kubernetes 中使用 ELK Stack

以下是如何在 Kubernetes 中使用 ELK Stack 進(jìn)行微服務(wù)的日志管理的詳細(xì)步驟:

步驟 1. 安裝 Elasticsearch

要在 Kubernetes 中使用 Elasticsearch,我們可以使用官方提供的 Elasticsearch Operator。

以下是如何使用 Elasticsearch Operator 安裝 Elasticsearch 的詳細(xì)步驟:

  1. 下載 Elasticsearch Operator.yaml 文件:
$ curl https://download.elastic.co/downloads/eck/1.0.1/all-in-one.yaml -O
  1. 執(zhí)行以下命令開始安裝 Elasticsearch Operator:
$ kubectl apply -f all-in-one.yaml
  1. 創(chuàng)建一個(gè)名為 elasticsearch 的 Elasticsearch 資源對(duì)象,以便開始使用 Elasticsearch:
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: elasticsearch
spec:
  version: 7.14.0
  nodeSets:
  - count: 1
    name: default
    podTemplate:
      spec:
        containers:
        - name: elasticsearch
          env:
          - name: "cluster.name"
            value: "es-cluster"
          - name: "node.name"
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
          - name: "discovery.seed_hosts"
            value: "elasticsearch-discovery.elasticsearch.svc.cluster.local"
          - name: "cluster.initial_master_nodes"
            value: "elasticsearch-0"
          - name: ES_JAVA_OPTS
            value: "-Xms512m -Xmx512m"
          image: "docker.elastic.co/elasticsearch/elasticsearch:7.14.0"
          volumeMounts:
          - name: elasticsearch-data
            mountPath: /usr/share/elasticsearch/data
        volumes:
        - name: elasticsearch-data
          persistentVolumeClaim:
            claimName: elasticsearch-data

上述 YAML 文件創(chuàng)建了一個(gè)名為 elasticsearch 的 Elasticsearch 資源,并包括以下各項(xiàng):

  • 配置了 Elasticsearch 版本為 7.14.0。
  • 配置每個(gè)節(jié)點(diǎn)的數(shù)量為 1 個(gè)。
  • 配置節(jié)點(diǎn)名稱、群集名稱和群集的主節(jié)點(diǎn)。
  • 配置每個(gè) Elasticsearch 節(jié)點(diǎn)的 JVM 內(nèi)存大小為 512 MB。

要使用以上 YAM 。
L 文件創(chuàng)建 Elasticsearch 實(shí)例,請(qǐng)使用以下命令:

$ kubectl apply -f elasticsearch.yaml

完成后應(yīng)該能夠看到一個(gè)名為 elasticsearch 的 StatefulSet 和 Service,它們正用于運(yùn)行 Elasticsearch 實(shí)例。

步驟 2. 安裝 Logstash

要在 Kubernetes 中使用 Logstash,我們可以使用官方提供的 Logstash Docker 映像。

以下是如何使用 Logstash Docker 映像在 Kubernetes 中安裝 Logstash 的詳細(xì)步驟:

  1. 下載 Logstash 配置文件(logstash.conf):
input {
  beats {
    port => 5044
  }
}
output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]
  }
}
  1. 創(chuàng)建一個(gè)名為 logstash 的 ConfigMap,并將 logstash.conf 文件添加到其中:
$ kubectl create configmap logstash-config --from-file=logstash.conf
  1. 創(chuàng)建一個(gè)名為 logstash 的 Deployment,以便開始使用 Logstash:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: logstash
spec:
  selector:
    matchLabels:
      app: logstash
  replicas: 1
  template:
    metadata:
      labels:
        app: logstash
    spec:
      containers:
      - name: logstash
        image: docker.elastic.co/logstash/logstash:7.14.0
        resources:
          limits:
            memory: 512Mi
        volumeMounts:
        - name: logstash-config
          mountPath: /usr/share/logstash/pipeline/
        - name: logstash-input
          mountPath: /usr/share/logstash/input/
        - name: logstash-logs
          mountPath: /usr/share/logstash/logs/
      volumes:
      - name: logstash-config
        configMap:
          name: logstash-config
      - name: logstash-input
        emptyDir: {}
      - name: logstash-logs
        emptyDir: {}

上述 YAML 文件創(chuàng)建了一個(gè)名為 logstash 的 Deployment,并包括以下各項(xiàng):

  • 配置了 Logstash 處理 Beats 輸入和 Elasticsearch 輸出。
  • 配置了 Logstash 版本為 7.14.0。
  • 配置了每個(gè) Pod 的 JVM 內(nèi)存大小為 512 MB。

要使用以上 YAML 文件創(chuàng)建 Logstash 實(shí)例,請(qǐng)使用以下命令:

$ kubectl apply -f logstash.yaml

完成后應(yīng)該能夠看到一個(gè)名為 logstash 的 Deployment,它正在運(yùn)行 Logstash 實(shí)例。

步驟 3. 安裝 Kibana

要在 Kubernetes 中使用 Kibana 可以使用官方提供的 Kibana Docker 映像。

以下是如何使用 Kibana Docker 映像在 Kubernetes 中安裝 Kibana 的詳細(xì)步驟:

  1. 創(chuàng)建一個(gè)名為 kibana 的 Deployment,以便開始使用 Kibana:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
spec:
  selector:
    matchLabels:
      app: kibana
  replicas: 1
  template:
    metadata:
      labels:
        app: kibana
    spec:
      containers:
      - name: kibana
        image: docker.elastic.co/kibana/kibana:7.14.0
        ports:
        - containerPort: 5601
        readinessProbe:
          httpGet:
            path: /api/status
            port: 5601
          initialDelaySeconds: 30
          periodSeconds: 10
          timeoutSeconds: 5
        livenessProbe:
          httpGet:
            path: /api/status
            port: 5601
          initialDelaySeconds: 30
          periodSeconds: 10
          timeoutSeconds: 5
        env:
        - name: "ELASTICSEARCH_HOSTS"
          value: "http://elasticsearch:9200"

上述 YAML 文件創(chuàng)建了一個(gè)名為 kibana 的 Deployment,并包括以下各項(xiàng):

  • 配置了 Kibana 版本為 7.14.0。
  • 配置了一個(gè)名為 kibana 的容器,該容器運(yùn)行 Kibana。
  • 配置了 Kibana 連接到 Elasticsearch 的 URL。
  • 配置了 Kibana 容器的 readinessProbe 和 livenessProbe。

要使用以上 YAML 文件創(chuàng)建 Kibana 實(shí)例,請(qǐng)使用以下命令:

$ kubectl apply -f kibana.yaml

完成后應(yīng)該能夠看到一個(gè)名為 kibana 的 Deployment,它正在運(yùn)行 Kibana 實(shí)例。

步驟 4. 在 Kibana 中查看日志

現(xiàn)在我們已經(jīng)成功地在 Kubernetes 中安裝了 Elasticsearch、Logstash 和 Kibana,接下來我們可以使用 Kibana 查看微服務(wù)的日志了。以下是如何在 Kibana 中查看日志的詳細(xì)步驟:

  1. 登錄 Kibana 界面。默認(rèn)情況下,您可以通過瀏覽器訪問 Kibana 在 Kubernetes 中暴露的服務(wù)(如 http://:5601)。

  2. 單擊左側(cè)菜單中的 “Discover” 選項(xiàng)卡。該選項(xiàng)卡可讓您查看 Logstash 收集的日志。

  3. 選擇 “Create index pattern” 創(chuàng)建一個(gè)新的索引模式。在下拉菜單中選擇 Logstash 中的索引。根據(jù)您的需要設(shè)置索引模式的名稱,并按需調(diào)整其他配置選項(xiàng)。

  4. 索引模式設(shè)置完畢后,您應(yīng)該能夠在 Discover 選項(xiàng)卡中看到 Logstash 收集的日志。

至此,我們已經(jīng)成功地在 Kubernetes 中安裝和使用了 ELK Stack,實(shí)現(xiàn)了微服務(wù)的日志管理和分析。如果您需要針對(duì)特定的業(yè)務(wù)場(chǎng)景進(jìn)行更深入的日志分析,可以考慮使用更多的 ELK Stack 組件或擴(kuò)展工具。

五、微服務(wù)的自動(dòng)擴(kuò)展

在面對(duì)高并發(fā)、大流量的業(yè)務(wù)場(chǎng)景時(shí),我們往往需要對(duì)微服務(wù)進(jìn)行自動(dòng)擴(kuò)展,以保證系統(tǒng)的穩(wěn)定性、可靠性和可用性。在 Kubernetes 中,我們可以使用自動(dòng)擴(kuò)展組件(如 Horizontal Pod Autoscaler 和 Cluster Autoscaler)來實(shí)現(xiàn)微服務(wù)的自動(dòng)擴(kuò)展。本文將對(duì) Kubernetes 中應(yīng)用水平擴(kuò)展和集群節(jié)點(diǎn)自動(dòng)擴(kuò)展做詳細(xì)介紹。

1 應(yīng)用水平擴(kuò)展

應(yīng)用水平擴(kuò)展是指根據(jù)應(yīng)用的負(fù)載情況,自動(dòng)添加或刪除 Pod 實(shí)例。當(dāng)應(yīng)用的負(fù)載增加時(shí),自動(dòng)添加 Pod 實(shí)例以分擔(dān)流量,當(dāng)負(fù)載下降時(shí),自動(dòng)刪除 Pod 實(shí)例以釋放資源。

1.1 應(yīng)用負(fù)載指標(biāo)監(jiān)控

應(yīng)用負(fù)載指標(biāo)監(jiān)控是應(yīng)用水平擴(kuò)展的前提。在 Kubernetes 中,我們可以使用 Prometheus 和 Grafana 等工具來監(jiān)控應(yīng)用的負(fù)載指標(biāo),如 CPU 使用率、內(nèi)存使用率、請(qǐng)求吞吐量、錯(cuò)誤率等。

以下是一個(gè)示例應(yīng)用的指標(biāo)監(jiān)控配置:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: my-app
spec:
  selector:
    app: my-app
  endpoints:
  - port: web
    interval: 10s
    path: /metrics

上述配置創(chuàng)建了一個(gè)名為 my-app 的 ServiceMonitor,它會(huì)針對(duì) Label 為 app=my-app 的應(yīng)用 Pod 監(jiān)控 /metrics 端點(diǎn)(即應(yīng)用的指標(biāo)信息)。并且每 10 秒刷新一次監(jiān)控?cái)?shù)據(jù)。

1.2 創(chuàng)建 Horizontal Pod Autoscaler 對(duì)象

創(chuàng)建 Horizontal Pod Autoscaler 對(duì)象是應(yīng)用水平擴(kuò)展的關(guān)鍵。它可以根據(jù)應(yīng)用的負(fù)載情況自動(dòng)添加或刪除 Pod 實(shí)例。

以下是一個(gè)示例的 Horizontal Pod Autoscaler 配置文件:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: my-app-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50

上述配置創(chuàng)建了一個(gè)名為 my-app-hpa 的 Horizontal Pod Autoscaler,它會(huì)自動(dòng)擴(kuò)展應(yīng)用 my-app 的 Pod 實(shí)例數(shù)以滿足 CPU 利用率 50% 的條件。當(dāng) CPU 利用率高于目標(biāo)值時(shí),它就會(huì)自動(dòng)添加 Pod 實(shí)例,當(dāng)?shù)陀谀繕?biāo)值時(shí),它就會(huì)自動(dòng)刪除 Pod 實(shí)例。同時(shí),它還設(shè)置了最小可用 Pod 數(shù)為 2,最大可用 Pod 數(shù)為 10。

2 集群節(jié)點(diǎn)的自動(dòng)擴(kuò)展

集群節(jié)點(diǎn)的自動(dòng)擴(kuò)展是指根據(jù)資源利用率和節(jié)點(diǎn)負(fù)載情況,自動(dòng)添加或刪除集群節(jié)點(diǎn)。當(dāng)節(jié)點(diǎn)負(fù)載高或資源利用率高時(shí),自動(dòng)添加節(jié)點(diǎn)以滿足負(fù)載和資源的需求,當(dāng)負(fù)載和資源需求降低時(shí),自動(dòng)刪除節(jié)點(diǎn)以節(jié)省資源和成本。

2.1 使用 Cluster Autoscaler 進(jìn)行節(jié)點(diǎn)擴(kuò)展

在 Kubernetes 中,我們可以使用 Cluster Autoscaler 來自動(dòng)擴(kuò)展集群節(jié)點(diǎn)。它可以根據(jù)節(jié)點(diǎn)上 Pod 的資源需求和其他因素,自動(dòng)添加、刪除集群節(jié)點(diǎn)。

以下是一個(gè)示例 Cluster Autoscaler 的部署文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cluster-autoscaler
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cluster-autoscaler
  template:
    metadata:
      labels:
        app: cluster-autoscaler
    spec:
      serviceAccountName: cluster-autoscaler
      containers:
      - image: k8s.gcr.io/autoscaling/cluster-autoscaler:v1.22.2
        name: cluster-autoscaler
        command:
        - ./cluster-autoscaler
        - --cloud-provider=aws
        - --namespace=default
        - --node-group-auto-discovery=asg:tag=k8s.io/cluster-autoscaler/enabled,k8s.io/cluster-autoscaler/{{ .NodePoolName }}
        - --balance-similar-node-groups
        - --skip-nodes-with-system-pods=false
      tolerations:
      - key: "node-role.kubernetes.io/master"
        effect: "NoSchedule"

上述部署文件創(chuàng)建了一個(gè)名為 cluster-autoscaler 的 Deployment,它會(huì)自動(dòng)擴(kuò)展集群節(jié)點(diǎn)并確保 Pod 能夠正確地調(diào)度和運(yùn)行。需要針對(duì)不同云廠商或基礎(chǔ)設(shè)施提供相應(yīng)的參數(shù),如上例中使用 --cloud-provider=aws 表明是在 AWS 云上運(yùn)行。根據(jù)不同的部署環(huán)境,您需要進(jìn)行相應(yīng)的參數(shù)配置。

六、微服務(wù)的高可用保證

在微服務(wù)架構(gòu)中,保證服務(wù)的高可用性是至關(guān)重要的。本文將介紹微服務(wù)中節(jié)點(diǎn)的健康檢查以及節(jié)點(diǎn)故障自動(dòng)處理方案。

1 節(jié)點(diǎn)的健康檢查

節(jié)點(diǎn)的健康檢查是指通過特定的檢查方式,判斷該節(jié)點(diǎn)的應(yīng)用是否正常運(yùn)行。如果節(jié)點(diǎn)的應(yīng)用由于某些原因發(fā)生異常,就需要將該節(jié)點(diǎn)從負(fù)載均衡中剔除,避免影響到系統(tǒng)整體的穩(wěn)定性和可靠性。常見的節(jié)點(diǎn)健康檢查有兩種方式:Liveness Probe 和 Readiness Probe。

1.1 使用 Liveness Probe 進(jìn)行節(jié)點(diǎn)健康檢查

Liveness Probe 是指 Kubernetes 通過定期向容器進(jìn)程發(fā)送 HTTP 請(qǐng)求、TCP 檢查等方式,檢查容器進(jìn)程是否存活。如果檢查失敗,則 Kubernetes 將自動(dòng)重啟該容器。

以下是一個(gè)示例的 Deployment 文件,該文件配置了一個(gè) Liveness Probe:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: my-image:v1
          ports:
            - containerPort: 80
          livenessProbe:
            httpGet:
              path: /healthz
              port: 80
            initialDelaySeconds: 5
            periodSeconds: 5

上述部署文件中,Liveness Probe 處理的路徑為 /healthz,端口為 80。并且設(shè)置了容器啟動(dòng) 5 秒后進(jìn)行第一次檢查,之后每 5 秒檢查一次。

1.2 使用 Readiness Probe 進(jìn)行節(jié)點(diǎn)就緒狀態(tài)檢查

Readiness Probe 是指 Kubernetes 在容器啟動(dòng)后,通過向容器進(jìn)程發(fā)送 HTTP 請(qǐng)求、TCP 檢查等方式,檢查容器是否已經(jīng)可用。如果檢查失敗,則 Kubernetes 將不會(huì)將該容器加入負(fù)載均衡器的后端。

以下是一個(gè)示例的 Deployment 文件,該文件配置了一個(gè) Readiness Probe:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: my-image:v1
          ports:
            - containerPort: 80
          readinessProbe:
            httpGet:
              path: /healthz
              port: 80
            initialDelaySeconds: 10
            periodSeconds: 5

上述部署文件中,Readiness Probe 處理的路徑為 /healthz,端口為 80。并且設(shè)置了容器啟動(dòng) 10 秒后進(jìn)行第一次檢查,之后每 5 秒檢查一次。

2 節(jié)點(diǎn)故障自動(dòng)處理

節(jié)點(diǎn)故障自動(dòng)處理是指 Kubernetes 在檢測(cè)到某個(gè)節(jié)點(diǎn)或 Pod 出現(xiàn)故障時(shí),自動(dòng)將該節(jié)點(diǎn)或 Pod 從負(fù)載均衡中剔除,并嘗試使用其他節(jié)點(diǎn)或 Pod 來提供服務(wù)。常見的節(jié)點(diǎn)故障自動(dòng)處理方式有兩種方式:使用 Kubernetes 自帶的故障轉(zhuǎn)移機(jī)制和使用 Helm 的 Chart 進(jìn)行微服務(wù)的快速恢復(fù)。

2.1 使用 Kubernetes 自帶的故障轉(zhuǎn)移機(jī)制

在 Kubernetes 中,使用 ReplicationController 或 Deployment 來管理 Pod 時(shí),會(huì)自動(dòng)進(jìn)行故障轉(zhuǎn)移,使得系統(tǒng)可以自動(dòng)補(bǔ)償故障節(jié)點(diǎn)的宕機(jī),確保服務(wù)的高可用性。

例如,假設(shè)我們部署了一個(gè)名為 my-app 的 Deployment,并設(shè)置了副本數(shù)為 3:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: my-image:v1
          ports:
            - containerPort: 80
          livenessProbe:
            httpGet:
              path: /healthz
              port: 80
            initialDelaySeconds: 5
            periodSeconds: 5
          readinessProbe:
            httpGet:
              path: /healthz
              port: 80
            initialDelaySeconds: 10
            periodSeconds: 5

如果其中的一個(gè) Pod 因?yàn)槟承┰驘o法正常工作,Kubernetes 會(huì)自動(dòng)將該 Pod 刪除,并自動(dòng)創(chuàng)建一個(gè)新的 Pod 以確保副本數(shù)符合期望。

2.2 使用 Helm 的 Chart 進(jìn)行微服務(wù)的快速恢復(fù)

當(dāng)微服務(wù)出現(xiàn)故障時(shí),我們需要快速恢復(fù)該服務(wù),使得業(yè)務(wù)能夠正常運(yùn)行。在 Kubernetes 中,我們可以使用 Helm 的 Chart 來實(shí)現(xiàn)快速的微服務(wù)恢復(fù)。

例如,我們可以使用以下命令創(chuàng)建一個(gè)基于 Nginx 的 Helm Chart:

$ helm create my-nginx

然后,在 Chart.yaml 文件中添加依賴信息:

apiVersion: v2
name: my-nginx
description: A Helm chart for Kubernetes
version: 0.1.0
dependencies:
  - name: nginx
    version: 1.0.0
    repository: https://example.com/charts

最后,使用以下命令安裝該 Chart:

$ helm install my-nginx ./my-nginx

當(dāng)微服務(wù)出現(xiàn)故障時(shí)可以使用以下命令將其刪除:

$ helm delete my-nginx

然后再重新部署該服務(wù):

$ helm install my-nginx ./my-nginx

以上就是微服務(wù)高可用保證方面的內(nèi)容,希望能對(duì)您理解 Kubernetes 中的高可用性能力有所幫助。文章來源地址http://www.zghlxwxcb.cn/news/detail-444577.html

到了這里,關(guān)于搭建高效微服務(wù)架構(gòu):Kubernetes、Prometheus和ELK Stack的完美組合的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【圖文詳解】Docker搭建 ELK Stack (elk) [使用es-logstash-filebeat-kibana]

    【圖文詳解】Docker搭建 ELK Stack (elk) [使用es-logstash-filebeat-kibana]

    ????????如果您對(duì) elk 還不了解,那么可以先直戳下方官方鏈接,官方通過圖形化界面很形象地介紹了elk stack(Elastic? Stack)。 ?ELK Stack:Elasticsearch 的開發(fā)者傾心打造 | Elastic 本文使用軟件(centos7,moba) | 拉取es鏡像 || 拉取kibana鏡像? ||| 拉取logstash鏡像 |||| 拉取filebeat鏡

    2023年04月08日
    瀏覽(29)
  • 1. ELK Stack 理論篇之什么是ELK Stack?

    1. ELK Stack 理論篇之什么是ELK Stack?

    ELK Stack指的就是 Elastic Stack。 Elastic Stack 是 ELK Stack 的更新?lián)Q代產(chǎn)品。 那么, ELK 到底是什么呢? “ELK”是三個(gè)開源項(xiàng)目的首字母縮寫,這三個(gè)項(xiàng)目分別是: Elasticsearch 、 Logstash 和 Kibana 。 Elasticsearch 是一個(gè)搜索和分析引擎。 Logstash 是服務(wù)器端數(shù)據(jù)處理管道,能夠同時(shí)從多個(gè)來

    2023年04月09日
    瀏覽(30)
  • [ELK] ELK+Filebeat變成ELK stack

    [ELK] ELK+Filebeat變成ELK stack

    在 Node1 節(jié)點(diǎn)上操作 1.?安裝 Filebeat 2. 設(shè)置 filebeat 的主配置文件? ? ? 3. 啟動(dòng) filebeat? ? 4.在 Logstash 組件所在節(jié)點(diǎn)上新建一個(gè) Logstash 配置文件? ?5.瀏覽器訪問 ? ?作用:grok 使用文本片段切分的方式來切分日志事件 2.1?內(nèi)置正則表達(dá)式調(diào)用? ●SYNTAX代表匹配值的類型,例如

    2024年01月20日
    瀏覽(15)
  • Kibana-elastic--Elastic Stack--ELK Stack

    Kibana 是什么? | Elastic 將數(shù)據(jù)轉(zhuǎn)變?yōu)榻Y(jié)果、響應(yīng)和解決方案 使用 Kibana 針對(duì)大規(guī)模數(shù)據(jù)快速運(yùn)行數(shù)據(jù)分析,以實(shí)現(xiàn)可觀測(cè)性、安全和搜索。對(duì)來自任何來源的任何數(shù)據(jù)進(jìn)行全面透徹的分析,從威脅情報(bào)到搜索分析,從日志到應(yīng)用程序監(jiān)測(cè),不一而足。 蟲瞻圖(英語:worm\\\'s-eye

    2024年02月15日
    瀏覽(25)
  • Saas整合ELK Stack

    ELK Stack(Elasticsearch、Logstash、Kibana)是一個(gè)流行的日志管理和分析工具。將SaaS與ELK Stack整合,可以實(shí)現(xiàn)對(duì)日志的實(shí)時(shí)收集、分析和可視化。 以下是將SaaS整合ELK Stack的操作流程: 1. 準(zhǔn)備工作 - 注冊(cè)并登錄ELK Stack所在的服務(wù)提供商,獲取ELK Stack的訪問權(quán)限。 - 確保SaaS服務(wù)已部

    2024年01月25日
    瀏覽(22)
  • 基于 K8S 搭建自己的 ELK 服務(wù)

    基于 K8S 搭建自己的 ELK 服務(wù)

    基于 K8S(K3S) 搭建自己的 ELK 服務(wù) 對(duì)應(yīng)的 Yaml 資源在 https://github.com/nicelizhi/k8s-elk 上面的資源有硬盤掛載與 config 類型的使用 configMap 的配置使用與 Secret內(nèi)容的使用 pipe 日志處理了 Heroku 平臺(tái)日志收集。并且配置了pipe的自動(dòng)加載動(dòng)作,這塊也是實(shí)際應(yīng)用中經(jīng)常應(yīng)用到的功能 針對(duì)

    2024年02月08日
    瀏覽(30)
  • Prometheus+Grafana 監(jiān)控平臺(tái)實(shí)踐-搭建&常用服務(wù)監(jiān)控&告警

    Prometheus+Grafana 監(jiān)控平臺(tái)實(shí)踐-搭建&常用服務(wù)監(jiān)控&告警

    Prometheus 是一個(gè)開放性的監(jiān)控解決方案,通過各種 Exporter 采集當(dāng)前主機(jī)/服務(wù)的數(shù)據(jù),和 Grafana 相結(jié)合可以實(shí)現(xiàn)強(qiáng)大的監(jiān)控和可視化功能 本篇將分享使用 docker compose 構(gòu)建 Prometheus+Grafana,并監(jiān)控之前文章所搭建的主機(jī)服務(wù),分享日常使用的一些使用經(jīng)驗(yàn) 文章較長(zhǎng),已安裝可略

    2024年02月05日
    瀏覽(28)
  • Elasticsearch,Logstash和Kibana安裝部署(ELK Stack)

    Elasticsearch,Logstash和Kibana安裝部署(ELK Stack)

    前言 當(dāng)今數(shù)字化時(shí)代,信息的快速增長(zhǎng)使得各類組織和企業(yè)面臨著海量數(shù)據(jù)的處理和分析挑戰(zhàn)。在這樣的背景下,ELK Stack(Elasticsearch、Logstash 和 Kibana)作為一套強(qiáng)大的開源工具組合,成為了解決數(shù)據(jù)管理、搜索和可視化的首選方案。無論是監(jiān)控日志、實(shí)時(shí)數(shù)據(jù)分析,還是構(gòu)

    2024年02月10日
    瀏覽(52)
  • 微服架構(gòu)基礎(chǔ)設(shè)施環(huán)境平臺(tái)搭建 -(四)在Kubernetes集群基礎(chǔ)上搭建Kubesphere平臺(tái)

    微服架構(gòu)基礎(chǔ)設(shè)施環(huán)境平臺(tái)搭建 -(四)在Kubernetes集群基礎(chǔ)上搭建Kubesphere平臺(tái)

    通過采用微服相關(guān)架構(gòu)構(gòu)建一套以Kubernetes+Docker為自動(dòng)化運(yùn)維基礎(chǔ)平臺(tái),以微服務(wù)為服務(wù)中心,在此基礎(chǔ)之上構(gòu)建業(yè)務(wù)中臺(tái),并通過Jekins自動(dòng)構(gòu)建、編譯、測(cè)試、發(fā)布的自動(dòng)部署,形成一套完整的自動(dòng)化運(yùn)維、發(fā)布的快速DevOps平臺(tái)。 本文是基于Kubernets集群基礎(chǔ)上來部署Kubesp

    2024年02月04日
    瀏覽(35)
  • Centos 從0搭建grafana和Prometheus 服務(wù)以及問題解決

    Centos 從0搭建grafana和Prometheus 服務(wù)以及問題解決

    虛擬機(jī)下載 https://customerconnect.vmware.com/en/downloads/info/slug/desktop_end_user_computing/vmware_workstation_player/17_0 cenos 鏡像下載 https://www.centos.org/download/ grafana 服務(wù)下載 https://grafana.com/grafana/download/7.4.0?platform=linux Prometheus 服務(wù)下載 https://prometheus.io/download/ grafana安裝 grafana 啟動(dòng) prometheus 安

    2024年02月14日
    瀏覽(51)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包