Prometheus搭建

news/2024/5/18 21:51:23 标签: Prometheus, node_exporter

注:本文基于CentOS 7.2编写

1、下载prometheus安装包

我们以官网最新版本为例,官网地址,https://prometheus.io/download/

wget https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz

如果觉得官网下载实在慢,可以通过以下链接下载,
prometheus-2.16.0.linux-amd64.tar.gz

下载完压缩包后我们直接解压,并放到/usr/local/prometheus目录,便于管理,

[root@centos7 prometheus]# tar -xf prometheus-2.16.0.linux-amd64.tar.gz
[root@centos7 prometheus]# ls
prometheus-2.16.0.linux-amd64  prometheus-2.16.0.linux-amd64.tar.gz
[root@centos7 prometheus]# mkdir -p /usr/local/prometheus
[root@centos7 prometheus]# mv prometheus-2.16.0.linux-amd64/* /usr/local/prometheus
[root@centos7 prometheus]# cd /usr/local/prometheus
[root@centos7 prometheus]# ./prometheus --version
prometheus, version 2.16.0 (branch: HEAD, revision: b90be6f32a33c03163d700e1452b54454ddce0ec)
  build user:       root@7ea0ae865f12
  build date:       20200213-23:50:02
  go version:       go1.13.8

Prometheus_28">2、配置Prometheus

[root@centos7 prometheus]# grep -vE "^$|^[\t| ]*#" prometheus.yml
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.
alerting:
  alertmanagers:
 - static_configs:
    - targets:
rule_files:
scrape_configs:
 - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

主要有四个字段,

  • global:全局配置
    scrape_interval:设置prometheus守护进程拉取agent信息时间间隔
    evaluation_interval:设置根据后面rule_files字段定义的规则计算的时间间隔

  • alerting:告警配置
    用于配置告警信息,需要通过alertmanagers插件实现,这里暂时未配置

  • rule_files:规则配置
    主要用于触发告警,这里也暂未配置

  • scrape_configs:抓取目标机器配置
    job_name:标识这条记录,也就是这个配置内的记录都会添加上该字段
    targets:设置目标机地址

3、启动服务

鉴于安装是通过二进制文件安装,没有service文件,因此,为了便于管理,我们增加一个对应的systemd服务,这样启动和开机启动就更方便了。

cat > /usr/lib/systemd/system/prometheus.service <<EOF
[Unit]
Description=prometheus
After=network.target
 
[Service]
ExecStart=/usr/local/prometheus/prometheus \
		  --config.file=/usr/local/prometheus/prometheus.yml \
		  --storage.tsdb.path=/var/lib/prometheus
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
EOF

设置配置文件路径以及本地时序数据库数据存放路径,因为prometheus只是热更新配置,因此增加reload字段。

然后就可以通过systemctl命令设置开机启动,并启动服务了。

systemctl enable prometheus && systemctl start prometheus

一切正常的情况下,就能在/var/log/messages中看到如下打印,

Mar 10 10:08:55 centos7 systemd: Started prometheus.
Mar 10 10:08:55 centos7 systemd: Starting prometheus...
...
Mar 10 10:08:55 centos7 prometheus: level=info ts=2020-03-10T14:08:55.895Z caller=main.go:630 msg="Server is ready to receive web requests."

4、访问web

Prometheus自带一个比较简单的Web界面,访问http://your-ip:9090 即可。
在这里插入图片描述因为默认配置里我们只监控了prometheus,因此在target页面也就只有一个项目,
在这里插入图片描述

5、增加服务器监控

为了能知道本机的一些信息,比如,CPU使用率,内存,磁盘IO等,我们需要增加一个插件来帮我们收集信息——node_exporter,其实也就是一个系统信息采集的客户端。

  1. 安装node_exporter

同样我们从官网下载二进制安装包,

wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

如果嫌弃官网下载慢,可以通过下面链接下载,
node_exporter-0.18.1.linux-amd64.tar.gz

同样,解压后移动到/usr/local/prometheus目录,便于管理,

[root@centos7 prometheus]# tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
[root@centos7 prometheus]# mkdir -p /usr/local/prometheus/node_exporter
[root@centos7 prometheus]# mv node_exporter-0.18.1.linux-amd64/* /usr/local/prometheus/node_exporter/
[root@centos7 prometheus]# cd /usr/local/prometheus/node_exporter
[root@centos7 node_exporter]# ls
LICENSE  node_exporter  NOTICE
  1. 启动服务

为了统一管理,我们仍然使用systemctl来管理,创建个systemd的服务文件,

cat > /usr/lib/systemd/system/node_exporter.service <<EOF
[Unit]
Description=node_exporter
After=network.target
 
[Service]
ExecStart=/usr/local/prometheus/node_exporter/node_exporter
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
EOF

