四、prometheus聯邦配置
阿新 • • 發佈:2022-03-19
一、基礎環境
192.168.88.200 prometheus # prometheus主節點 192.168.88.201 prometheus-federate1 # 聯邦節點1 192.168.88.202 prometheus-federate2 # 聯邦節點2 192.168.88.203 node1 192.168.88.204 node2
二、配置prometheus聯邦
2.1、部署prometheus
prometheus主節點和兩個聯邦節點都部署prometheus
# 解壓二進位制包 root@prometheus:~# tar xf /usr/local/src/prometheus-2.30.3.linux-amd64.tar.gz -C /usr/local/ root@prometheus:~# cd /usr/local/ root@prometheus:/usr/local# ln -sv prometheus-2.30.3.linux-amd64/ prometheus 'prometheus' -> 'prometheus-2.30.3.linux-amd64/' root@prometheus:/usr/local# cd prometheus root@prometheus:/usr/local/prometheus# ls LICENSE NOTICE console_libraries consoles prometheus prometheus.yml promtool root@prometheus:/usr/local/prometheus# # prometheus.service 檔案 root@prometheus:~# cat > /etc/systemd/system/prometheus.service << EOF > [Unit] > Description=Prometheus Server > Documentation=https://prometheus.io/docs/introduction/overview > After=network.target > > [Service] > Restart=on-failure > WorkingDirectory=/usr/local/prometheus > ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml > > [Install] > WantedBy=multi-user.target > EOF root@prometheus:~# # 啟動 root@prometheus:/usr/local# systemctl daemon-reload root@prometheus:/usr/local# systemctl start prometheus root@prometheus:/usr/local# netstat -tnpl | grep 9090 tcp6 0 0 :::9090 :::* LISTEN 2787/prometheus root@prometheus:/usr/local#
2.2、部署node_exporter
# 在node1和node2上執行以下步驟 # 二進位制解包 root@node1:~# cd /usr/local/src/ root@node1:/usr/local/src# tar xf node_exporter-1.2.2.linux-amd64.tar.gz root@node1:/usr/local/src# cd node_exporter-1.2.2.linux-amd64/ root@node1:/usr/local/src/node_exporter-1.2.2.linux-amd64# ls LICENSE NOTICE node_exporter root@node1:/usr/local/src/node_exporter-1.2.2.linux-amd64# mv node_exporter /usr/local/bin/ root@node1:/usr/local/src/node_exporter-1.2.2.linux-amd64# # 建立service檔案 root@node1:~# cat > /etc/systemd/system/node-exporter.service << EOF > [Unit] > Description=Prometheus Node Exporter > After=network.target > > [Service] > ExecStart=/usr/local/bin/node_exporter > > [Install] > WantedBy=multi-user.target > EOF root@node1:~# # 啟動 root@node1:~# systemctl daemon-reload root@node1:~# systemctl start node-exporter root@node1:~# netstat -tnlp | grep 9100 tcp6 0 0 :::9100 :::* LISTEN 2648/node_exporter root@node1:~#
2.3、配置prometheus聯邦節點監控node
分別在聯邦節點1上監控node1,聯邦節點2上監控node2
# 監控node1 root@prometheus-federate1:/usr/local/prometheus# vim prometheus.yml ................ - job_name: "node1" static_configs: - targets: ["192.168.88.203:9100"] root@prometheus-federate1:/usr/local/prometheus# systemctl restart prometheus.service
# 監控node2 root@prometheus-federate2:/usr/local/prometheus# vim prometheus.yml ................ - job_name: "node2" static_configs: - targets: ["192.168.88.204:9100"] root@prometheus-federate2:/usr/local/prometheus# systemctl restart prometheus.service
2.4、配置prometheus主server採集聯邦節點資料
root@prometheus:/usr/local/prometheus# vim prometheus.yml .......... - job_name: "prometheus-federate-1" scrape_interval: 10s honor_labels: true metrics_path: '/federate' params: 'match[]': - '{job="prometheus"}' - '{__name__=~"job.*"}' - '{__name__=~"node.*"}' static_configs: - targets: - '192.168.88.201:9090' - job_name: "prometheus-federate-2" scrape_interval: 10s honor_labels: true metrics_path: '/federate' params: 'match[]': - '{job="prometheus"}' - '{__name__=~"job.*"}' - '{__name__=~"node.*"}' static_configs: - targets: - '192.168.88.202:9090' root@prometheus:/usr/local/prometheus# systemctl restart prometheus.service
2.5、驗證prometheus server資料
驗證指標資料
prometheus server已經可以收集兩個node的指標資料了