y82.第四章 Prometheus大厂监控体系及实战 -- 监控扩展和prometheus 联邦(十三)
发布时间
阅读量:
阅读量
10.5 监控nginx
通过prometheus监控nginx
需要在编译的时候添加nginx-module-vts模块
github地址:https://github.com/vozlt/nginx-module-vts
AI助手
10.5.1 编译安装nginx
root@node2:~# cd /usr/local/src/
root@node2:/usr/local/src# git clone git://github.com/vozlt/nginx-module-vts.git
root@node2:/usr/local/src# wget http://nginx.org/download/nginx-1.22.0.tar.gz
root@node2:/usr/local/src# tar xf nginx-1.22.0.tar.gz
root@node2:/usr/local/src# cd nginx-1.22.0/
root@node2:/usr/local/src# apt -y install make gcc libpcre3 libpcre3-dev openssl libssl-dev zlib1g-dev
root@node2:/usr/local/src# ./configure --prefix=/apps/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-file-aio \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module \
--add-module=/usr/local/src/nginx-module-vts/
root@node2:/usr/local/src/nginx-1.22.0# make && make install
AI助手
10.5.2 编辑nginx配置文件
root@node2:/usr/local/src# /apps/nginx/conf/nginx.conf
http {
...
vhost_traffic_status_zone;
server {
...
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
...
}
}
root@node2:/usr/local/src/nginx-1.22.0# /apps/nginx/sbin/nginx -t
nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /apps/nginx/conf/nginx.conf test is successful
root@node2:/usr/local/src/nginx-1.22.0# /apps/nginx/sbin/nginx
AI助手

10.5.3 安装nginx_exporter
root@node2:~# wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
root@node2:~# tar xf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
root@node2:~# cd nginx-vts-exporter-0.10.3.linux-amd64/
root@node2:~/nginx-vts-exporter-0.10.3.linux-amd64# ls
LICENSE nginx-vts-exporter
root@node2:~/nginx-vts-exporter-0.10.3.linux-amd64# cp nginx-vts-exporter /usr/local/src/
root@node2:~/nginx-vts-exporter-0.10.3.linux-amd64# ./nginx-vts-exporter -nginx.scrape_uri http://172.31.2.182/status/format/json
AI助手
10.5.4 验证nginx_exporter数据
http://172.31.2.182:9913/metrics

10.5.5 prometheus配置
root@prometheus1:/apps/prometheus# vim prometheus.yml
...
- job_name: 'nginx-monitor-metrics'
static_configs:
- targets: ['172.31.2.182:9913']
root@prometheus1:/apps/prometheus# systemctl restart prometheus
AI助手

10.5.6 导入模板
https://grafana.com/grafana/dashboards/2949

11.prometheus 联邦
prometheus server环境:
31.2.101 #主节点
172.31.2.102 #联邦节点1
172.31.2.103 #联邦节点2
172.31.2.181 #node1,成员1的采集服务器
172.31.2.182 #node2,成员2的采集服务器
AI助手
11.1 部署node_exporter
node节点(被监控节点)分别部署node_exporter
# mkdir /apps
# cd /apps/
# wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
# tar xf node_exporter-1.3.1.linux-amd64.tar.gz
# ln -sv /apps/node_exporter-1.3.1.linux-amd64 /apps/node_exporter
# vim /etc/systemd/system/node-exporter.service
[Unit]
Description=Prometheus Node Exporter
After=network.target
[Service]
ExecStart=/apps/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
# systemctl enable --now node-exporter.service
AI助手
11.2 部署prometheus server
prometheus 主server和prometheus 联邦server分别部署prometheus
# mkdir /apps
# cd /apps/
# wget https://github.com/prometheus/prometheus/releases/download/v2.35.0/prometheus-2.35.0.linux-amd64.tar.gz
# tar xf prometheus-2.35.0.linux-amd64.tar.gz
# ln -sv /apps/prometheus-2.35.0.linux-amd64/ /apps/prometheus
# vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target
[Service]
Restart=on-failure
WorkingDirectory=/apps/prometheus/
ExecStart=/apps/prometheus/prometheus --config.file=/apps/prometheus/prometheus.yml
[Install]
WantedBy=multi-user.target
# systemctl enable --now prometheus
AI助手
11.3 配置联邦server监控node_exporter
分别在联邦节点1监控node1,在联邦节点2监控node2
#prometheus联邦节点1:
root@prometheus2:/apps/prometheus# vim prometheus.yml
...
- job_name: "prometheus-node1"
static_configs:
- targets: ["172.31.2.181:9100"]
root@prometheus2:/apps/prometheus# systemctl restart prometheus.service
AI助手
验证数据:

#prometheus联邦节点2:
root@prometheus3:/apps/prometheus# vim prometheus.yml
...
- job_name: "prometheus-node2"
static_configs:
- targets: ["172.31.2.182:9100"]
root@prometheus3:/apps/prometheus# systemctl restart prometheus.service
AI助手
验证数据:

11.4 prometheus server采集联邦server
root@prometheus1:/apps/prometheus# vim prometheus.yml
...
- job_name: 'prometheus-federate-2.102'
scrape_interval: 10s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
- '{__name__=~"node.*"}'
static_configs:
- targets:
- '172.31.2.102:9090'
- job_name: 'prometheus-federate-2.103'
scrape_interval: 10s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
- '{__name__=~"node.*"}'
static_configs:
- targets:
- '172.31.2.103:9090'
root@prometheus1:/apps/prometheus# systemctl restart prometheus.service
AI助手
11.5 验证prometheus server
11.5.1 验证数据收集状态

11.5.2 验证指标数据

11.6 导入模板
8919:

root@prometheus2:/apps/prometheus# vim file_sd_config/k8s.json
[
{
"targets": ["172.31.7.111:39100","172.31.7.112:39100","172.31.7.113:39100","172.31.7.101:39100","172.31.7.102:39100","172.31.7.103:39100"]
}
]
AI助手


全部评论 (0)
还没有任何评论哟~
