先講環境。
prometheus 是用 helm 裝 prometheus-operator 版本,安裝在 monitoring namespace,名稱用 prometheus。
influxdb 是用 helm 裝 stable/influxdb 版本,安裝在 influxdb namespace,名稱用 influxdb。所以對其他 namespace 的 app 來說,要 access influxdb 的 url 就是 http://influxdb.influxdb:8086/。
另外,在安裝 influxdb 時, 設定了連入的帳號密碼,假設都是 admin。
然後到 influxdb 裡,建立一個dabase 給 prometheus 使用,名稱就用 prometheus
kubectl -n influxdb exec -it influxdb-774cbf58d6-8nrkp bash
進到 container 裡面後,執行 influx ,然後 create database prometheus 就好了。
接著修改 prometheus 的設定,參考 prometheus 官網的說明修改
kubectl -n monitoring edit prometheus prometheus-prometheus-oper-prometheus
找到其中的 remoteRead 和 remoteWrite 那兩行,修改為
remoteRead:
- url: http://influxdb.influxdb:8086/api/v1/prom/read?db=prometheus&u=admin&p=admin
remoteWrite:
- url: http://influxdb.influxdb:8086/api/v1/prom/write?db=prometheus&u=admin&p=admin
就這樣,搞定。剩下是驗證的部分......
可以先確認一下 prometheus pod 的 log,log 可能很長,篩選和 influxdb 有關的就好
kubectl -n monitoring logs prometheus-prometheus-prometheus-oper-prometheus-0 prometheus |grep influxdb
如果權限不對之類的而無法放資料到 influxdb ,可以從 log 裡看到。
設定正確的話,應該會看到類似這樣的 log
ts=2019-08-08T06:40:38.624Z caller=dedupe.go:111 component=remote level=info queue="0:http://influxdb.influxdb我驗證的方式是在 monitoring 這個 namespace 跑一個 influxdb client 去測試連線及語法查詢。
:8086/api/v1/prom/write?db=prometheus&u=admin&p=admin" msg="starting WAL watcher" queue="0:http://influxdb.inf
luxdb:8086/api/v1/prom/write?db=prometheus&u=admin&p=admin"
kubectl -n monitoring run -it influx --restart=Never --image=influxdb --rm=true bash
進到 container 後,先用 curl 指令測試能不能遠端讀寫。
# write data
curl -i -XPOST 'http://influxdb.influxdb:8086/write?db=prometheus' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
# read data
curl -G 'http://influxdb.influxdb:8086/query?pretty=true' --data-urlencode "db=prometheus" --data-urlencode "q=select * from \"cpu_load_short\""
接著連到 influxdb namespace 裡的 influxdb 驗證資料是否有進來
influx -database prometheus -host influxdb.influxdb
然後查詢是否有 prometheus 的資料進來,我不知道有什麼可以查,所以先去 prometheus 本身的管理介面,隨便選一個 mertric 來查詢
select * from ceph_mds_metadata看到有資料進來了,結案收工。
沒有留言:
張貼留言