一、Prometheus安装

     我这里准备了2台机器,一个是作为Prometheus+Grafana的安装,一个是作为被监控的目标

1、安装docker

    没有安装docker的可以先安装docker

2、准备工作目录

mkdir /home/prometheus

   创建一个目录,后续容器映射的相关文件都会放在此目录中

3、创建配置文件

     普罗米修斯的配置是通过yaml来配置的,我们在工作目录中创建配置文件。配置文件参考官网:https://prometheus.io/docs/prometheus/latest/getting_started/

vi /opt/prometheus/prometheus.yml

global:
  scrape_interval:    15s #15s抓取一次目标数据
  evaluation_interval: 15s

scrape_configs:
- job_name: prometheus #一个监控目标配置一个 job_name,这里在监控prometheus 自己
  scrape_interval: 5s #5s一次数据抓取
  static_configs:
  - targets: ['localhost:9090']	#监控目标主机,监控prometheus 自己
    labels:
      instance: prometheus #给监控目标制定标签名

注意:上面主要配置了一下监控的目标主机:9090是prometheus容器的端口,9100是grafana的端口。我这里打算把prometheus安装到一起,如果不是本机安装那么需要把localhost改成对应的机器IP

4、安装Prometheus容器

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

启动好容器之后,可以通过:192.168.88.178:9090 访问prometheus ,在菜单:status - Targets 中可以看到监控的目标,如下图所示(我添加了docker的监控 所以多显示了一箱)

注意:如果下载不下来可以加个加速镜像,/etc/docker/daemon.json修改一下镜像配置

二、Grafana 安装

Grafana是一款开源的数据可视化和监控平台。它主要用于时序数据的监控,能够将复杂的数据转化为易于理解的图表和仪表盘,并在一个界面中集中展示多个数据源的数据。

Grafana支持多种数据源,包括时序数据库、关系型数据库、日志文件等,用户可以方便地从不同数据源中查询和聚合数据。同时,它提供了丰富的图表和面板,可以将数据以直观的方式展示出来,帮助用户更好地理解数据。

Grafana还具备实时监控和告警功能,能够实时了解系统状态、性能等指标的变化情况,并在达到预设阈值时发送通知,提醒用户关注和处理。此外,Grafana支持插件式的开发模式,用户可以通过插件扩展功能,满足自己的特定需求。

总之,Grafana是一个功能强大的数据可视化工具,可以帮助用户实时监控和分析数据,提高数据分析效率和工作效率。

1、创建挂载数据目录
     

mkdir /home/grafana-storage


设置目录权限,因为这个文件需要写入所以要给一定的权限,这里为了方便测试给777,具体权限要根据具体实际情况而定。

chmod 777  /home/grafana-storage


2、启动Grafana容器

需要制定-v目录映射,Grafana的端口是3000

docker run -d \
-p 3000:3000 \
--name=grafana \
-v /home/grafana-storage:/var/lib/grafana \
grafana/grafana


安装好之后,通过 3000端口访问,账号密码都是admin ,第一个登录会要求修改密码 ,登录成功之后
如图展示

点击如下图所示

添加datasource

选择Prometheus,设置好名称和url即可,然后点击保存

三、监控Docker

1、在目标主机安装cadvisor

注意:我是在另外一台【ip :192.168.88.125】机器上安装的

docker run -d \
-v /:/rootfs:ro \
-v /var/run:/var/run:ro \
-v /sys:/sys:ro \
-v /var/lib/docker/:/var/lib/docker:ro \
-v /dev/disk/:/dev/disk:ro \
-p 9200:8080 \
--name=cadvisor \
google/cadvisor

 注意:安装的时候可能一直提醒,google/cadvisor在docker容器中启动失败Failed to create a Container Manager: mountpoint

可以尝试更换,不要使用google/cadivisor,已经确定,lagoudocker/cadvisor:v0.37.0 可用直接跑,甚至不需要 docker pull lagoudocker/cadvisor:v0.37.0,没有的话就会自己去pull,我自己试过,直接pull lagoudocker/cadvisor:v0.37.0 失败,可能是超时

docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --volume=/dev/disk/:/dev/disk:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  --privileged \
  --device=/dev/kmsg \
  lagoudocker/cadvisor:v0.37.0

通过访问9200端口即可看到cadvisor的界面,但是它的界面并不友好,且cadvisor只有数据采集能力,没有数据存储能力,我们还是需要把数据交给Prometheus去存储

2、Prometheus监控cadvisor

cadvisor通过目录映射的方式拿到容器的监控信息,端口是9200,然后Prometheus需要从cadvisor中拿到数据。接下来配置Prometheus,在Prometheus机器上修改配置文件,增加对cadvisor的监控

vi /opt/prometheus/prometheus.yml

global:
  scrape_interval:    15s
  evaluation_interval: 15s

scrape_configs:
- job_name: prometheus
  scrape_interval: 5s
  static_configs:
  - targets: ['localhost:9090']
    labels:
      instance: prometheus
- job_name: docker #增加对目标主机的监控
  scrape_interval: 5s
  static_configs:
  - targets: ['192.168.88.125:9200'] #目标主机的地址和端口
    labels:
      instance: docker

注意配置多个job-name必须保持不一样,否则启动失败

修改完配置后需要重启prometheus : docker restart prometheus

3、通过Grafana监控Docker主机

我们可以在 Dashboard 菜单中,自己去创建Panel来展示数据,但是自己去添加挺麻烦的,Grafana内置了一些监控模板。找到:import 菜单点击进去

这里我们可以输入模板的下载地址,或者模板的编号ID,比如:

  • Docker主机监控模板 :193
  • Lingux主机监控模板 :9276

在输入框中输入:193,然后点击load,界面效果如下:

然后点击import即可

查看路径:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