直到Prometheus实现联邦(Prometheus联邦设置指南)
前言
https://qiita.com/sinnsa233048/items/e6bcfa97660e38007a93 的续篇
普羅米修斯的建立/配置
-
- 将kube-prometheus的清单部署到k8s集群中
-
- 在prometheus1服务器上创建prometheus容器
- 在prometheus1服务器上创建grafana容器
在哪种环境下使用过
从上次开始,已经添加了Prometheus节点。
-
- 使用OS: CentOS7.8
-
- masterノード
ノード名: master1
ipアドレス: 192.168.10.11
wokerノード
ノード名: woker1
ipアドレス: 192.168.10.21
prometheusノード
ノード名: prometheus1
ipアドレス: 192.168.10.31
将kube-prometheus的清单部署到k8s集群中。
使用核心的 Kube-prometheus 存储库的部署。
从Git中克隆
# yum -y install git
# git clone https://github.com/coreos/kube-prometheus.git
# cd kube-prometheus
部署宣言书
由于此次不使用alartmanager,因此需要创建其他目录。
# mkdir manifests-not-deploy
# mv manifests/alertmanager* manifests-not-deploy/
除了AlertManager的配置文件外,部署其他清单文件。
# kubectl create -f manifests/setup
# kubectl create -f manifests
修改宣言书
本次我们将使用NodePort方式公开Prometheus端口,并进行外部访问。
(关于Grafana,本次也将进行公开。)
- manifests/prometheus-service.yaml
添加类型为NodePort的端口,node端口为30090。
apiVersion: v1
kind: Service
metadata:
labels:
prometheus: k8s
name: prometheus-k8s
namespace: monitoring
spec:
type: NodePort
ports:
- name: web
port: 9090
targetPort: web
nodePort: 30090
selector:
app: prometheus
prometheus: k8s
sessionAffinity: ClientIP
- manifests/grafana-service.yaml
也会添加相同的内容:
type: NodePort
nodePort: 30090
apiVersion: v1
kind: Service
metadata:
labels:
app: grafana
name: grafana
namespace: monitoring
spec:
type: NodePort
ports:
- name: http
port: 3000
targetPort: http
nodePort: 30080
selector:
app: grafana
在prometheus1服务器上创建prometheus容器。
安装Docker
使用docker官方的安装脚本(在k8s集群搭建教程中也使用过)。
$ curl https://get.docker.com | sh
# systemctl enable docker
# systemctl start docker
創建Prometheus的設定檔案
获取在k8s集群中构建的Prometheus的所有信息。
cat <<EOF > /tmp/prometheus.yml
scrape_configs:
- job_name: 'federate'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job=".+"}'
- '{__name__=~".+"}'
static_configs:
- targets:
- '192.168.10.11:30090'
EOF
启动prometheus容器
# docker run -d -p 9090:9090 -v/tmp/prometheus.yml:/etc/prometheus/prometheus.yml
prom/prometheus
在Prometheus服务器上创建Grafana容器。
启动容器
docker run -d --name=grafana -p 3000:3000 grafana/grafana
設置數據源
选择Prometheus,并在URL中指定为http://localhost:9090。
仪表盘设置
将标记了kubernetes-mixin的dashbord从在k8s集群中构建的grafana导出,并在prometheus1服务器上导入和使用grafana。
最终一步
我将介绍分两个部分在Prometheus上实现联邦的方法。
如果有任何疑问或指正,请随时提出。