Prometheus、Node_Exporter、PushGateway的使用

更新时间:2023-05-12 09:14:31 阅读: 评论:0

Prometheus、Node_Exporter、PushGateway的使⽤
⽂章⽬录
⼀、prometheus_rver端部署prometheus
prometheus是基于T_S(timeries)的数据库,对系统时间的准确性要求很⾼,必须保证主机时间的实时同步。所以,安装prometheus 之前,须先进⾏ntp时间同步
[root@test ~]# yum install ntpdate -y
[root@test ~]# ntpdate
[root@test ~]# hwclock -w
[root@test ~]# crontab -e
* * * * * /usr/sbin/ntpdate 2&> /dev/null && /usr/sbin/hwclock -w 2&>/dev/null
关闭防⽕墙和linux
[root@test ~]# d -i 's/SELINUX=enforcing/SLINUX=disabled/g' /etc/linux/config
[root@test ~]# systemctl stop firewalld
[root@test ~]# systemctl disable firewalld
[root@test ~]# tenforce 0
下载安装
[root@test ~]# wget /prometheus/prometheus/releas/download/v2.30.1/prometheus-2.30.1.
[root@test ~]# ls
prometheus-2.30.1.
[root@test ~]# tar -xf prometheus-2.30.1. -C /usr/local
[root@test ~]# mv /usr/local/prometheus-2.30.1.linux-amd64/ /usr/local/prometheus/
启动
# 查看版本等信息
[root@test prometheus]# ./prometheus --version
prometheus, version 2.30.1 (branch: HEAD, revision: fafb309d4027b050c917362d7d2680c5ad6f6e9e)
build ur:      root@36ab67e1b043
build date:      20210928-09:41:36
go version:      go1.17.1
platform:        linux/amd64
[root@test ~]# cd /usr/local/prometheus/
# 前台启动
[root@test prometheus]# ./prometheus
# 当不带任何参数启动时,其实默认⾃带参数 --config.l ,使⽤当前⽬录下的l⽂件作为配置⽂件
# 后台启动为: nohup ./prometheus  &  ,输出的信息会存放在当前⽬录下的nohup.out中
# 或者 nohup ./prometheus  &> /PATH/FILENAME &
level=info ts=2021-09-29T10:58:37.550Z :400 msg="No time or size retention was t so using the default time retention"duration=15d level=info ts=2021-09-29T10:58:37.550Z :438 msg="Starting Prometheus"version="(version=2.30.1, branch=HEAD, revision=fafb309d4027 b050c917362d7d2680c5ad6f6e9e)"
level=info ts=2021-09-29T10:58:37.550Z :443 build_context="(go=go1.17.1, ur=root@36ab67e1b043, date=20210928-09:41:36)"
level=info ts=2021-09-29T10:58:37.550Z :444 host_details="(Linux 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 test (none))"
level=info ts=2021-09-29T10:58:37.550Z :445 fd_limits="(soft=1024, hard=4096)"
level=info ts=2021-09-29T10:58:37.550Z :446 vm_limits="(soft=unlimited, hard=unlimited)"
level=info ts=2021-09-29T10:58:37.552Z :541 component=web msg="Start listening for connections"address=0.0.0.0:9090
level=info ts=2021-09-29T10:58:37.552Z :822 msg="Starting TSDB ..."
level=warn ts=2021-09-29T10:58:37.552Z :683 component=tsdb msg="A TSDB lockfile from a previous execution already existed. It was repla ced"file=/usr/local/prometheus/data/lock
level=info ts=2021-09-29T10:58:37.553Z caller=:191 component=web msg="TLS is disabled."http2=fal
level=info ts=2021-09-29T10:58:37.554Z :466 component=tsdb msg="Replaying on-disk memory mappable chunks if any"
level=info ts=2021-09-29T10:58:37.554Z :500 component=tsdb msg="On-disk memory mappable chunks replay completed"duration=3.947µs
level=info ts=2021-09-29T10:58:37.554Z :506 component=tsdb msg="Replaying WAL, this may take a while"
level=info ts=2021-09-29T10:58:37.556Z :577 component=tsdb msg="WAL gment loaded"gment=0maxSegment=2
level=info ts=2021-09-29T10:58:37.558Z :577 component=tsdb msg="WAL gment loaded"gment=1maxSegment=2
level=info ts=2021-09-29T10:58:37.559Z :577 component=tsdb msg="WAL gment loaded"gment=2maxSegment=2
level=info ts=2021-09-29T10:58:37.559Z :583 component=tsdb msg="WAL replay completed"checkpoint_replay_duration=26.379µs wal_re play_duration=4.976829ms total_replay_duration=5.017724ms
level=info ts=2021-09-29T10:58:37.561Z :849 fs_type=XFS_SUPER_MAGIC
level=info ts=2021-09-29T10:58:37.561Z :852 msg="TSDB started"
level=info ts=2021-09-29T10:58:37.561Z :979 msg="Loading configuration file"l
level=info ts=2021-09-29T10:58:37.602Z :1016 msg="Completed loading of configuration file"l totalDuration=41.1 66168ms db_storage=1.422µs remote_storage=14.496µs web_handler=531ns query_engine=1.442µs scrape=40.625426ms scrape_sd=84.755µs notify= 23.322µs notify_sd=7.193µs rules=2.375µs
level=info ts=2021-09-29T10:58:37.602Z :794 msg="Server is ready to receive web requests."
# 默认prometheus会把运⾏的本机同时当作本监控节点(prometheus rver不需要部署node_exporter)
# 本机IP
[root@test ~]# ifconfig | awk 'NR==2 {print $2}'
192.168.126.120
在默认配置中,已经将 Prometheus Server ⾃⾝作为被监控端进⾏监控
可以通过HTTP_GET请求⽅式查看prometheus对本机的监控内容:
[root@test ~]# curl localhost:9090/metrics
# 或者在浏览器访问 192.168.126.120:9090/metrics
# 可以看到获取到的当前主机的所有监控数据,返回了⼤量的这种 metrics类型 K/V数据
那么此时可以使⽤ PromQL (Prometheus Query Language)在Web Console界⾯也可以对采集到的metrics中的某⼀key值进⾏查看
查看监控节点
prometheus配置⽂件说明
# 配置⽂件格式是yaml格式
# 此⽚段指定的是 prometheus 的全局配置,⽐如采集间隔,抓取超时时间等。( 通常可以被job单独的配置覆盖
global:)
global:
# 默认抓取周期,可⽤单位ms、smhdwy #设置每15s采集数据⼀次,默认1分钟
[ scrape_interval: <duration>| default = 1m ]
# 默认抓取超时
[ scrape_timeout: <duration>| default = 10s ]
# 监控规则的默认周期(多长时间会进⾏⼀次监控规则的评估),默认1分钟
# 举例:假如设置当内存使⽤量>70%时发出报警这么⼀条rule(规则),那么prometheus会根据这个配置项设定的时间来执⾏⼀次这个规则检查内存的使⽤情况
[ evaluation_interval: <duration>| default = 1m ]
# 和外部系统(例如AlertManager)通信时为时间序列或者警情(Alert)强制添加的标签列表
external_labels:
[<labelname>: <labelvalue>... ]
[<labelname>: <labelvalue>... ]
===================================================================================================
# 此⽚段指定报警规则⽂件, prometheus 根据这些规则信息,会推送报警信息到 alertmanager 中。
# (proemtheus将会通过rules对获取到的指标进⾏定时告警触发,并将触发的告警推送给下游进⼀步处理,⼀般我们选择alertmanager作为处理⼯具。)rule_files:
[ - <filepath_glob>... ]
# Alertmanager(是⽤于管理和发出警报的插件)相关配置,若要使⽤该功能需要先安装alertmanager插件。⼀般是使⽤grafana的报警功能代替此功能alerting:  # 此⽚段指定报警配置,这⾥主要是指定 prometheus 将报警规则推送到指定的 alertmanager 实例地址。
alert_relabel_configs:
[ - <relabel_config>... ]
alertmanagers:
[ - <alertmanager_config>... ]
# 该框之内都是关于告警的相关配置,需先安装AlertManager插件并进⾏配置才能使⽤该功能。⼀般是使⽤grafana的报警功能代替该AlertManager功能
===================================================================================================
# 此⽚段指定抓取配置,prometheus 的数据采集通过此⽚段配置。
scrape_configs:  # ⼀个 scrape_config ⽚段指定⼀组⽬标和参数,⽬标就是实例,指定采集的端点
[ - <scrape_config>... ]
scrape_interval: 抓取间隔,不配置默认继承 global 值。
scrape_timeout: 抓取超时时间,不配置默认继承 global 值。
metric_path: 抓取路径,默认是/metrics
*_sd_configs: 指定服务发现配置
static_configs: 静态指定服务 job。
relabel_config: relabel 设置
例:
# 在scrape_config中每个监控⽬标是⼀个job,但job的类型有很多种。可以是最简单的static_config,即静态地指定每⼀个⽬标。
scrape_configs:
# 这⾥定义了⼀个job的名称:job_name: 'prometheus',然后定义监控节点:
- job_name: "prometheus"
static_configs:
- targets: ['localhost:9090']
# 这是prometheus本机的⼀个监控节点,可以继续扩展加⼊其它需要被监控的节点,例如:
- job_name: 'aliyun'
static_configs:
- targets: [‘rver01:9100’,'IP:9100’,’nginxrver:9100','web006:9100’,'redis:9100','logrver:9100','redis1:9100']
# 可以看到targets可以并列写⼊多个节点,⽤逗号隔开,机器名+端⼝号,端⼝号主要是exporters的端⼝,在这⾥9100其实是node_exporter的默认端⼝。配置完成后,prometheus就可以通过配置⽂件
识别监控的节点,持续开始采集数据,prometheus基础配置也就搭建好了。
# 也可以监控安装pushgateway插件的节点
- job_name: 'xxxxx'
static_configs:
- targets: [‘IP:9091’]# pushgateway默认是9091端⼝
labels:
instance: pushgateway
# 远程读写特性相关的配置(此部分内容需参考prometheus集群和⾼可⽤部分,如果是单机架构则⽆需配置。)
remote_write:  # 指定后端的存储的写⼊ api 地址。
[ - <remote_write>... ]
remote_read:  # 指定后端的存储的读取 api 地址。
[ - <remote_read>... ]
# 安装后默认配置⽂件
[root@test ~]# cat /usr/local/l
global:  # 全局配置(如果有内部单独设定,会覆盖这个参数)
scrape_interval: 15s # 周期性从监控⽬标上收集数据,然后将数据存储到本地存储上。设置全局每次数据收集的间隔为15s,不设置默认为1分钟。可以设定全局也可以设定单个metrics。
evaluation_interval: 15s  # 规则扫描时间间隔是15秒,默认不填写是 1分钟
# Alertmanager configuration

本文发布于:2023-05-12 09:14:31,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/597477.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:配置   监控   默认   节点
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图