Grafana+Prometheus通过node_exporter监控Linux服务器信息
- 一、Grafana+Prometheus通过node_exporter监控Linux服务器信息
- 二、Prometheus+node_exporter+grafana打造spring boot项目的监控系统
- 三、搭建相关教程博文
相关原文地址:
阿里云:小柒2012:Grafana+Prometheus打造全方位立体监控系统
简书:虫儿飞ZLEI:Prometheus+node_exporter+grafana打造spring boot项目的监控系统
CSDN:宫凯宁:【Prometheus】node_exporter的常用配置项详解
简书:ihujian:docker 安装配置Prometheus+node_exporter+cadvisor
一、Grafana+Prometheus通过node_exporter监控Linux服务器信息
Grafana和Prometheus的安装不再赘述,可参考网上教程或本专栏内的其他文章。
直接讲解node_exporter部分。
1.1node_exporter下载
进入官网node_exporter
https://prometheus.io/download/#node_exporter
进行下载。
1.2解压
tar -zxvf ...node_exporter.tar.gz
1.3启动
解压后,进入到解压目录,启动node_exporter:
./node_exporter
#这种方式启动会将此进程启动到前台,当把当前的命令行关闭,这个进程也会跟着关闭,可以把进程启动到后台运行:
nohup ./node_exporter
nohup ./node_exporter> nodeout.file 2>&1 &
#终端输出存会放在当前目录下的nodeout.file文件中
1.4node_exporter的常用配置项详解
通常,我们使用./node_exporter来启动node_exporter。但是node_exporter其实存在很多内置参数,下面是常用的参数详解。
1.4.1node_exporte基本信息配置
--web.listen-address=":9100"
#node_exporter监听的端口,默认是9100,若需要修改则通过此参数。
--web.telemetry-path="/metrics"
#获取metric信息的url,默认是/metrics,若需要修改则通过此参数
--log.level="info"
#设置日志级别
--log.format="logger:stderr"
#设置打印日志的格式,若有自动化日志提取工具可以使用这个参数规范日志打印的格式
修改node_exporter启动端口:
nohup ./node_exporter> nodeout.file 2>&1 --web.listen-address=":9101" &
1.4.2通过正则表达式来屏蔽或选择某些监控项
--collector.diskstats.ignored-devices="^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$"
#通过正则表达式忽略某些磁盘的信息收集
--collector.filesystem.ignored-mount-points="^/(dev|proc|sys|var/lib/docker/.+)($|/)"
#通过正则表达式忽略某些文件系统挂载点的信息收集
--collector.filesystem.ignored-fs-types="^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$"
#通过正则表达式忽略某些文件系统类型的信息收集
--collector.netclass.ignored-devices="^$"
#通过正则表达式忽略某些网络类的信息收集
--collector.netdev.ignored-devices="^$"
#通过正则表达式忽略某些网络设备的信息收集
--collector.netstat.fields="^$"
#通过正则表达式配置需要获取的网络状态信息
--collector.vmstat.fields="^(oom_kill|pgpg|pswp|pg.*fault).*"
#通过正则表达式配置vmstat返回信息中需要收集的选项
1.5将node_exporter配置到Prometheus中
修改Prometheus的配置文件:
vi /prometheus/prometheus.yml
增加一个job,target是node_exporter的9100的地址:
注意是增加一个job,不是覆盖,之前Prometheus的job不动
重新启动Prometheus。
1.6 Docker方式启动node_exporter
创建一个docker 网络,然后将prometheus和node_exporter 加入到这个网络中
docker network create -d bridge my-net
docker run -d -p 9090:9090 --name prometheus --network my-net -v ~/prom/prometheus.yml:/etc/prometheus/prometheus.yml quay.io/prometheus/prometheus
当设置了–net=host时,如果在加-p或者-P,则不会管用。
docker run -d --net="host" --pid="host" --name=node-exporter -v "/:/host:ro,rslave" quay.io/prometheus/node-exporter --path.rootfs /host
修改Prometheus.yml。
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
evaluation_interval: 15s # By default, scrape targets every 15 seconds.
rule_files:
- "rules/rule.yml"
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['127.0.0.1:9090']
- job_name: 'node'
scrape_interval: 8s
static_configs:
- targets: ['127.0.0.1:9100']
job_name为node 服务发现的targets应该是机器的外部ip + hostPort
二、Prometheus+node_exporter+grafana打造spring boot项目的监控系统Prometheus,Grafana安装不再追诉,参照网上教程或本专栏内相关博文,node_exporter参照Title 一。
2.1集成Prometheus到spring boot项目,并利用Prometheus的查询页面查询spring boot项目的监控数据
添加Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
添加配置
management:
endpoints:
web:
exposure:
include: '*'
metrics:
tags:
application: ${spring.application.name}
在spring boot启动类下添加一个bean
public class BaseMainApp {
public static void main(String[] args) {
SpringApplication.run(BaseMainApp.class, args);
}
//看这里
@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName) {
return (registry) -> registry.config().commonTags("application", applicationName);
}
}
配置Prometheus的yml配置文件,添加job
然后重新启动Prometheus。
拦截器的坑
如果你的spring boot设置了拦截器对访问的url进行拦截的话,一定要记得将下面这个地址开放出来,不然虽然采集到了数据,但是这些数据无法访问的话,Prometheus的查询就查询不到。
配置Grafana
Grafana配置同node_exporter。
import dashboard id 4701。
关于dashboard
dashboard的网址https://grafana.com/dashboards
三、搭建相关教程博文阿里云:小柒2012:Grafana+Prometheus打造全方位立体监控系统
简书:虫儿飞ZLEI:Prometheus+node_exporter+grafana打造spring boot项目的监控系统