之后就通过systemctl来设置开机启动和启动服务,

[root@centos7 ~]# systemctl enable node_exporter
Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.
[root@centos7 ~]# systemctl start node_exporter

node_exporter默认开启了很多信息的采集,主要是proc文件系统下的各种参数,详细配置可以参考该链接,https://github.com/prometheus/node_exporter

  1. 增加prometheus监控目标

客户端配置好了,还需要服务端来拉取数据,因此我们还需要在prometheus中增加配置,主要涉及scrape_configs字段配置,原先我们只配置了监控prometheus本身,现在我们将服务器也添加进去,注意node_exporter的端口为9100,

scrape_configs:
 - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
 - job_name: 'my-server'  #新增的配置
    static_configs:
    - targets: ['localhost:9100']

更新了配置,自然要重新启动服务,

systemctl restart prometheus

这时候我们再看target页面,就能看到两个项目了,
在这里插入图片描述

6、web查看监控信息

配置好后,我们就能在prometheus的web界面来查看监控信息了,比如内存使用率,
在这里插入图片描述

node_exporter_173">7、node_exporter指标

node_exporter有很多指标,详细配置可以通过访问http://yourip:9100/metrics来查看具体有哪些指标,
在这里插入图片描述
其实,prometheus自带的web界面是比较简单的,我们通常配合Grafana来作为dashboard。关于grafana的使用我们下一篇再介绍。


http://www.niftyadmin.cn/n/1035351.html

相关文章

Android自定义ViewGroup的交互,往往都是侧滑菜单开始

ViewGroup的自定义侧滑菜单 前言 前文我们理解了ViewGroup的测量与布局&#xff0c;但是并没有涉及到多少的交互逻辑&#xff0c;而 ViewGroup 的交互逻辑说起来范围其实是比较大的。从哪开始说起呢&#xff1f; 我们暂且把 ViewGroup 的交互分为几块知识区&#xff0c; 事…

Grafana搭建及结合prometheus使用

1、关于grafana grafana是一个开源的度量分析和可视化工具&#xff0c;用于时序数据库的图标展示和分析&#xff0c;上篇文章我们也说过&#xff0c;prometheus的dashboard比较简单&#xff0c;想要达到比较好的展示效果&#xff0c;一般接入grafana使用。 2、安装和启动graf…

RxJava2 事件分发消费绑定逻辑 简析

前言 重温RxJava2源码&#xff0c;做个简单的记录&#xff0c;本文仅分析事件的发射与消费简单逻辑&#xff0c;从源码角度分析被观察者&#xff08;上游事件&#xff09;是如何与观察者&#xff08;下游事件&#xff09;进行关联的。 事件发射 Observable.just(1,2,3).subs…

Jetpack Compose : 一学就会的自定义下拉刷新加载更多

前言 一个成熟Androider的标志是自定义下拉刷新&加载更多&#x1f601; 自定义下拉刷新你会怎么做&#xff1f; 因为我这个人比较懒&#xff08;其实就是菜&#xff09;&#xff0c;所以直接拿Compose自带的下拉刷新来修改。 这里先上效果图&#xff0c;第一张是Compose…

vm内核参数之内存整理compact_memory和extfrag_threshold

注&#xff1a;本文分析基于3.10.0-693.el7内核版本&#xff0c;即CentOS 7.4 1、关于内存整理 内存的伙伴系统以页为单位进行内存管理&#xff0c;经过系统和应用程序的大量申请释放&#xff0c;就会造成大量离散的页面&#xff0c;这就是内存碎片的来源。 而一些应用程序和…

使用 Jetpack Compose 做一个年度报告页面

刚刚结束的 2022 年&#xff0c;不少应用都给出了自己的 2022 年度报告。趁着这股热潮&#xff0c;我自己维护的应用《译站》 也来凑个热闹&#xff0c;用 Jetpack Compose 写了个报告页面。效果如下&#xff1a; 效果还算不错&#xff1f;如果需要实际体验的&#xff0c;可以前…

vm内核参数之内存水位min_free_kbytes和保留内存lowmem_reserve_ratio

注&#xff1a;本文分析基于3.10.0-693.el7内核版本&#xff0c;即CentOS 7.4 1、zone内存水位值 系统内存的每个node上都有不同的zone&#xff0c;每个zone的内存都有对应的水位线&#xff0c;当内存使用达到某个阈值时就会触发相应动作&#xff0c;比如直接回收内存&#x…

从Android官方文档中寻找获取超广角的灵感

前言 前面研究在Android中获取超广角摄像头&#xff1a;后续笔者通过查询Android文档发现了一些新的思路&#xff0c;本文将通过文档提到的内容&#xff0c;总结一下自己对于获取超广角的新发现。 逻辑摄像头 概念 参考 Multi-camera API#logical | Android Developers (goo…