在prometheus的架构设计中,PrometheusServer并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。P
在prometheus的架构设计中,PrometheusServer并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的Http服务地址(通常是/metrics)拉取监控样本数据。
从上面的描述中可以看出Exporter可以是一个相对开放的概念,其可以是一个独立运行的程序独立于监控目标以外,也可以是直接内置在监控目标中。只要能够向Prometheus提供标准格式的监控样本数据即可。
这里为了能够采集到主机的运行指标如CPU, 内存,磁盘等信息。我们可以使用node Exporter 。
node_exporter安装部署
配置hosts文件解析并修改主机名(在Prometheus ,node1,node2都要配置)Prometheus安装文档
[root@locathost ~]# vim /etc/hosts192.168.100.100 prometheus192.168.100.10 node2192.168.100.9 node2修改主机名Prometheus服务器[root@prometheus ~]# hostnamectl set-hostname prometheusnode1 node2[root@node1 ~]# hostnamectl set-hostname node1[root@node2 ~]# hostnamectl set-hostname node2
配置时间服务器同步时间
prometheus服务器[root@prometheus ~]# yum -y install ntp ntpdate[root@prometheus ~]# sed -i '/^server/s/^/#/g' /etc/ntp.conf[root@prometheus ~]# cat <>/etc/ntp.conf server 127.127.1.0 fudge 127.127.1.0 stratum 8 END[root@prometheus ~]# systemctl enable ntpd --now[root@prometheus ~]# ntpdate ntp1.aliyun.comnode服务器(node1和node2配置相同再此只拿node1举栗子)[root@node1 ~]# yum -y install ntpdate[root@node1 ~]# /usr/sbin/ntpdate 192.168.100.100
下载node_exporter(node1和node2配置相同再此只拿node1举栗子) Prometheus官网
[root@node1 ~]# tar zxvf node_exporter-1.5.0.linux-amd64.tar.gz [root@node1 ~]# mv node_exporter-1.5.0.linux-amd64 /usr/local/exporter配置系统启动脚本[root@node1 ~]# vim /usr/lib/systemd/system/node_exporter.service[Unit]Description=node_exporterAfter=network.target[Service]User=prometheusGroup=prometheusExecStart=/usr/local/exporter/node_exporter --WEB.listen-address=:20001 --collector.systemd --collector.systemd.unit-whitelist=(sshd|Nginx).service --collector.processes --collector.tcpstat[Install] WantedBy=multi-user.target[root@node1 ~]# useradd -M -s /sbin/nologin prometheus[root@node1 ~]# chown -R prometheus:prometheus /usr/local/exporter/[root@node1 ~]# systemctl enable --now node_exporter[root@node1 ~]# systemctl status node_exporter.service [root@node2 ~]# firewall-cmd --add-port=20001/tcp --permanent [root@node2 ~]# firewall-cmd --reload
访问192.168.100.9:20001 192.168.100.10:20001可以看到这个页面
访问http://192.168.100.10/metrics,可以看到当前node exporter获取到的当前主机的所有监控数据,如下所示:
每一个监控指标之前都会有一段类似于如下形式的信息:
# HELP node_cpu Seconds the cpus spent in each mode.
# TYPE node_cpu counter
node_cpu{cpu="cpu0",mode="idle"} 362812.7890625
# HELP node_load1 1m load average.
# TYPE node_load1 gauge
node_load1 3.0703125
其中HELP用于解释当前指标的含义,TYPE则说明当前指标的数据类型。在上面的例子中node_cpu的注释表明当前指标是cpu0上idle进程占用CPU的总时间,CPU占用时间是一个只增不减的度量指标,从类型中也可以看出node_cpu的数据类型是计数器(counter),与该指标的实际含义一致。又例如node_load1该指标反映了当前主机在最近一分钟以内的负载情况,系统的负载情况会随系统资源的使用而变化,因此node_load1反映的是当前状态,数据可能增加也可能减少,从注释中可以看出当前指标类型为仪表盘(gauge),与指标反映的实际含义一致。
除了这些以外,在当前页面中根据物理主机系统的不同,你还可能看到如下监控指标:
node_boot_time:系统启动时间
node_cpu:系统CPU使用量
nodedisk*:磁盘IO
nodefilesystem*:文件系统用量
node_load1:系统负载
nodememeory*:内存使用量
nodenetwork*:网络带宽
node_time:当前系统时间
Go_*:node exporter中go相关指标
process_*:node exporter自身进程相关运行指标
配置prometheus采集node端信息
为了能够让PrometheusServer能够从当前node exporter获取到监控数据,这里需要修改Prometheus配置文件。编辑prometheus.yml并在scrape_configs节点下添加以下内容:
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml- job_name: "node" static_configs: - targets: - "192.168.100.9:20001" - "192.168.100.10:20001"###注意格式!!![root@prometheus ~]# systemctl restart prometheus[root@prometheus ~]# systemctl status prometheus
查看集成
Prometheus UI是Prometheus内置的一个可视化管理界面,通过Prometheus UI用户能够轻松的了解Prometheus当前的配置,监控任务运行状态等。通过Graph面板,用户还能直接使用PromQL实时查询监控数据:
PromQL是Prometheus自定义的一套强大的数据查询语言,除了使用监控指标作为查询关键字以为,还内置了大量的函数,帮助用户进一步对时序数据进行处理。例如使用rate()函数,可以计算在单位时间内样本数据的变化情况即增长率,因此通过该函数我们可以近似的通过CPU使用时间计算CPU的利用率:
rate(node_cpu_seconds_total[2m])
这时如果要忽略是哪一个CPU的,只需要使用without表达式,将标签CPU去除后聚合数据即可
avg without(cpu) (rate(node_cpu_seconds_total[2m]))
来源地址:https://blog.csdn.net/weixin_58131623/article/details/129614337
--结束END--
本文标题: 配置node_exporter
本文链接: https://www.lsjlt.com/news/405950.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-13
2024-05-13
2024-05-11
2024-05-11
2024-05-10
2024-05-07
2024-04-30
2024-04-30
2024-04-30
2024-04-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0