做网站能月入10万,去掉wordpress.org,旅游网站排名前5位的,桂林象鼻山免费吗前言 Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机服务,分享日常使用的一些使用经验 文…前言 Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机服务,分享日常使用的一些使用经验 文章较长,已安装可略过,推荐先看第三节 常用服务的 Prometheus+Grafana 配置 特点
成熟稳定且强大丰富的插件,大部分情况都能满足轻量级部署,资源占用少使用情况
主要用来作为监控面板使用使用 Grafana 监控:linux ,windows,redis,clickhouse,mongodb,mysql, RabbitMQ,站点情况使用 Grafana 设置告警当服务出现无法访问时通知到企业微信群Grafana 版本问题,可能存在面板失效,需要做一些调整使用 docker compose 安装 Prometheus
配置文件说明 prometheus 版本:v2.47.2 指定运行参数: 启动配置文件路径:'--config.file=/etc/prometheus/prometheus.yml'数据存储目录:'--storage.tsdb.path=/prometheus'数据保留时间:'--storage.tsdb.retention.time=30d'允许使用 curl -X POST ``http://localhost:9090/-/reload 重载其配置:'--web.enable-lifecycle'指定 web 控制台配置,添加了账号密码:'--web.config.file=/etc/prometheus/web-config.yml' 开放端口:9090 指定网络:devopsnetwork (docker network create devopsnetwork) 挂载配置文件及数据目录,需要对数据目录进行创建及赋予权限:mkdir prometheus_data chown 65534 ./prometheus_data 关于持久化权限的讨论 用到了三个配置文件:compose.yml prometheus.yml web-config.yml docker compose 文件:compose.yml version: '3.1'
services:prometheus:restart: alwayscontainer_name: prometheusimage: prom/prometheus:v2.47.2command:# 配置文件- '--config.file=/etc/prometheus/prometheus.yml'# 指定web面板账号密码访问- '--web.config.file=/etc/prometheus/web-config.yml'# 数据目录- '--storage.tsdb.path=/prometheus'# 数据保留时间- '--storage.tsdb.retention.time=30d'# 运行使用 curl -X POST http://localhost:9090/-/reload 重载其配置- '--web.enable-lifecycle'volumes:# 需要权限 mkdir prometheus_data chown 65534 ./prometheus_data- ./prometheus.yml:/etc/prometheus/prometheus.yml- ./prometheus_data:/prometheus- ./web-config.yml:/etc/prometheus/web-config.ymlports:- 9090:9090networks:- devopsnetworknetworks:devopsnetwork:external: trueprometheus 配置文件示例:prometheus.yml, 指定了 prometheus ,并设置了访问密码 root devops666 global:scrape_interval: 15s # By default, scrape targets every 15 seconds.# Attach these labels to any time series or alerts when communicating with# external systems (federation, remote storage, Alertmanager).external_labels:monitor: 'codelab-monitor'# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:- job_name: 'prometheus'scrape_interval: 5sstatic_configs:- targets: ['localhost:9090']# 启用了账号密码 web-config.yml basic_auth_users 需要配置basic_auth:username: rootpassword: devops666web 控制台配置:web-config.yml 指定账号密码 root devops666 basic_auth_users:root: $2a$10$c6OOt9f6LuhiabPyW0nkNOprb1ndQ/HHSfqjB/exe7yh5FaYUqvBy启动:docker compose up -dPrometheus 指定账号密码访问
设置 https 或基础密码验证文档要启用 web 面板账号密码访问,指定 web 访问配置文件 '--web.config.file=/etc/prometheus/web-config.yml'映射 web-config.yml 指定账号密码 root devops666 ,Prometheus 密码需要使用 htpasswd 生成 bcrypt 密码 在线生成工具basic_auth_users:root: $2a$10$kmkC.lHR3Kwl19DE9l1KRerMDinEejEbNmJigrJZYAGkgzbVBUpa2如果需要使用 Prometheus 监听 Prometheus ,并且 Prometheus 启用了身份验证,需要在配置出增加 basic_auth 配置节scrape_configs:- job_name: 'prometheus'scrape_interval: 5sstatic_configs:- targets: ['localhost:9090']# 启用了账号密码 web-config.yml basic_auth_users 需要配置basic_auth:username: rootpassword: devops666掉坑里去了,如果一开始 basic_auth 没有配置对,重载配置是无效的,需要重启 重载配置
修改了配置文件后,可以使用 api 接口重载配置,如果启用了账号密码可以使用 -u 参数指定(basic_auth 修改重载配置无效),没有就不需要加 -u 参数
curl -X POST http://localhost:9090/-/reload
或
curl -X POST -u root:devops666 http://localhost:9090/-/reload添加 nginx 配置
还不会在局域网申请 ssl 及配置的可以参考之前的文章 前后端都用得上的 Nginx 日常使用经验
server {listen 80;listen 443 ssl;server_name prometheus.devops.test.com; # 自行修改成你的域名ssl_certificate /certs/prometheus.devops.test.com/server.crt;ssl_certificate_key /certs/prometheus.devops.test.com/server.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {proxy_pass http://prometheus:9090;proxy_http_version 1.1;proxy_buffering off;proxy_request_buffering off;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;}
}安装成功
根据上面的配置,完成了 Prometheus 的搭建,监听本身 Prometheus 的情况
通过https://prometheus.devops.test.com/ 使用账号密码 root devops666 登陆后即可 使用 docker compose 安装 Grafana
Grafana 是一个开源的数据可视化和监控平台,它提供了丰富的图表和面板,用于展示各种指标和数据。提到 Prometheus,Grafana 自然是不不能落下,基于官方和社区,可以很快的制作出监控可视化面板,助力日常运维检测
配置文件说明
grafana 版本:v10.2.0指定账号密码: root devops666端口映射:3000挂载数据目录 ./grafana_data, 需要赋予权限:mkdir -p grafana_data chown -R 472:472 ./grafana_data指定网络为 devopsnetwork(docker network create devopsnetwork)docker compose 文件:compose.yml ,安装 v10.2.0 替换版本号即可version: '3.1'
services:grafana:restart: alwayscontainer_name: grafanaimage: grafana/grafana:10.2.0ports:- "3000:3000"volumes:- ./grafana_data:/var/lib/grafanaenvironment:- GF_SECURITY_ADMIN_USER=root- GF_SECURITY_ADMIN_PASSWORD=devops666- GF_USERS_ALLOW_SIGN_UP=falsenetworks:- devopsnetworknetworks:devopsnetwork:external: true启动:docker compose up -d添加 nginx 配置
server {