監控是 DevOps 生命週期的重要方面,可確保您的基礎架構、應用程式和服務以最佳狀態運作。有效的監控可以幫助團隊深入了解系統效能、應用程式運作狀況和使用者體驗,從而實現更可靠、更有效率的軟體交付。
在本文中,我們將探討如何設定和配置 DevOps 中一些最廣泛使用的監控工具: AWS CloudWatch 、 Prometheus 、 Alertmanager 、 Grafana和Kibana 。每個工具都有特定的用途,從收集和聚合指標到視覺化資料和管理警報。
目的:監控和管理AWS資源和應用程式。
主要特點:
提供AWS服務的即時監控。
允許根據指標閾值設定警報並自動響應。
與其他 AWS 服務無縫整合。
用途:開源系統監控和警報工具包。
主要特點:
高效率收集和儲存時間序列資料。
提供用於分析指標的強大查詢語言 (PromQL)。
非常適合監控雲端原生應用程式,尤其是使用微服務的應用程式。
用途:處理 Prometheus 發送的警報並管理通知。
主要特點:
根據定義的規則將警報路由到正確的接收者。
支援警報的靜音、抑制和分組。
與電子郵件、Slack 和 PagerDuty 等各種通知平台整合。
目的:一個用於監控和可觀察性的開源平台。
主要特點:
允許建立可自訂的互動式儀表板。
支援廣泛的資料來源,包括 Prometheus、Elasticsearch 等。
提供警報功能,能夠在儀表板上可視化警報。
用途: Elasticsearch 的可視化和資料探索工具。
主要特點:
專注於日誌和時間序列分析。
使用戶能夠為 Elasticsearch 資料建立視覺化和儀表板。
包括搜尋、查看 Elasticsearch 中儲存的資料以及與之互動的功能。
aws iam create-role --role-name CloudWatchRole --assume-role-policy-document file://trust-policy.json
aws iam attach-role-policy --role-name CloudWatchRole --policy-arn arn:aws:iam::aws:policy/CloudWatchFullAccess
aws logs create-log-group --log-group-name MyLogGroup
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
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
編輯prometheus.yml
檔案以配置 Prometheus:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
./prometheus --config.file=prometheus.yml
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
編輯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'
./alertmanager --config.file=alertmanager.yml
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
./bin/grafana-server
開啟瀏覽器並前往http://localhost:3000 。預設登入名是admin/admin
。
前往Configuration > Data Sources
。
選擇普羅米修斯。
輸入 Prometheus 伺服器的 URL,例如http://localhost:9090
。
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
編輯kibana.yml
檔案以將 Kibana 連接到您的 Elasticsearch 實例:
server.port: 5601
elasticsearch.hosts: ["http://localhost:9200"]
./bin/kibana
開啟瀏覽器並前往http://localhost:5601 。
透過設定這些工具,您建立了一個強大的監控環境,使您可以即時追蹤和視覺化應用程式和基礎架構的效能。每個工具在確保系統的可靠性和可擴展性方面都發揮著至關重要的作用,從而更容易及早發現問題並快速回應。
感謝您閱讀我的部落格...:)
©版權所有: ProDevOpsGuy
原文出處:https://dev.to/prodevopsguytech/devops-project-high-level-monitoring-in-devops-png