首页 > 其他分享 >麒麟系统(arm64/aarch64)docker部署prometheus系统

麒麟系统(arm64/aarch64)docker部署prometheus系统

时间:2024-10-31 20:20:11浏览次数:1  
标签:bin compose aarch64 scrape prometheus arm64 docker yml

备注:1.不推荐yum或者源码安装,安装包跟系统架构不兼容,推荐docker方式部署,这样就可以忽略系统不兼容的问题。

            2.准备工作:开通端口映射,即公网的ip加grafana的默认端口9090到内网部署grafana服务的服务器的9090端口的映射,就可以通过外网访问。

一、目标:收集所有节点的负载情况:cpu、磁盘和内存使用率。

二、架构:

        机器:172.23.73.10-15,10作为监控端口,10-15都作为被监控端机器。

        部署服务器:

                172.23.73.10:prometheus、grafana、node-exporter。

                 172.23.73.11-15:node-exporter

三、6台机器离线安装docker(可以拿以下教程作为参考,具体根据实际情况去做,不用安装docker-compoes):

1、准备服务器账号(本次全程使用root账号)

(因为是第一次安装这玩意儿,尽量使用root账号,避免操作的时候碰到一些权限问题)

2、查看操作系统版本

[root@ArmServer docker]# uname -a

Linux ArmServer.XHKJ 4.19.90-24.4.v2101.ky10.aarch64 #1 SMP Mon May 24 14:45:37 CST 2021 aarch64 aarch64 aarch64 GNU/Linux

[root@ArmServer docker]# cat /proc/version

Linux version 4.19.90-24.4.v2101.ky10.aarch64 ([email protected]) (gcc version 7.3.0 (GCC)) #1 SMP Mon May 24 14:45:37 CST 2021

3、查看操作系统架构

[root@ArmServer docker]# uname -m

aarch64

二、安装docker

1、下载docker离线包

下载地址:https://download.docker.com/linux/static/stable/

选择系统架构对应的文件目录:aarch64

(我目前使用的docker版本是:docker-20.10.7.tgz)

 

   

2、下载 docker-compose离线包

2.1、下载地址:https://github.com/docker/compose/releases

选择对应系统架构的离线安装包

(我目前使用的版本是:v2.17.2)

2.2、 Github的链接有时候可能访问不了,所以我自己建了个链接,有需要的自行下载(免费)https://download.csdn.net/download/qq_34725844/88633719

3、准备 docker.service系统配置文件

(复制以下内容保存为 docker.service 文件)

docker.service

 

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target firewalld.service

Wants=network-online.target

[Service]

Type=notify

# the default is not to use systemd for cgroups because the delegate issues still

# exists and systemd currently does not support the cgroup feature set required

# for containers run by docker

ExecStart=/usr/bin/dockerd

ExecReload=/bin/kill -s HUP $MAINPID

# Having non-zero Limit*s causes performance problems due to accounting overhead

# in the kernel. We recommend using cgroups to do container-local accounting.

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

# Uncomment TasksMax if your systemd version supports it.

# Only systemd 226 and above support this version.

#TasksMax=infinity

TimeoutStartSec=0

# set delegate yes so that systemd does not reset the cgroups of docker containers

Delegate=yes

# kill only the docker process, not all processes in the cgroup

KillMode=process

# restart the docker process if it exits prematurely

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target

4、安装 docker 和 docker compose 离线包

4.1、安装docker

# 解压 docker 到当前目录

tar -xvf docker-20.10.7.tgz

# 将 docker 文件移动到 /usr/bin 目录下

