• 1-3 docker 安装 prometheus


    一、环境

    1、环境准备

    安装Docker

    镜像加速

    安装 docker

    检查版本

    安装Docker-compose

    二、Docker-compose 安装 Prometheus

    1、【方式一】手动创建 docker-compose 和 配置文件

    创建prometheus监控的文件夹

    创建alertmanager的配置文件 - config.yml

    新建grafana的配置文件 - config.monitoring

    新建prometheus的配置文件 -  prometheus.yml

    创建alert报警文件 - alert.yml

    新建docker-compose.yaml文件

    2、【方式二 - 推荐】通过克隆gitee代码安装 

    运行命令

    检查容器

    检查接口

    web访问地址

    三、各个容器及应用

    1、使用 grafana 展示 prometheus的图形

    1、登录Grafana

    2、创建 Prometheus 数据源

    3、仪表盘

    Stage 1:官网搜索

     Stage 2 :复制id

     Stage 3 :Grafana导入id


    一、环境

    1、环境准备

    安装Docker

    • 镜像加速
    1. #创建文件夹,父级目录也被自动创建
    2. sudo mkdir -p /etc/docker
    3. sudo tee /etc/docker/daemon.json <<-'EOF'
    4. {
    5. "registry-mirrors": ["https://n14or9zx.mirror.aliyuncs.com",
    6. "https://mirror.ccs.tencentyun.com",
    7. "http://registry.docker-cn.com",
    8. "http://docker.mirrors.ustc.edu.cn",
    9. "http://hub-mirror.c.163.com"],
    10. "insecure-registries": [
    11. "registry.docker-cn.com",
    12. "docker.mirrors.ustc.edu.cn"
    13. ],
    14. "log-driver": "json-file",
    15. "log-opts": {
    16. "max-size": "500m"
    17. }
    18. }
    19. EOF
    • 安装 docker
    1. #设置下载目录
    2. export DOWNLOAD_URL="http://mirrors.163.com/docker-ce"
    3. curl -fssL https://get.docker.com/ | sh
    • 检查版本
    1. docker -v
    2. systemctl status docker

    安装Docker-compose

    1. # 下载
    2. curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    3. # 设置文件具备执行权限
    4. chmod +x /usr/local/bin/docker-compose
    5. # 查看版本
    6. docker-compose --version

    二、Docker-compose 安装 Prometheus

    1、【方式一】手动创建 docker-compose 和 配置文件

    • 创建prometheus监控的文件夹

    1. #切换到root用户
    2. sudo -i
    3. mkdir /data/docker-prometheus -p
    4. mkdir /data/docker-prometheus/{grafana,prometheus,alertmanager} -p
    5. cd /data/docker-prometheus/

    • 创建alertmanager的配置文件 - config.yml

    1. global:
    2. #163服务器
    3. smtp_smarthost: 'smtp.163.com:465'
    4. #发邮件的邮箱
    5. smtp_from: 'cdring@163.com'
    6. #发邮件的邮箱用户名,也就是你的邮箱     
    7. smtp_auth_username: 'cdring@163.com'
    8. #发邮件的邮箱密码
    9. smtp_auth_password: 'your-password'
    10. #进行tls验证
    11. smtp_require_tls: false
    12. route:
    13. group_by: ['alertname']
    14. # 当收到告警的时候,等待group_wait配置的时间,看是否还有告警,如果有就一起发出去
    15. group_wait: 10s
    16. # 如果上次告警信息发送成功,此时又来了一个新的告警数据,则需要等待group_interval配置的时间才可以发送出去
    17. group_interval: 10s
    18. # 如果上次告警信息发送成功,且问题没有解决,则等待 repeat_interval配置的时间再次发送告警数据
    19. repeat_interval: 10m
    20. # 全局报警组,这个参数是必选的
    21. receiver: email
    22. receivers:
    23. - name: 'email'
    24. #收邮件的邮箱
    25. email_configs:
    26. - to: 'cdring@163.com'
    27. inhibit_rules:
    28. - source_match:
    29. severity: 'critical'
    30. target_match:
    31. severity: 'warning'
    32. equal: ['alertname', 'dev', 'instance']

    • 新建grafana的配置文件 - config.monitoring

    1. # admin登录密码为password
    2. GF_SECURITY_ADMIN_PASSWORD=password
    3. GF_USERS_ALLOW_SIGN_UP=false
    • 新建prometheus的配置文件 -  prometheus.yml

    1. # 全局配置
    2. global:
    3. scrape_interval: 15s # 将搜刮间隔设置为每15秒一次。默认是每1分钟一次。
    4. evaluation_interval: 15s # 每15秒评估一次规则。默认是每1分钟一次。
    5. # Alertmanager 配置
    6. alerting:
    7. alertmanagers:
    8. - static_configs:
    9. - targets: ['alertmanager:9093']
    10. # 报警(触发器)配置
    11. rule_files:
    12. - "alert.yml"
    13. # 搜刮配置
    14. scrape_configs:
    15. - job_name: 'prometheus'
    16. # 覆盖全局默认值,每15秒从该作业中刮取一次目标
    17. scrape_interval: 15s
    18. static_configs:
    19. - targets: ['localhost:9090']
    20. - job_name: 'alertmanager'
    21. scrape_interval: 15s
    22. static_configs:
    23. - targets: ['alertmanager:9093']
    24. - job_name: 'cadvisor'
    25. scrape_interval: 15s
    26. static_configs:
    27. - targets: ['cadvisor:8080']
    28. labels:
    29. instance: Prometheus服务器
    30. - job_name: 'node-exporter'
    31. scrape_interval: 15s
    32. static_configs:
    33. - targets: ['node_exporter:9100']
    34. labels:
    35. instance: Prometheus服务器

    • 创建alert报警文件 - alert.yml

    1. groups:
    2. - name: Prometheus alert
    3. rules:
    4. # 对任何实例超过30秒无法联系的情况发出警报
    5. - alert: 服务告警
    6. expr: up == 0
    7. for: 30s
    8. labels:
    9. severity: critical
    10. annotations:
    11. summary: "服务异常,实例:{{ $labels.instance }}"
    12. description: "{{ $labels.job }} 服务已关闭"

    • 新建docker-compose.yaml文件

    1. version: '3.3'
    2. # 存储卷
    3. volumes:
    4. prometheus_data: {}
    5. grafana_data: {}
    6. networks:
    7. monitoring:
    8. driver: bridge
    9. services:
    10. prometheus:
    11. image: prom/prometheus:v2.37.6
    12. container_name: prometheus
    13. restart: always
    14. volumes:
    15. - /etc/localtime:/etc/localtime:ro # 本地时区挂载在镜像中
    16. - ./prometheus/:/etc/prometheus/
    17. - prometheus_data:/prometheus # 数据存储位置
    18. command:
    19. - '--config.file=/etc/prometheus/prometheus.yml'
    20. - '--storage.tsdb.path=/prometheus'
    21. - '--web.console.libraries=/usr/share/prometheus/console_libraries' # 控制台库
    22. - '--web.console.templates=/usr/share/prometheus/consoles' # 控制台模板
    23. #热加载配置
    24. - '--web.enable-lifecycle'
    25. #api配置
    26. #- '--web.enable-admin-api'
    27. #历史数据最大保留时间,默认15天
    28. - '--storage.tsdb.retention.time=30d'
    29. networks:
    30. - monitoring
    31. links:
    32. - alertmanager
    33. - cadvisor
    34. - node_exporter
    35. expose:
    36. - '9090'
    37. ports:
    38. - 9090:9090
    39. depends_on:
    40. - cadvisor # 等待cadvisor启动完成后prometheus再启动
    41. alertmanager:
    42. image: prom/alertmanager:v0.25.0
    43. container_name: alertmanager
    44. restart: always
    45. volumes:
    46. - /etc/localtime:/etc/localtime:ro
    47. - ./alertmanager/:/etc/alertmanager/
    48. command:
    49. - '--config.file=/etc/alertmanager/config.yml'
    50. - '--storage.path=/alertmanager'
    51. networks:
    52. - monitoring
    53. expose:
    54. - '9093'
    55. ports:
    56. - 9093:9093
    57. # 监控容器
    58. cadvisor:
    59. image: google/cadvisor:latest
    60. container_name: cadvisor
    61. restart: always
    62. volumes:
    63. - /etc/localtime:/etc/localtime:ro
    64. - /:/rootfs:ro
    65. - /var/run:/var/run:rw
    66. - /sys:/sys:ro
    67. - /var/lib/docker/:/var/lib/docker:ro
    68. networks:
    69. - monitoring
    70. expose:
    71. - '8080'
    72. node_exporter:
    73. image: prom/node-exporter:v1.5.0
    74. container_name: node-exporter
    75. restart: always
    76. volumes:
    77. - /etc/localtime:/etc/localtime:ro
    78. - /proc:/host/proc:ro
    79. - /sys:/host/sys:ro
    80. - /:/rootfs:ro
    81. command:
    82. - '--path.procfs=/host/proc'
    83. - '--path.sysfs=/host/sys'
    84. - '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc|rootfs/var/lib/docker)($$|/)'
    85. networks:
    86. - monitoring
    87. ports:
    88. - '9100:9100'
    89. grafana:
    90. image: grafana/grafana:9.4.3
    91. container_name: grafana
    92. restart: always
    93. volumes:
    94. - /etc/localtime:/etc/localtime:ro
    95. - grafana_data:/var/lib/grafana
    96. - ./grafana/provisioning/:/etc/grafana/provisioning/
    97. env_file:
    98. - ./grafana/config.monitoring
    99. networks:
    100. - monitoring
    101. links:
    102. - prometheus
    103. ports:
    104. - 3000:3000
    105. depends_on:
    106. - prometheus

    2、【方式二 - 推荐】通过克隆gitee代码安装 

    1. mkdir /mnt/docker/
    2. cd /mnt/docker/
    3. git clone https://gitee.com/linge365/docker-prometheus.git
    4. cd docker-prometheus

    运行命令

    1. cd /data/docker-prometheus
    2. docker-compose up -d

    检查容器

    docker ps

    检查接口

    ss -lntp|egrep "3000|9090|9100|9093"

    web访问地址

    应用访问地址账号密码
    prometheushttp://xxx.116.6.228:9090
    grafanahttp://xxx.116.6.228:3000admin/password
    altermanagerhttp://xxx.116.6.228:9093
    node-exporterhttp://xxx.116.6.228:9100/metrics

    三、各个容器及应用

    1、使用 grafana 展示 prometheus的图形

    • 通过 grafana 添加数据源,展示 node-exporter数据

    1、登录Grafana

    • 登录 Grafana :http://192.168.11.61:3000/
    • 用户名: admin
    • 密码: password

    2、创建 Prometheus 数据源

    3、仪表盘

    • 从 Grafana.com 导入仪表板
    Stage 1:官网搜索

     Stage 2 :复制id

     Stage 3 :Grafana导入id

     

     

     

  • 相关阅读:
    外汇天眼:了解外汇市场交易中的流动性
    Android etc1tool之png图片转换pkm 和 zipalign简介
    线程同步之信号量
    独一无二的设计模式——单例模式(Java实现)
    【概念】详细介绍:什么是BP神经网络?(Sigmoid 激活函数,再次介绍) || 感受野 || 前向传播 和 反向传播
    web前端期末大作业:基于HTML+CSS+JavaScript奥迪企业bootstrap响应式网站
    【FFH】啃论文俱乐部---JSON压缩算法解读
    Linux知识点 -- 高级IO(一)
    【C++】从无到有学习路线
    微调中文bert训练时采用CPU跑?
  • 原文地址:https://blog.csdn.net/ladymorgana/article/details/134146889