監控etcd
每個etcd服務器都/metrics
在其客戶端端口路徑下導出指標。
可以通過以下方式獲取指標curl
:
本文為了安全用了證書所以
curl https://172.21.130.169:2379/metrics --cacert /var/local/etcd/ssl/ca.pem --cert /var/local/etcd/ssl/server.pem --key /var/local/etcd/ssl/server-key.pem
$ curl -L http://localhost:2379/metrics
# HELP etcd_debugging_mvcc_keys_total Total number of keys. # TYPE etcd_debugging_mvcc_keys_total gauge etcd_debugging_mvcc_keys_total 0 # HELP etcd_debugging_mvcc_pending_events_total Total number of pending events to be sent. # TYPE etcd_debugging_mvcc_pending_events_total gauge etcd_debugging_mvcc_pending_events_total 0 ...
普羅米修斯
運行Prometheus監視服務是提取和記錄etcd指標的最簡單方法。
首先,安裝Prometheus:
PROMETHEUS_VERSION="1.3.1"
wget https://github.com/prometheus/prometheus/releases/download/v$PROMETHEUS_VERSION/prometheus-$PROMETHEUS_VERSION.linux-amd64.tar.gz -O /tmp/prometheus-$PROMETHEUS_VERSION.linux-amd64.tar.gz
tar -xvzf /tmp/prometheus-$PROMETHEUS_VERSION.linux-amd64.tar.gz --directory /tmp/ --strip-components=1
/tmp/prometheus -version
將Prometheus的scraper設置為針對etcd集群端點:
cat > /tmp/test-etcd.yaml <<EOF global: scrape_interval: 10s scrape_configs: - job_name: test-etcd static_configs: - targets: ['10.240.0.32:2379','10.240.0.33:2379','10.240.0.34:2379'] EOF cat /tmp/test-etcd.yaml
設置Prometheus處理程序:
nohup /tmp/prometheus \ -config.file /tmp/test-etcd.yaml \ -web.listen-address ":9090" \ -storage.local.path "test-etcd.data" >> /tmp/test-etcd.log 2>&1 &
現在,Prometheus將每10秒抓取一次etcd指標。
格拉法納
Grafana具有內置的Prometheus支持。只需添加一個Prometheus數據源:
Name: test-etcd Type: Prometheus Url: http://localhost:9090
Access: proxy
然后導入默認的etcd儀表板模板並進行自定義。例如,如果Prometheus數據源名稱為my-etcd
,則datasource
JSON中的字段值也需要為my-etcd
。