cp -p docker/* /usr/bin

# 将 docker-compose 文件复制到 /usr/local/bin/ 目录下,并重命名为 docker-compose

cp docker-compose-linux-aarch64 /usr/local/bin/docker-compose

# 设置 docker-compose 文件权限

chmod +x /usr/local/bin/docker-compose

# 将 docker.service 移到 /etc/systemd/system/ 目录

cp docker.service /etc/systemd/system/

# 设置 docker.service 文件权限

chmod +x /etc/systemd/system/docker.service

# 重新加载配置文件

systemctl daemon-reload

# 启动docker

systemctl start docker

# 设置 docker 开机自启

systemctl enable docker.service

4.2、验证安装是否成功

4.2.1查看 docker 版本

[root@ArmServer bin]# docker -v

Docker version 20.10.7, build f0df350

4.2.2查看docker-compose 版本

[root@ArmServer bin]# docker-compose -v

Docker Compose version v2.17.2

四、10机器配置镜像加速器并拉取镜像部署服务:
      1.修改/etc/docker/daemon.conf

{

"insecure-registries":["https://cmaharbor.zlx.com"],
"log-driver": "json-file",
"log-opts": {"max-size":"100m", "max-file":"1"},
"registry-mirrors": ["https://docker-proxy.741001.xyz","https://registry.docker-cn.com"]
}

       2.使配置生效

sudo systemctl daemon-reload
sudo systemctl restart docker

        3.docker部署三个服务(10部署三个,其他的只用部署node-exporter)

docker pull prom/prometheus

 

2.启动

docker run -d -p 9091:9090 \
> -v /data/prometheus:/etc/prometheus \
> -v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
> --name prometheus prom/prometheus


-d参数表示我们要在后台运行容器,
-p 9091:9090参数表示我们将主机的9091端口映射到容器的9090端口,因为我这里9090提示端口冲突所以我改成9091,

-v /data/prometheus:/etc/prometheus参数表示挂载目录,启动命令运行前创建好/data/prometheus目录,

-v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml参数表示挂载配置文件,方便日后修改prometheus.yml文件,

-name prometheus参数表示我们给容器取一个名字为prometheus。

3.访问普罗米修斯网页界面
最后,我们可以通过浏览器访问普罗米修斯(Prometheus)的Web界面。在浏览器中输入"http://localhost:9090",你将看到普罗米修斯的控制台界面。
通过以上步骤,你已经成功地使用Docker(Docker)安装并启动了Prometheus。现在你可以开始配置Prometheus(Prometheus)以监控你的应用程序。

4.进入Prometheus容器,执行命令:

docker exec -it b2df256f2e10 /bin/sh


b2df256f2e10是我当前的容器id,你换成你自己的即可

5.查看宿主机上的/data/prometheus下的prometheus.yml文件

如果没有,自己创建一个prometheus.yml

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"

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ["localhost:9090"]
二、node-expoter安装

1.node-expoter的镜像安装可以参考Docker部署Prometheus+Grafana+node-exporter_docker安装普罗米修斯-CSDN博客

2.拉取镜像:

docker pull prom/node-exporter
拉取失败

 

可能是原来配置的加速器都不可用了,所以新增加速器

"https://docker.m.daocloud.io"

 

新增加速器后需要重启daocker

sudo systemctl restart docker

再次重新拉取镜像,拉取成功了。

 

3.启动

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

-p 9102:9100参数表示宿主机端口9102对应exporter端口9100,因为9100在我本地冲突,随意我这里修改端口为9102,如果你不冲突还是可以用-p 9100:9100.

 

前端访问:http://ip:9102/

三、prometheus配置node-expoter

1.修改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"

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ["localhost:9090"]
- job_name: "node-exporter"

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ["你自己的ip:9102"]
也就是在原prometheus.yml文件上添加

- job_name: "node-exporter"

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ["你自己的ip:9102"]

2.更新prometheus上的prometheus.yml文件

执行命令:

sudo docker exec -it prometheus /bin/sh -c 'kill -HUP $(pidof prometheus)'
这个命令直接更新prometheus.yml文件,不用重启prometheus。
五、grafana配置prometheus数据源,导入模板,查看效果。

                                                               

标签:bin,compose,aarch64,scrape,prometheus,arm64,docker,yml
From: https://www.cnblogs.com/xiaozgang/p/18518813

相关文章

  • Prometheus03 Prometheus服务发现, 各种exporter, 容器化监控, Federation联邦, Victo
    6服务发现6.1服务发现原理6.2文件服务发现#准备主机节点列表文件,可以支持yaml格式和json格式#注意:此文件不建议就地编写生成,可能出现加载一部分的情况cattargets/prometheus*.yaml-targets:-master1:9100labels:app:prometheus#修改prometheus配置......
  • Prometheus02 Prometheus标签管理和告警, 定制Exporter
    3.4定制Exporter3.4.1定制Exporter说明开发应用服务的时候,就需要根据metric的数据格式,定制标准的/metric接口。#各种语言帮助手册:https://github.com/prometheus/client_golanghttps://github.com/prometheus/client_pythonhttps://github.com/prometheus/client_ja......
  • Prometheus01 Prometheus基础, 部署与配置, Node Exporter, Pushgateway, PromQL 运算
    云原生监控系统Prometheus1Prometheus介绍1.2监控内容和方法1.2.2监控方法 Google的四个黄金指标1.延迟(Latency)服务请求所需要的时长,例如HTTP请求平均延迟2.流量(Traffic),也称为吞吐量3.错误(Errors)4.饱和度(Saturation)资源的整体利用率,包括CPU(容量、配......
  • PromQL (Prometheus Query Language)进阶教程
    PrometheusQueryLanguage典型应用场景:在仪表板中可视化Prometheus数据、使用Prometheus的警报管理器构建警报规则等。了解如何构建PromQL是使用Prometheus的一项基本技能,通过上篇文章学习了基础知识,本文带你更深入学习并实践。Prometheusmetrics类型我们已经知道,Promet......
  • prometheus: 安装alert manager
    一,下载alertmanager1,官网下载地址https://prometheus.io/download/2,原理图:二,下载和安装 1,下载安装包:选择linux+amd64的版本下载:#wgethttps://github.com/prometheus/alertmanager/releases/download/v0.27.0/alertmanager-0.27.0.linux-amd64.tar.gz2,安......
  • Prometheus监控url存活
    Prometheus监控url存活及Alertmanager告警......
  • k8s 1.28.2 集群部署 Thanos 对接 MinIO 实现 Prometheus 数据长期存储
    目录什么是ThanosThanos的主要功能Thanos的架构组件Thanos部署架构SidecarReceive架构选择开始部署部署架构创建namespacenode-exporter部署kube-state-metrics部署Prometheus+Thanos-Sidecar部署固定节点创建label生成secretMinIO配置etcd证书启动Prometheus+Th......
  • prometheus: 给grafana增加dashboard(仪表板/数据面板)
    一,查看可用的dashboard(数据面板)手动添加dashboard,需要一个个手动操作,但事实上我们需要的数据多数都已经规范化,所以grafana上有现成的dashboard可以导入,数据面板的查看地址:https://grafana.com/grafana/dashboards/如图:二,安装一个dashboard在左侧的datasource中,选......
  • prometheus: 安装grafana11.3
    一,grafana的用途1,grafana是什么?grafana是用go语言编写的开源应用,它的主要用途是大规模指标数据的可视化展现它是现在网络架构/应用分析中最流行的时序数据展示工具2,官网:https://grafana.com/二,下载grafana1,下载地址:https://grafana.com/grafana/download?pg=get&p......
  • centos9(linux): 在prometheus服务端添加被监控节点
    一,从服务端所在机器测试被监控节点是否9100端口打开1,用telnet$telnet172.16.13.191002,用nc$nc-nvv172.16.13.19100 二,在服务端prometheus中添加一个监控节点编辑配置文件:viprometheus.yml内容:在static_configs: 下增加一行:-targets:["172.16.13.......