介紹

監控是 DevOps 生命週期的重要方面,可確保您的基礎架構、應用程式和服務以最佳狀態運作。有效的監控可以幫助團隊深入了解系統效能、應用程式運作狀況和使用者體驗,從而實現更可靠、更有效率的軟體交付。

在本文中,我們將探討如何設定和配置 DevOps 中一些最廣泛使用的監控工具: AWS CloudWatchPrometheusAlertmanagerGrafanaKibana 。每個工具都有特定的用途,從收集和聚合指標到視覺化資料和管理警報。

🖼️ 圖片概述

圖片說明

🔧 工具概述

1. 🟠 AWS CloudWatch

目的:監控和管理AWS資源和應用程式。

主要特點:

  • 提供AWS服務的即時監控。

  • 允許根據指標閾值設定警報並自動響應。

  • 與其他 AWS 服務無縫整合。

2. 🔵 普羅米修斯

用途:開源系統監控和警報工具包。

主要特點:

  • 高效率收集和儲存時間序列資料。

  • 提供用於分析指標的強大查詢語言 (PromQL)。

  • 非常適合監控雲端原生應用程式,尤其是使用微服務的應用程式。

3. 🚨 警報管理器

用途:處理 Prometheus 發送的警報並管理通知。

主要特點:

  • 根據定義的規則將警報路由到正確的接收者。

  • 支援警報的靜音、抑制和分組。

  • 與電子郵件、Slack 和 PagerDuty 等各種通知平台整合。

4.📊格拉法納

目的:一個用於監控和可觀察性的開源平台。

主要特點:

  • 允許建立可自訂的互動式儀表板。

  • 支援廣泛的資料來源,包括 Prometheus、Elasticsearch 等。

  • 提供警報功能,能夠在儀表板上可視化警報。

5.🔍基巴納

用途: Elasticsearch 的可視化和資料探索工具。

主要特點:

  • 專注於日誌和時間序列分析。

  • 使用戶能夠為 Elasticsearch 資料建立視覺化和儀表板。

  • 包括搜尋、查看 Elasticsearch 中儲存的資料以及與之互動的功能。

🛠️設定說明

1. 🟠 AWS CloudWatch

設定步驟:

  1. 為 CloudWatch 建立 IAM 角色:
   aws iam create-role --role-name CloudWatchRole --assume-role-policy-document file://trust-policy.json
  1. 附加 CloudWatch 策略:
   aws iam attach-role-policy --role-name CloudWatchRole --policy-arn arn:aws:iam::aws:policy/CloudWatchFullAccess
  1. 建立 CloudWatch 日誌組:
   aws logs create-log-group --log-group-name MyLogGroup
  1. 建立 CloudWatch 警報:
   aws cloudwatch put-metric-alarm --alarm-name "High CPU Usage" --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 80 --comparison-operator GreaterThanOrEqualToThreshold --evaluation-periods 2 --alarm-actions arn:aws:sns:us-east-1:123456789012:MyTopic

2. 🔵 普羅米修斯

設定步驟:

  1. 安裝普羅米修斯:
   wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz
   tar -xvf prometheus-2.32.1.linux-amd64.tar.gz
   cd prometheus-2.32.1.linux-amd64
  1. 配置普羅米修斯:

編輯prometheus.yml檔案以配置 Prometheus:

   global:
     scrape_interval: 15s

   scrape_configs:
     - job_name: 'prometheus'
       static_configs:
         - targets: ['localhost:9090']
  1. 啟動普羅米修斯:
   ./prometheus --config.file=prometheus.yml

3. 🚨 警報管理器

設定步驟:

  1. 安裝警報管理器:
   wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz
   tar -xvf alertmanager-0.23.0.linux-amd64.tar.gz
   cd alertmanager-0.23.0.linux-amd64
  1. 配置警報管理器:

編輯alertmanager.yml檔案以設定警報規則:

   global:
     resolve_timeout: 5m

   route:
     receiver: 'email-alert'

   receivers:
     - name: 'email-alert'
       email_configs:
         - to: '[email protected]'
           from: '[email protected]'
           smarthost: 'smtp.example.com:587'
           auth_username: 'your-username'
           auth_password: 'your-password'
  1. 啟動警報管理器:
   ./alertmanager --config.file=alertmanager.yml

4.📊格拉法納

設定步驟:

  1. 安裝 Grafana:
   wget https://dl.grafana.com/oss/release/grafana-8.3.3.linux-amd64.tar.gz
   tar -zxvf grafana-8.3.3.linux-amd64.tar.gz
   cd grafana-8.3.3
  1. 啟動 Grafana 伺服器:
   ./bin/grafana-server
  1. 參觀 Grafana:

開啟瀏覽器並前往http://localhost:3000 。預設登入名是admin/admin

  1. 新增 Prometheus 作為資料來源:
  • 前往Configuration > Data Sources

  • 選擇普羅米修斯

  • 輸入 Prometheus 伺服器的 URL,例如http://localhost:9090

5.🔍基巴納

設定步驟:

  1. 安裝 Kibana:
   wget https://artifacts.elastic.co/downloads/kibana/kibana-7.16.2-linux-x86_64.tar.gz
   tar -xzf kibana-7.16.2-linux-x86_64.tar.gz
   cd kibana-7.16.2-linux-x86_64
  1. 配置 Kibana:

編輯kibana.yml檔案以將 Kibana 連接到您的 Elasticsearch 實例:

   server.port: 5601
   elasticsearch.hosts: ["http://localhost:9200"]
  1. 啟動 Kibana:
   ./bin/kibana
  1. 存取基巴納:

開啟瀏覽器並前往http://localhost:5601

🏁 結論

透過設定這些工具,您建立了一個強大的監控環境,使您可以即時追蹤和視覺化應用程式和基礎架構的效能。每個工具在確保系統的可靠性和可擴展性方面都發揮著至關重要的作用,從而更容易及早發現問題並快速回應。


感謝您閱讀我的部落格...:)

©版權所有: ProDevOpsGuy

影像

加入我們的Telegram 社群||關注我了解更多DevOps 內容。


原文出處:https://dev.to/prodevopsguytech/devops-project-high-level-monitoring-in-devops-png


共有 0 則留言