Prometheus
[系统性能优化实践]JVM进阶实战之监控工具(Prometheus)
https://www.cnblogs.com/johnnyzen/p/17388354.html
ubuntu 22.04 配置 Prometheus 和 Grafana 服务器监控
https://blog.csdn.net/nvd11/article/details/128030197
Prometheus 是一个开源的监控系统,它可以在分布式环境中进行指标收集、聚合、查询和告警。
在 Prometheus 中,指标被称为 metrics。Prometheus 会定期从目标服务中抓取 metrics 数据,并将其存储在本地的时间序列数据库中。默认情况下,Prometheus 每隔 15 秒收集一次数据。
下面这个没有成功,具体原因不知道
Ubuntu20.04下部署linux资源监控平台(docker部署)grafana+prometheus+node_exporter(docker+离线包)
https://blog.csdn.net/deer_cui/article/details/134020816
注意:Prometheus服务默认需要3GB的内存代销。如果你的机器内存比较小, 你可以调整Prometheus服务使用更少的内存。
sudo lsb_release -r可以看到操作系统版本是20.04,sudo uname -r可以看到内核版本是5.5.19。
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
引言
zabbix是传统的监控系统,出现比云原生早,使用的是SQL关系型数据库;而Prometheus基于谷歌的borgemon使用go语言开发,使用TSDB数据库,所以支持云原生。zabbix最新发布的6.0版本,知道自己处于生死存亡时刻,也支持了Prometheus使用的TSDB数据库。
一、Prometheus 概述
1、什么是Prometheus
Prometheus 是一个开源的服务监控系统和时序数据库,其提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件Prometheus server会定期从静态配置的监控目标或者基于服务发现自动配置的自标中进行拉取数据,当新拉取到的数据大于配置的内存缓存区时,数据就会持久化到存储设备当中。
1.每个被监控的主机都可以通过专用的exporter 程序提供输出监控数据的接口,它会在目标处收集监控数据,并暴露出一个HTTP接口供Prometheus server查询,Prometheus通过基于HTTP的pull的方式来周期性的采集数据。
2.任何被监控的目标都需要事先纳入到监控系统中才能进行时序数据采集、存储、告警和展示,监控目标可以通过配置信息以静态形式指定,也可以让Prometheus通过服务发现的机制进行动态管理。
3.Prometheus 能够直接把API Server作为服务发现系统使用,进而动态发现和监控集群中的所有可被监控的对象。
2、Zabbix和Prometheus区别
1.和Zabbix类似,Prometheus也是一个近年比较火的开源监控框架,和Zabbix不同之处在于Prometheus相对更灵活点,模块间比较解耦,比如告警模块、代理模块等等都可以选择性配置。服务端和客户端都是开箱即用,不需要进行安装。zabbix则是一套安装把所有东西都弄好,很庞大也很繁杂。
2.zabbix的客户端 agent 可以比较方便的通过脚本来读取机器内数据库、日志等文件来做上报。而 Prometheus 的上报客户端则分为不同语言的SDK和不同用途的 exporter 两种,比如如果你要监控机器状态、mysql性能等,有大量已经成熟的 exporter 来直接开箱使用,通过http 通信来对服务端提供信息上报(server去pull信息);而如果你想要监控自己的业务状态,那么针对各种语言都有官方或其他人写好的 sdk供你使用,都比较方便,不需要先把数据存入数据库或日志再供zabbix-agent采集。
3.zabbix的客户端更多是只做上报的事情,push模式。而Prometheus则是客户端本地也会存储监控数据,服务端定时来拉取想要的数据。
4.界面来说zabbix比较陈旧,而prometheus比较新且非常简洁,简洁到只能算一个测试和配置平台。要想获得良好的监控体验,搭配Grafana还是二者的必走之路。
3、Prometheus的特点
多维数据模型:由度量名称和键值对标识的时间序列数据
时序数据,是在一段时间内通过重复测量(measurement)而获得的观测值的集合;将这些观测值绘制于图形之上,它会有一个数据轴和一个时间轴;
服务器指标数据、应用程序性能监控数据、网络数据等也都是时序数据;
1.内置时间序列(pime series)数据库:Prometheus;外置的远端存储通常会用:InfluxDB、openTsDB等
2.promQL一种灵活的查询语言,可以利用多维数据完成复杂查询
3.基于HTTP的pull(拉取)方式采集时间序列数据
4.同时支持PushGateway组件收集数据
5.通过服务发现或者静态配置,来发现目标服务对象
6.支持作为数据源接入Grafana
二、运维监控平台设计思路
① 数据收集模块
② 数据提取模块(prometheus-TSDB,查询语言是promQL)
③ 监控告警模块(布尔值表达式判断是否需要告警,不成立是健康状态)
可以细化为6层
第六层:用户展示管理层 同一用户管理、集中监控、集中维护
第五层:告警事件生成层 实时记录告警事件、形成分析图表(趋势分析、可视化)
第四层:告警规则配置层 告警规则设置、告警伐值设置(定义布尔值表达式,筛选异常状态)
第三层:数据提取层 定时采集数据到监控模块
第二层:数据展示层 数据生成曲线图展示(对时序数据的动态展示)
第一层:数据收集层 多渠道监控数据(网络,硬件,应用,数据,物理环境)
三、Prometheus监控体系
1、系统层监控(需要监控的数据)
1.CPU、Load、Memory、swap、disk、I/O、process等
2.网络监控:网络设备、工作负载、网络延迟、丢包率等
2、中间件及基础设施类监控
1.消息中间件:kafka、RocketMQ、等消息代理(redis 中间件)
2.WEB服务容器:tomcat、weblogic、apache、php、spring系列
3.数据库/缓存数据库:Mysql、Postgresql、MongoDB、es、redis
sudo apt update
sudo apt upgrade
sudo apt install curl
curl https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo apt-get update
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead
sudo apt update
sudo apt-get install prometheus
Setting up prometheus (2.31.2+ds1-1ubuntu1.22.04.2) …
prometheus-node-exporter_1.3.1-1ubuntu0.22.04.2_amd64.deb
13-prometheus_2.31.2+ds1-1ubuntu1.22.04.2_amd64.deb
The following additional packages will be installed:
fonts-glyphicons-halflings javascript-common libio-pty-perl libipc-run-perl libjs-bootstrap libjs-bootstrap4 libjs-d3 libjs-eonasdan-bootstrap-datetimepicker
libjs-jquery libjs-jquery-hotkeys libjs-moment libjs-moment-timezone libjs-mustache libjs-popper.js libjs-rickshaw libjs-sizzle libtime-duration-perl moreutils
node-jquery prometheus-node-exporter prometheus-node-exporter-collectors smartmontools
Suggested packages:
apache2 | lighttpd | httpd gsmartcontrol smart-notifier mailx | mailutils
The following NEW packages will be installed:
fonts-glyphicons-halflings javascript-common libio-pty-perl libipc-run-perl libjs-bootstrap libjs-bootstrap4 libjs-d3 libjs-eonasdan-bootstrap-datetimepicker
libjs-jquery libjs-jquery-hotkeys libjs-moment libjs-moment-timezone libjs-mustache libjs-popper.js libjs-rickshaw libjs-sizzle libtime-duration-perl moreutils
node-jquery prometheus prometheus-node-exporter prometheus-node-exporter-collectors smartmontools
sudo apt-get install prometheus
The following additional packages will be installed:
fonts-glyphicons-halflings javascript-common libc-ares2 libio-pty-perl libipc-run-perl libjs-bootstrap libjs-bootstrap4 libjs-d3
libjs-eonasdan-bootstrap-datetimepicker libjs-jquery libjs-jquery-hotkeys libjs-moment libjs-moment-timezone libjs-mustache libjs-popper.js libjs-rickshaw
libnode64 libtime-duration-perl moreutils node-jquery nodejs nodejs-doc prometheus-node-exporter prometheus-node-exporter-collectors smartmontools
Suggested packages:
apache2 | lighttpd | httpd npm gsmartcontrol smart-notifier mailx | mailutils
The following NEW packages will be installed:
fonts-glyphicons-halflings javascript-common libc-ares2 libio-pty-perl libipc-run-perl libjs-bootstrap libjs-bootstrap4 libjs-d3
libjs-eonasdan-bootstrap-datetimepicker libjs-jquery libjs-jquery-hotkeys libjs-moment libjs-moment-timezone libjs-mustache libjs-popper.js libjs-rickshaw
libnode64 libtime-duration-perl moreutils node-jquery nodejs nodejs-doc prometheus prometheus-node-exporter prometheus-node-exporter-collectors smartmontools
0 upgraded, 26 newly installed, 0 to remove and 120 not upgraded.
/23-prometheus-node-exporter_0.18.1+ds-2ubuntu0.1_amd64.deb …
/13-prometheus_2.15.2+ds-2_amd64.deb …
grafana_10.2.2_amd64.deb
sudo apt install grafana -y
sudo apt-get install grafana-enterprise 有啥区别 ?
Grafana Version Package Repository
Grafana Enterprise grafana-enterprise https://apt.grafana.com stable main
Grafana Enterprise (Beta) grafana-enterprise https://apt.grafana.com beta main
Grafana OSS grafana https://apt.grafana.com stable main
Grafana OSS (Beta) grafana https://apt.grafana.com beta main
Grafana Enterprise is the recommended and default edition. It is available for free and includes all the features of the OSS edition. You can also upgrade to the full Enterprise feature set, which has support for Enterprise plugins.
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/
https://codeleading.com/article/42686476170/
https://www.mryunwei.com/243490.html
Grafana是一款能够提供查询、告警和可视化指标、日志、链路跟踪的软件,并且提供了TSDB时序数据库用于存储数据。
一共有3个版本,Grafana OSS(开源版),Grafana Enterprise(企业版),Grafana Cloud(云版)。
开源版为免费版本,升级企业版要重新安装;企业版包含开源版内容,并且可以升级到完整的企业版功能,是官方推荐安装的版本;云版提供免费的10K系列指标、50G大小日志、50G大小链路追踪功能。