V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ggvm
V2EX  ›  分享发现

监控系统神器- 普罗米修斯 prometheus 快速入门

  •  
  •   ggvm · 2022-09-07 00:25:17 +08:00 · 2406 次点击
    这是一个创建于 591 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近负责的项目比较细碎,需要监控一堆主机、服务可用性、业务指标等。在本 V2EX 论坛搜索监控系统, 虽然说有各种推荐,但各种评论指向 prometheus ,于是花了一些时间,研究一下 prometheus + grafana 结合,觉得方案非常不错,为了帮助大家节省时间,把一些部署经验总结如下。

    prometheus 是一个开源的监控系统解决,可以独立运行,并提供了可视化的界面。prometheus 可以应对常见的主机、数据库、网络监控,同时也可以监控自定义的指标。更厉害的事,prometheus 生态有大量的现成解决方案。

    做网络监控系统的同学,在自己发明轮子之前,最好先研究一下普罗米修斯。以免白白浪费时间造了一个早已存在的轮子。

    阅读本文基本无需写代码,只需要理解相关概念,所有工程人员均可搭建一个基本可用的监控系统。以后你在选择监控系统的时候,就没有必要找各种付费产品或者一些完成度很低的小作坊产品。事实上,主机差评君使用一个 1C1G 的机器,已经完全可以搭建一个可用的监控系统,很多开源产品非常复杂,搭建好一个系统 4C4G 的系统资源都相当吃紧。

    本文展示详细的使用步骤,帮助大家节省部署时间。

    prometheus 的安全是相对繁琐的,所以我们尽量使用 docker 去简化步骤。我们将主要安装两个服务,一个是 prometheus ,主要负责序列数据存储和提供数据源;二是 grafana ,主要负责 UI 展示和序列数据分析。

    新建 monitor 文件夹,并进入我们的步骤

    一 安装普罗米修斯 prometheus 1 拉取 docker image

    docker pull prom/prometheus #下载配置文件例子 wget https://raw.githubusercontent.com/prometheus/prometheus/main/documentation/examples/prometheus.yml 上面的配置文件很简单,就是 prometheus 在监控自己这个节点

    docker run --name myPrometheus -d -p 9090:9090 -v pwd/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus 运行上面的命令,把 prometheus 运行起来

    如果 打开 http://ip:9090 看到 web 界面,就是运行起来了。

    可以到这里,下载一个 node_exporter 这里可以上报节点主机的状态

    https://prometheus.io/download/

    下载好 node_exporter 之后,请你运行他,看到一堆输出

    ts=2022-09-06T13:25:33.142Z caller=node_exporter.go:115 level=info collector=uname ts=2022-09-06T13:25:33.142Z caller=node_exporter.go:115 level=info collector=vmstat ts=2022-09-06T13:25:33.142Z caller=node_exporter.go:115 level=info collector=xfs ts=2022-09-06T13:25:33.142Z caller=node_exporter.go:115 level=info collector=zfs ts=2022-09-06T13:25:33.142Z caller=node_exporter.go:199 level=info msg="Listening on" address=:9100 ts=2022-09-06T13:25:33.144Z caller=tls_config.go:195 level=info msg="TLS is disabled." http2=false 其中最重要的是看到 9100 。这里有 node_exporter 端口。

    访问 http://ip:9100//metrics

    看到输出了一堆节点信息,这就对了。

    修改 pro 的配置文件,增加一段节点配置信息。

    配置好了之后,重启 docker 实例

    docker logs myPrometheus

    在上面的框内,输入 up ,并点击 execute ,看到了我们刚才添加的节点,表示成功了。

    这个 prometheus 虽然提供了 UI 界面,但是 UI 展示并不是他的强项,一般使用 grafana 来进行数据系列的展示。

    二 使用 grafana 展示数据 安装 grafana

    docker run --name myGrafana
    -d -p 3000:3000
    grafana/grafana 如果没有问题后,访问 http://公网 IP:3000 。 使用 admin : admin 登陆,并修改密码。

    在主界面,configuration / add data source

    第一个就是普罗米修斯

    添加 prome 的 http://xxx:port 进去设置,并测试。

    grafana 的目的是展示我们的 node_exporter 上的数据。所以我们到 grafana 的主界面上,import 一个 id 为 8919 的模版。

    8919 是一个 grafana.com 上网友贡献的模版,直接可以使用。 需要找模版,也是到 grafana.com 去。

    导入后,一个吊炸天的 主机监控结果就出来了。

    后续设置告警规则,也可以在 grafana 上进行设置。

    到此,已经使用 prometheous 和 grafana 进行了一个非常简单又专业的监控系统设置。

    后面的内容,主要是给大家举多几个例子加深理解。

    预计将包括:

    1 mysql 等数据的监控

    2 自定义指标的监控

    敬请期待关注 https://zhuji188.com/571.html 后续更新

    6 条回复    2022-09-07 17:22:04 +08:00
    Jzdoxc
        1
    Jzdoxc  
       2022-09-07 01:19:24 +08:00 via iPhone
    插眼,明天给 unraid 试试
    ggvm
        2
    ggvm  
    OP
       2022-09-07 10:58:33 +08:00
    @Jzdoxc 值得关注
    julyclyde
        3
    julyclyde  
       2022-09-07 11:55:44 +08:00   ❤️ 1
    好像也没发现什么新东西啊
    咋就分享出来了呢?
    GoodRui
        4
    GoodRui  
       2022-09-07 13:42:44 +08:00 via iPhone
    插眼,感觉又得从零开始学习了…
    ckxZzz
        5
    ckxZzz  
       2022-09-07 14:56:37 +08:00
    可以讲讲自动发现那方面的规则
    jun4rui
        6
    jun4rui  
       2022-09-07 17:22:04 +08:00
    @Jzdoxc unraid 市场自带,直接安装吧。因为我刚装好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   981 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:38 · PVG 06:38 · LAX 15:38 · JFK 18:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.