docker 部署prometheus + grafana

通过docker部署prometheus、node-exporter、alertmanager和grafana。prometheus最新版本:2.19.2


  • 主机说明:
系统 ip 角色 cpu 内存 hostname
CentOS 7.8 192.168.30.135 prometheus、node1 >=2 >=2G prometheus
CentOS 7.8 192.168.30.136 altermanager、node2 >=2 >=2G altermanager
CentOS 7.8 192.168.30.137 grafana、node3 >=2 >=2G grafana
  • 全部关闭防火墙和selinux:
systemctl stop firewalld && systemctl disable firewalld

sed -i 's/=enforcing/=disabled/g' /etc/selinux/config  && setenforce 0
  • 安装docker:
curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo

yum makecache fast

yum install -y docker-ce

systemctl start docker && systemctl enable docker

  • node-exporter:
docker pull prom/node-exporter:latest

docker run -d -p 9100:9100 --name node-exporter prom/node-exporter:latest

docker ps

CONTAINER ID        IMAGE                       COMMAND                CREATED             STATUS              PORTS                    NAMES
95252704e558        prom/node-exporter:latest   "/bin/node_exporter"   3 seconds ago       Up 2 seconds        0.0.0.0:9100->9100/tcp   node-exporter

netstat -lntp |grep docker

tcp6       0      0 :::9100                 :::*                    LISTEN      9076/docker-proxy
  • alertmanager:
mkdir /home/prom && cd /home/prom

docker pull prom/alertmanager:latest

docker pull timonwong/prometheus-webhook-dingtalk               #钉钉告警

vim config.yml
targets:
  webhook:
    url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxx             #修改为钉钉机器人的webhook
    mention:
      all: true
vim alertmanager.yml
global:
  resolve_timeout: 5m
  smtp_smarthost: 'smtp.163.com:465'             #邮箱smtp服务器代理,启用SSL发信, 端口一般是465
  smtp_from: 'alert@163.com'              #发送邮箱名称
  smtp_auth_username: 'alert@163.com'              #邮箱名称
  smtp_auth_password: 'password'                #邮箱密码或授权码
  smtp_require_tls: false

route:
  receiver: 'default'
  group_wait: 10s
  group_interval: 1m
  repeat_interval: 1h
  group_by: ['alertname']

inhibit_rules:
- source_match:
    severity: 'critical'
  target_match:
    severity: 'warning'
  equal: ['alertname', 'instance']
  
receivers:
- name: 'default'
  email_configs:
  - to: 'receiver@163.com'
    send_resolved: true
  webhook_configs:
  - url: 'http://192.168.30.136:8060/dingtalk/webhook/send'
    send_resolved: true
docker run -d -p 8060:8060 -v /home/prom/config.yml:/etc/prometheus-webhook-dingtalk/config.yml --name alertdingtalk timonwong/prometheus-webhook-dingtalk

docker run -d -p 9093:9093 -p 9094:9094 -v /home/prom/alertmanager.yml:/etc/alertmanager/alertmanager.yml --name alertmanager prom/alertmanager:latest

docker ps

CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS              PORTS                              NAMES
bed08b1b251d        prom/alertmanager:latest                "/bin/alertmanager -…"   3 seconds ago       Up 2 seconds        0.0.0.0:9093-9094->9093-9094/tcp   alertmanager
1449d7d0a445        timonwong/prometheus-webhook-dingtalk   "/bin/prometheus-web…"   21 seconds ago      Up 20 seconds       0.0.0.0:8060->8060/tcp             alertdingtalk
cf90ea931188        prom/node-exporter:latest               "/bin/node_exporter"     23 minutes ago      Up 23 minutes       0.0.0.0:9100->9100/tcp             node-exporter

netstat -lntp |grep docker

tcp6       0      0 :::9100                 :::*                    LISTEN      14970/docker-proxy  
tcp6       0      0 :::8060                 :::*                    LISTEN      17666/docker-proxy  
tcp6       0      0 :::9093                 :::*                    LISTEN      17808/docker-proxy  
tcp6       0      0 :::9094                 :::*                    LISTEN      17794/docker-proxy
  • prometheus:
mkdir -p /home/prom/data && chmod 777 /home/prom/data && cd /home/prom

docker pull prom/prometheus:latest

vim alert-rules.yml
groups:
  - name: node-alert
    rules:
    - alert: NodeDown
      expr: up{
   job="node"} == 0
      for: 5m
      labels:
        severity: critical
        instance: "{
   { $labels.instance }}"
      annotations:
        summary: "instance: {
   {
    $labels.instance }} down"
        description: "
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值