容器化部署监控系统

环境准备

[root@k8s-master-node1 ~]# tar -zxf Monitor.tar.gz
[root@k8s-master-node1 Monitor]# docker load -i CentOS_7.9.2009.tar

1、容器化部署node-exporter

在master节点上编写/root/Monitor/Dockerfile- exporter文件构建monitor-exporter:v1.0镜像,具体要求如下:(需要用到的软件包:Monitor.tar.gz)
(1)基础镜像:centos:centos7.9.2009;
(2)使用二进制包node_exporter-0.18.1.linux-amd64.tar.gz安装node-exporter服务;
(3)声明端口:9100;
(4)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

vi Dockerfile-exporter

FROM centos:centos7.9.2009
MAINTAINER Chinaskills
RUN rm -rf /etc/yum.repos.d/*
ADD node_exporter-0.18.1.linux-amd64.tar.gz /root/
EXPOSE 9100
CMD ["./root/node_exporter-0.18.1.linux-amd64/node_exporter"]

-----------------------------
docker build -t monitor-exporter:v1.0 -f Dockerfile-exporter .

2、容器化部署Alertmanager

在master节点上编写/root/Monitor/Dockerfile-alert文件构建monitor-alert:v1.0镜像,具体要求如下:(需要用到的软件包:Monitor.tar.gz)
(1)基础镜像:centos:centos7.9.2009;
(2)使用提供的二进制包alertmanager-0.19.0.linux-amd64.tar.gz安装Alertmanager服务;
(3)声明端口:9093、9094;
(4)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

[root@k8s-master-node1 Monitor]# cat alertmanager/alertmanager.yml 
global:
  resolve_timeout: 5m
  smtp_smarthost: '114463512@.163.com:465'
  smtp_from: 'alert@163.com'
  smtp_auth_username: '114463512@163.com'
  smtp_auth_password: 'flwlf[a;'     
  smtp_require_tls: false
route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 1h
  receiver: 'web.hook'
receivers:
- name: 'web.hook'
  webhook_configs:
  - url: 'http://127.0.0.1:5001/'

inhibit_rules:
- source_match:
    severity: 'critical'
  target_match:
    severity: 'warning'
  equal: ['alertname', 'instance']


vi Dockerfile-alert

FROM centos:centos7.9.2009
MAINTAINER Chinaskills
RUN rm -rf /etc/yum.repos.d/*
ADD alertmanager-0.19.0.linux-amd64.tar.gz /root/
RUN mkdir -p /data/alertmanager
COPY alertmanager/alertmanager.yml /data/alertmanager/
EXPOSE 9093 9094
CMD ["/root/alertmanager-0.19.0.linux-amd64/alertmanager","--config.file","/data/alertmanager/alertmanager.yml"]

----------------------
docker build -t monitor-alert:v1.0 -f Dockerfile-alert .

3、容器化部署Grafana

在master节点上编写/root/Monitor/Dockerfile-grafana文件构建monitor-grafana:v1.0镜像,具体要求如下:(需要用到的软件包:Monitor.tar.gz)
(1)基础镜像:centos:centos7.9.2009;
(2)使用提供的二进制包grafana-6.4.1.linux-amd64.tar.gz安装grafana服务;
(3)声明端口:3000;
(4)设置nacos服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

vi Dockerfile-grafana

FROM centos:centos7.9.2009
MAINTAINER Chinaskills
RUN rm -rf /etc/yum.repos.d/*
ADD grafana-6.4.1.linux-amd64.tar.gz /root/
EXPOSE 3000
ENTRYPOINT ["./root/grafana-6.4.1/bin/grafana-server","-homepath","/root/grafana-6.4.1/"]

---------------------
docker build -t monitor-grafana:v1.0 -f Dockerfile-grafana .

4、容器化部署prometheus

在master节点上编写/root/Monitor/Dockerfile-prometheus文件构建monitor-prometheus:v1.0镜像,具体要求如下:(需要用到的软件包:Monitor.tar.gz)
(1)基础镜像:centos:centos7.9.2009;
(2)使用提供的二进制包prometheus-2.13.0.linux-amd64.tar.gz安装promethues服务;
(3)编写prometheus.yml文件,创建3个任务模板:prometheus、node和alertmanager,并将该文件拷贝到/data/prometheus/目录下;
(4)声明端口:9090;
(5)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

[root@k8s-master-node1 Monitor]# tar -zxf prometheus-2.13.0.linux-amd64.tar.gz
[root@k8s-master-node1 Monitor]# cp prometheus-2.13.0.linux-amd64/prometheus.yml .
>>cat prometheus.yml 
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

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

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

  - job_name: 'node'
    static_configs:
    - targets: ['node:9100']
  - job_name: 'alertmanager'
    static_configs:
    - targets: ['alertmanager:9093']


vi Dockerfile-prometheus

FROM centos:centos7.9.2009
MAINTAINER Chinaskills
RUN rm -rf /etc/yum.repos.d/*
ADD prometheus-2.13.0.linux-amd64.tar.gz /root/
RUN mkdir -p /data/prometheus/
COPY prometheus.yml /data/prometheus/
EXPOSE 9090
ENTRYPOINT ["./root/prometheus-2.13.0.linux-amd64/prometheus","--config.file","/data/prometheus/prometheus.yml"]

--------------
docker build -t monitor-prometheus:v1.0 -f Dockerfile-prometheus .
--------------

5、docker-compose编排

在master节点上编写/root/Monitor/docker-compose.yaml文件,具体要求如下:
(1)容器1名称:monitor-node;镜像:monitor-exporter:v1.0;端口映射:9100:9100;
(2)容器2名称:monitor- alertmanager;镜像:monitor-alert:v1.0;端口映射:9093:9093、9094:9094;
(3)容器3名称:monitor-grafana;镜像:monitor-grafana:v1.0;端口映射:3000:3000;
(4)容器4名称:monitor-prometheus;镜像:monitor-prometheus:v1.0;端口映射:9090:9090。
完成后编排部署监控系统,将Prometheus设置为Grafana的数据源,并命名为Prometheus。

[root@k8s-master-node1 Monitor]# vi docker-compose.yaml

version: '3'
services:
  node:
    container_name: monitor-node
    image: monitor-exporter:v1.0
    restart: always
    hostname: node
    ports:
      - 9100:9100

  alertmanager:
    container_name: monitor-alertmanager
    image: monitor-alert:v1.0
    depends_on:
      - node
    restart: always
    hostname: alertmanager
    ports:
      - 9093:9093
      - 9094:9094

  grafana:
    container_name: monitor-grafana
    image: monitor-grafana:v1.0
    restart: always
    depends_on:
      - node
      - alertmanager
    hostname: grafana
    ports:
      - 3000:3000

  prometheus:
    container_name: monitor-prometheus
    image: monitor-prometheus:v1.0
    restart: always
    depends_on:
      - node
      - alertmanager
      - grafana
    hostname: prometheus
    ports:
      - 9090:9090


[root@k8s-master-node1 Monitor]# docker-compose up -d

到这里并没有结束,还需要配置Prometheus作为Grafana的数据源。
可以通过访问(http://IP:9090/)如下内容检查数据是否被Prometheus监测成功。
在这里插入图片描述
登录Grafana,(http://IP:3000/)默认账户密码都为admin,第一次登录需要改密码,当然也可以选择跳过修改密码。
在这里插入图片描述

通过首页来添加数据源。
在这里插入图片描述在这里插入图片描述
可以为这个数据源去创建一个dashboard做测试,使用的是他默认的一个dashboard模板,主要是用来做测试嘛
在这里插入图片描述
在这里插入图片描述

本文由博客一文多发平台 OpenWrite 发布!

生雨声
1 声望0 粉丝