ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

部署搭建 Prometheus 和 Grafana教程

部署搭建 Prometheus 和 Grafana教程 部署搭建 Prometheus 和 Grafana教程采用容器方式部署包括Node Exporter 和 cAdvisor收集容器数据部署机器是Ubuntu22.04第一步安装 Docker 和 Docker Composesudoapt-getupdatesudoapt-getinstall-yca-certificatescurlgnupg# 添加GPG密钥和软件源sudoinstall-m0755-d/etc/apt/keyringscurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpgecho\deb [arch$(dpkg --print-architecture)signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(./etc/os-releaseecho$VERSION_CODENAME)stable|\sudotee/etc/apt/sources.list.d/docker.list/dev/nullsudoapt-getupdatesudoapt-getinstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudousermod-aGdocker$USER#重新登录你的 SSH 会话或终端才能生效docker--versiondockercompose version第二步 Docker Compose 配置文件和Prometheus配置文件2.1创建 Prometheus 配置文件# 创建一个名为 monitoring 的目录并在其中创建 prometheus 子目录顺便创建一下Granfa的目录mkdir-p/data/docker-compose/prometheus/grafana/grafana-configmkdir-p/data/docker-compose/prometheus/grafana/grafana-datamkdir-p/data/docker-compose/prometheuscd/data/docker-compose/prometheusvimprometheus.yml# Prometheus的配置文件global: scrape_interval: 15s scrape_configs: - job_name:prometheusstatic_configs: - targets:[localhost:9090]- job_name:node-exporterstatic_configs: - targets:[node-exporter:9100]- job_name:cadvisorstatic_configs: - targets:[cadvisor:8080]这个配置告诉 Prometheus 去采集它自己、Node Exporter 和 cAdvisor 的指标数据。2.2创建 Docker Compose 文件cd/data/docker-compose/prometheusvimdocker-compose.yml services: prometheus: image: prom/prometheus:latest container_name: prometheus restart: unless-stopped ports: -9090:9090volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro command: ---config.file/etc/prometheus/prometheus.yml---storage.tsdb.path/prometheus---web.enable-lifecyclenetworks: - monitoring grafana: image: grafana/grafana:latest container_name: grafana restart: unless-stopped ports: -3000:3000environment: -GF_SECURITY_ADMIN_USERadmin -GF_SECURITY_ADMIN_PASSWORDadmin volumes: - ./grafana/grafana-data:/var/lib/grafana - ./grafana/grafana-config:/etc/grafana networks: - monitoring depends_on: - prometheus node-exporter: image: prom/node-exporter:latest container_name: node-exporter restart: unless-stopped ports: -9100:9100volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: ---path.procfs/host/proc---path.sysfs/host/sys---path.rootfs/rootfsnetworks: - monitoring cadvisor: image: gcr.nju.edu.cn/cadvisor/cadvisor:latest container_name: cadvisor restart: unless-stopped ports: -8080:8080volumes: - /:/rootfs:ro - /var/run:/var/run:ro - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro - /dev/disk/:/dev/disk:ro networks: - monitoring networks: monitoring: driver: bridge volumes: grafana-data:第三步启动服务验证和访问dockercompose up-ddockercomposeps四个服务prometheus, grafana, node-exporter, cadvisor的状态都是 UpPrometheus浏览器访问 http://你的服务器IP:9090。可以点击 “Status” - “Targets” 查看所有监控目标是否都为 “UP” 状态。Grafana浏览器访问 http://你的服务器IP:3000。使用我们在配置文件中设置的用户名 admin 和密码 admin 登录。第四步在 Grafana 中配置并使用4.1 添加 Prometheus 数据源点击 Add data source然后选择 Prometheus在 HTTP - URL 字段中输入 http://prometheus:9090点击页面底部的 Save Test看到 “Data source is working” 的绿色提示即表示连接成功4.2 导入预置仪表盘Grafana 官网提供了大量社区贡献的仪表盘可以直接导入使用。常用模板ID监控容器14282 3146 8685 10000 8588 315监控物理机-虚拟机Linux8919 9276监控物理机-虚拟机Windows10467 10171监控协议http/icmp/tcp/dns9965额外设置Granfa中文登录到 Grafana 后点击右上角的头像进入 Profile 页面在 Preferences 栏目下找到 Language 选项从下拉菜单中选择 中文简体然后点击 Save 按钮保存设置Prometheus的原理和基本概念3个核心基本概念时间序列数据将数据按照时间排列收集的技术指标具体指CPU使用率和内存占用等信息每一个具体的监控项都是一个指标exporter专门替promthues采集数据的工具例如 Mysql Exporter Node Exporter等负责吧系统各项指标收集好提供给promthues。等promthues抓取核心原理Prometheus Server采用“拉取模式”主动采集数据间隔默认15s去Exporter拿取最新的数据Time-Series Database (TSDB)拿到的数据回存在自带的TSDB数据库默认保留15天防止爆满**Prometheus Exporters**就是报告员将指标从特定系统转换为普罗米修斯可以理解的格式。它可以是系统指标如 CPU、内存等也可以是 Java JMX 指标、MySQL 指标等Prometheus PushgatewayPrometheus 默认使用 pull 方式来抓取指标。然而有些场景需要将指标推送到 prometheusPrometheus Alert ManagerAlertmanager 是 Prometheus 监控系统的关键部分。它的主要工作是根据 Prometheus 警报配置中设置的指标阈值发送警报Alertmanager 对告警去重、抑制、静默、分组最后使用各类通知媒介电子邮件、slack 等发出告警事件PromQLPromQL 是一种灵活的查询语言可用于从 prometheus 查询时间序列指标常用promql表达式CPU 使用率100 - (avg by(instance) (rate(node_cpu_seconds_total{mode“idle”}[5m])) * 100) CPU使用率 100% - CPU空闲率内存使用率(1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 内存使用率 1 - (可用内存 / 总内存)磁盘使用率(1 - node_filesystem_free_bytes{fstype!“tmpfs”} / node_filesystem_size_bytes) * 100 磁盘使用率 1 - (剩余空间 / 总空间)
返回列表