记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

docker安装prometheus+grafana监控平台


一,环境说明。

1,主机IP:192.168.1.20,docker环境,安装prometheus, node-exporter,alertmanager。

2,主机IP:192.168.1.41,docker环境,安装pushgateway,grafana,node-exporter。



二,各个组件的安装。

1,192.168.1.20主机中先建好相关挂载目录。

prometheus挂载文件 :

  /opt/prometheus/config/prometheus.yml     --->     /etc/prometheus/prometheus.yml

/opt/prometheus/work --->   /prometheus

2,prometheus.yml文件的具体内容。

# my global config
global:
  scrape_interval: 15s
  evaluation_interval: 15s
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
            - 192.168.1.20:9093

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
  # - "/etc/prometheus/rules/*.rules"
scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["192.168.1.20:9090"]
        labels:
          instance: prometheus
          service: prometheus-service

  - job_name: "nodes"
    scrape_interval: 15s
    file_sd_configs: #文件服务的自动发现
      - files: ["/etc/prometheus/targets/node*.json"]

  - job_name: "pushgateway"
    scrape_interval: 5s
    honor_labels: true
    static_configs:
      - targets: ["192.168.1.41:9091"]

  - job_name: "grafana"
    static_configs:
      - targets: ["192.168.1.41:3000"]

  - job_name: linux
    static_configs:
      - targets: ["192.168.1.20:9100"]
        labels:
          instance: localhost


3,192.168.1.20主机中docker安装prometheus的具体命令:

docker run -d --name=prometheus -d -p 9090:9090 \
-v /opt/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml   \  
-v /opt/prometheus/work:/prometheus  
-v "/etc/localtime:/etc/localtime"  \  
prom/prometheus


 4,打开 192.168.1.20:9090,查看prometheus,执行up查询,会出来4个job,但是只有prometheus-service是正常状态,因为别的都没有安装。 



4,192.168.1.20主机中docker中prometheus的node-exporter,相当于安装监控客户端程序。由于docker与主机互同,所以使用 --net=host

具体方法如下:

docker run -d --name=node-exporter -p 9100:9100 \
    -v "/proc:/host/proc" \
    -v "/sys:/host/sys" \
    -v "/:/rootfs" \
    -v "/etc/localtime:/etc/localtime" \
    --net=host \
    prom/node-exporter \
    --path.procfs /host/proc \
    --path.sysfs /host/sys \
    --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"

  

5,192.168.1.41主机中使用docker安装grafana,具体方法如下:

docker run -d --name=grafana -p 3000:3000 \
    -v "/etc/localtime:/etc/localtime" \
    -v /opt/grafana-storage:/var/lib/grafana \
    grafana/grafana

 6,到prometheus上面查看效果,是否抓取相当指标数据。可以看到已经抓取三个targets的指标数据。



7,访问url:http://192.168.1.41:3000/

默认会先跳转到登录页面,默认的用户名和密码都是admin登录之后,它会要求你重置密码。你还可以再输次admin密码!



8,给grafana,添加prometheus的数据源-datasource。

如下图,填写相关的信息,完成后点 save&test ,测试是否正常。




 9,回到首页,点击New dashboard,输入cpu,底部会有提示。当然也可以导入官方的模板,这样方便些。

这里监控 node_load1,表示系统1分钟的负载。点击下面的Add Query

效果如下:



10,配置节点主机硬盘监控信息。输入node,底部会有提示,这里监控 node_disk_info 。点击下面的Add Query。
点击General,修改标题为中文,点击上面的保存按钮。
效果如下:


点击首页,就会有展示。



11,192.168.1.20主机中使用docker安装alertmanager,具体方法如下:

docker run -d --name=alertmanagers -p 9093:9093 \
-v "/etc/localtime:/etc/localtime" \
prom/alertmanager

当然,也可以挂载目录: /opt/prometheus/alerts/alertmanager.yml:/etc/alertmanager/alertmanager.yml

alertmanager.yml内容如下:

global:
  resolve_timeout: 5m
  smtp_from: "邮箱"
  smtp_smarthost: "smtp.exmail.qq.com:25"
  smtp_auth_username: "邮箱"
  smtp_auth_password: "密码"
  smtp_require_tls: false
  smtp_hello: "qq.com"
route:
  group_by: ["alertname"]
  group_wait: 5s
  group_interval: 5s
  repeat_interval: 5m
  receiver: "email"
receivers:
  - name: "email"
    email_configs:
      - to: "收件邮箱"
        send_resolved: true
inhibit_rules:
  - source_match:
      severity: "critical"
    target_match:
      severity: "warning"
    equal: ["alertname", "dev", "instance"]


打开WEB网址,效果如下:


12,192.168.1.41主机中使用docker,安装 pushgateway,具体命令如下:


docker run -d --name=pushgateway  -v "/etc/localtime:/etc/localtime" -p 9091:9091 prom/pushgateway

如果 targets没有添加,需要修改prometheus.yaml文件,添加job。

    - job_name: 'pushgateway'
      static_configs:
      - targets: ['192.168.40.181:9091']
      honor_labels: true

# honor_labels: true可以避免targets列表中的job_name是pushgateway的job,instance 和上报到pushgateway数据的job和instance冲突
# 更新






转载请标明出处【docker安装prometheus+grafana监控平台】。

《www.92cto.com》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论