Prometheus+Grafana+Alertmanager
Prometheus+Grafana+Alertmanager
环境准备
-
拉取镜像包; 并解压
curl -O http://172.21.48.213/Monitor.tar.gz tar zxvf Monitor.tar.gz -
上传基础镜像
docker load -i CentOS_7.9.2009.tar
部署 prometheus
-
创建工作目录
mkdir prometheus; cd prometheus/ -
将软件包, 和配置文件移动到本目录
cp ../Monitor/prometheus-2.13.0.linux-amd64.tar.gz ./ cp ../Monitor/prometheus-2.13.0.linux-amd64/prometheus.yml ./ cp ../Monitor/alert-rules.yml ./ -
修改配置文件
vim prometheus.yml # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: - 127.0.0.1:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: - "alert-rules.yml" # - "first_rules.yml" # - "second_rules.yml" scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['127.0.0.1:9090'] - job_name: 'node' static_configs: - targets: ['127.0.0.1:91000'] -
编写 Dockerfile
cat Dockerfile FROM centos:centos7.9.2009 MAINTAINER Chinaskill EXPOSE 9090 ADD prometheus-2.13.0.linux-amd64.tar.gz /root/ ADD alert-rules.yml prometheus.yml prometheus-2.13.0.linux-amd64/ WORKDIR /root/prometheus-2.13.0.linux-amd64/ CMD ./prometheus --config.file="prometheus.yml" -
构建
docker build . -t chinaskill-prometheus:v1.1 # Successfully built 69d859984067 # Successfully tagged chinaskill-prometheus:v1.1 -
检测
docker run -d 69d859984067 # 9f8434a00474d2b8fd9a7eca3cc92c92e48b6be6ef362ca789368f58b6cf03ec docker top 9f8434a00474d2b8fd9a7eca3cc92c92e48b6be6ef362ca789368f58b6cf03ec # UID PID PPID C STIME TTY TIME # CMD # root 68020 67999 3 20:37 ? 00:00:00 # ./prometheus --config.file=prometheus.yml
部署node-exporte
-
创建工作目录
mkdir node_exporter; cd node_exporter -
将软件包移动到工作目录
cp ../Monitor/node_exporter-0.18.1.linux-amd64.tar.gz ./ -
编写Dockerfile
cat Dockerfile FROM centos:centos7.9.2009 MAINTAINER Chinaskill EXPOSE 9100 ADD node_exporter-0.18.1.linux-amd64.tar.gz /root/ WORKDIR /root/node_exporter-0.18.1.linux-amd64/ CMD ./node_exporter -
构建
docker build . -t chinaskill-node_exporter:v1.1 # Successfully built aedf06084adf # Successfully tagged chinaskill-node_exporter:v1.1 -
检测
docker run -d aedf06084adf # f6e5f6744fbd06a9ba59cefe47da925274aa6653b2d9e7ab241c430c3957019b docker top f6e5f6744fbd06a9ba59cefe47da925274aa6653b2d9e7ab241c430c3957019b # UID PID PPID C STIME TTY TIME # CMD # root 73648 73627 0 20:43 ? 00:00:00 # ./node_exporter
部署 alterManager
-
创建工作目录
mkdir alertmanager; cd alertmanager -
将软件包移动到此目录下
cp ../Monitor/alertmanager-0.19.0.linux-amd64.tar.gz ./ -
将alertmanager 目录下的文件移动到此目录下
cp ../Monitor/alertmanager/alertmanager.yml ./ -
修改配置
cat 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: receiver: 'default' group_wait: 10s group_interval: 1m repeat_interval: 1h group_by: ['alertname'] receivers: - name: 'default' webhook_configs: - url: 'http://127.0.0.1:5001/' inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' equal: ['alertname', 'instance'] -
编写Dockerfile
cat Dockerfile FROM centos:centos7.9.2009 MAINTAINER Chinaskill EXPOSE 9093 ADD alertmanager-0.19.0.linux-amd64.tar.gz /root/ ADD alertmanager.yml /rootalertmanager-0.19.0.linux-amd64/ WORKDIR /root/alertmanager-0.19.0.linux-amd64/ CMD ./alertmanager --config.file="alertmanager.yml" -
构建
docker build . -t chinaskill-alertmanager:v1.1 # Successfully built 3f3040a0793d # Successfully tagged chinaskill-alertmanager:v1.1 -
检测
docker run -d 3f3040a0793d # b6935ba4fdb76f3eebba3827f498fff6716036b5307c2610df66da99d315e8bd docker top b6935ba4fdb76f3eebba3827f498fff6716036b5307c2610df66da99d315e8bd # UID PID PPID C STIME TTY TIME # CMD # root 85336 85318 4 20:55 ? 00:00:00 # ./alertmanager --config.file=alertmanager.yml
部署grafana
-
创建工作目录
mkdir grafana; cd grafana -
拉取软件包
cp ../Monitor/grafana-6.4.1.linux-amd64.tar.gz ./ -
编写Dockerfile
cat Dockerfile FROM centos:centos7.9.2009 MAINTAINER Chinaskill EXPOSE 3000 ADD grafana-6.4.1.linux-amd64.tar.gz /root/ WORKDIR /root/grafana-6.4.1/bin/ CMD ./grafana-server -
构建
docker build . -t chinaskill-grafana:v1.1 # Successfully built efddca496757 # Successfully tagged chinaskill-grafana:v1.1 -
检测
docker run -d efddca496757 # 51227af6ab43d38ccd547fd7a401215ed211dc508366cbcc80138607dc271d46 docker top 51227af6ab43d38ccd547fd7a401215ed211dc508366cbcc80138607dc271d46 # UID PID PPID C STIME TTY TIME # CMD # root 93359 93340 6 21:03 ? 00:00:0 # ./grafana-server
基于k8s 部署服务
-
创建工作目录
mkdir chinaskill; cd chinaskill/ -
编写yaml
cat node.yaml apiVersion: v1 kind: Pod metadata: labels: run: node name: node spec: nodeSelector: kubernetes.io/hostname: master containers: - image: chinaskill-node_exporter:v1.1 name: node - image: chinaskill-alertmanager:v1.1 name: alertmanager - image: chinaskill-prometheus:v1.1 name: prometheus - image: chinaskill-grafana:v1.1 name: grafana --- apiVersion: v1 kind: Service metadata: name: node spec: ports: - name: "3000" nodePort: 30020 port: 3000 protocol: TCP targetPort: 3000 - name: "31090" nodePort: 31090 port: 9090 protocol: TCP targetPort: 9090 - name: "32100" nodePort: 32100 port: 9100 protocol: TCP targetPort: 9100 selector: run: node type: NodePort -
构建
kubectl apply -f node.yaml # pod/node created -
检测
kubectl get pod # NAME READY STATUS RESTARTS AGE # node 4/4 Running 0 3m17s kubectl get svc node #NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE #node NodePort 10.97.22.136 <none> 3000:30020/TCP,9090:31090/TCP,9100:32100/TCP 3m37s


Prometheus+Grafana+Alertmanager 监控系统
浙公网安备 33010602011771号