目录
prometheus 是一个开源的系统监控和报警系统,本身是机遇 Go 开发的一套开源的系统监控报警框架和时序列数据库(TSDB)
基本原理:通过 HTTP 协议周期性的抓取被监控组件的状态,任意组件只要提供对应的 HTTP 接口就可以接入监控,不需要任何的 SDK 或者其他集成过程. 这样非常适合做虚拟化环境监控,例如 VM、Docker、Hubernetes 等,被监控组件信息的 HTTP 接口叫做 exporter.
总的来讲:
-> Node_Exporter 负责从被监控的服务器上采集数据.
-> Prometheus 主要任务是对 Node_Exporter 采集到的数据进行收集、存储和对外提供数据查询支持.
-> Grafana 再将 Prometheus 中整理的数据进行展示.
a)安装命令:
brew install prometheus
通过 which prometheus 可以找到安装位置.
这里实际上只是一个快捷方式,真正安装目录在
b)启动 prometheus
进入到 /opt/homebrew/Cellar/prometheus/2.53.0/bin 目录下,输入如下命令后台启动:
nohup ./prometheus --config.file=/opt/homebrew/etc/prometheus.yml &
通过 cat nohup 类似如下说明启动成功:
c)进入界面
在浏览器中输入: localhost:9090
如下界面
a)安装命令
brew install grafana
b)安装目录
bin 目录:/opt/homebrew/Cellar/grafana/11.1.0/bin
c)启动并配置
输入命令生成对应的配置文件
grafana-server --config=/opt/homebrew/etc/grafana/grafana.ini --homepath /opt/homebrew/share/grafana --packaging=brew cfg:default.paths.logs=/opt/homebrew/var/log/grafana cfg:default.paths.data=/opt/homebrew/var/lib/grafana cfg:default.paths.plugins=/opt/homebrew/var/lib/grafana/plugins
输入地址:localhost:3000
页面如下:
下图是登陆后的页面,默认用户名和密码都是 admin,第一次登陆后必须更改密码.
a)第一种安装方式
https://prometheus.io/download/https://prometheus.io/download/
b)第二种安装方式:
使用 mac 也可以通过 brew 安装,如下
brew install node_exporter
c)启动:
brew services start node_exporter
或者直接
node_exporter
c)访问 localhost:9100
显示如下内容
d)配置 prometheus.yml
vim /opt/homebrew/etc/prometheus.yml
- scrape_configs:
- - job_name: "prometheus"
- static_configs:
- - targets: ["localhost:9090"]
-
- - job_name: "node_exporter"
- static_configs:
- - targets: ["localhost:9100"]
e)重载配置
查看 prometheus 端口号 ps aux | grep prometheus
kill 删除 prometheus 进程,然后重启.
prometheus --config.file=/opt/homebrew/etc/prometheus.yml
f)浏览器中查看:
a)命令如下
docker pull prom/prometheus
b)创建挂载目录及配置文件
mkdir -p ~/env/prometheus
在 ~/env/prometheus 目录下创建配置文件 prometheus.yml
- global:
- scrape_interval: 15s # 指定了 Prometheus 从每个被监控的目标 (target) 拉取数据的频率。
- evaluation_interval: 15s # 指定了 Prometheus 评估其定义的规则 (rules) 的频率。这些规则包括记录规则 (recording rules) 和警报规则 (alerting rules)。
-
- scrape_configs:
-
- - job_name: prometheus
- static_configs:
- - targets: ['env-base:9090']
-
- - job_name: grafana
- static_configs:
- - targets: ['env-base:3000']
-
- - job_name: node_exporter
- static_configs:
- - targets: ['env-base:9100']
c)运行镜像
- docker run -d \
- --name=prometheus \
- --restart=always \
- -p 9090:9090 \
- -v ~/env/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
- prom/prometheus
d)浏览器中输入 enb-base:9000 ,如下说明启动成功:
a)命令如下
使用 docker run 命令之前,还需要给 ~/env/grafana 文件赋予 写操作 的权利,否则会启动失败
chmod a+w ~/env/grafana
- docker run -d \
- --name=grafana \
- --restart=always \
- -p 3000:3000 \
- -v ~/env/grafana:/var/lib/grafana \
- grafana/grafana
b)浏览器中输入 env-base:3000 ,如下界面:
第一次登录账号和密码都是 admin.
并且第一次登录成功后会强制你进行修改密码(当然你也可以继续修改为 admin),如下:
成功登录如下:
c)由于之前在 prometheus.yml 配置文件中也配置了 grafana 的地址,因此,这里可以打开 prometheus ,点击导航栏中 status 下的 targets ,就可以看到被监控的状态
Ps:prometheus 会每隔一段时间就会自动拉去你 prometheus.yml 中配置的 scrape_configs 路由,默认会去 /metrics 拉去对应的配置
a)拉取镜像
docker pull prom/node-exporter
b)运行
node_exporter 挂载的都是系统文件.
- docker run -d -p 9100:9100 \
- --name=node_exporter \
- --restart=always \
- -v "/proc:/host/proc:ro" \
- -v "/sys:/host/sys:ro" \
- -v "/:/rootfs:ro" \
- --net="host" \
- prom/node-exporter
c)浏览器中输入 env-base:9100 ,如下表示访问成功
d
d)由于之前在 prometheus.yml 配置文件中也配置了 node_exporter 的地址,因此,这里可以打开 prometheus ,点击导航栏中 status 下的 targets ,就可以看到被监控的状态
Ps:prometheus 会每隔一段时间就会自动拉去你 prometheus.yml 中配置的 scrape_configs 路由,默认会去 /metrics 拉去对应的配置
Grafana dashboards | Grafana LabsBrowse a library of official and community-built dashboards.https://grafana.com/grafana/dashboards/在上述地址中找到一个喜欢的仪表盘,然后复制 ID
Ps:上述仪表盘能采集到 Prometheus 数据的前提是,Promethus 的 prometheus.yml 配置了 node_exporter 采集数据的 url.