安装Prometheus之前必须要先安装ntp时间同步,因为prometheus server对系统时间的准确性要求很高,必须保证本机时间实时同步。
这里我们以Centos7为例,先执行时间同步,执行如下计划任务:
$ timedatectl set-timezone Asia/Shanghai
$ contab -e
* * * * * ntpdate -u cn.pool.ntp.org
Prometheus server下载
官网
下载地址
https://prometheus.io/download/
docker版本的下载地址
github相关地址
https://github.com/prometheus/prometheus
扩展exporters地址
https://prometheus.io/docs/instrumenting/exporters/
安装与启动Prometheus server
prometheus的安装非常简单,只需解压即可,然后执行命令可直接启动。
$ cd /data
$ ll
-rw-r--r-- 1 root root 25880024 6月 18 02:44 alertmanager-0.24.0.linux-amd64.tar.gz
drwxr-xr-x 7 root root 109 6月 18 02:59 app
-rw-r--r-- 1 root root 10571809 6月 18 02:44 blackbox_exporter-0.21.0.linux-amd64.tar.gz
-rw-r--r-- 1 root root 9033415 6月 18 02:44 node_exporter-1.3.1.linux-amd64.tar.gz
-rw-r--r-- 1 root root 82468870 6月 9 23:40 prometheus-2.36.1.linux-amd64.tar.gz
#解压到app文件夹中
$ for i in `ls`; do tar xf $i -C ./app ;done
$ cd /app
#修改文件夹名
$ for i in `ls`; do mv $i `echo $i | cut -d'-' -f1`; done
$ ll
drwxr-xr-x 2 3434 3434 93 3月 25 17:39 alertmanager
drwxr-xr-x 2 3434 3434 80 5月 30 20:50 blackbox_exporter
drwxr-xr-x 2 3434 3434 56 12月 5 2021 node_exporter
drwxr-xr-x 4 3434 3434 132 6月 9 23:35 prometheus
drwxr-xr-x 2 3434 3434 54 5月 31 03:08 pushgateway
#启动
$ cd prometheus/
$ nohup ./prometheus &
因为promeheus直接执行时前台运行的,所以这里需要用nohup ./prometheus &
启动后,Prometheus UI默认运行在9090端口。浏览器可以直接打开访问,无账号密码验证,如下图所示:
Prometheus UI是Prometheus内置的一个可视化管理界面,通过Prometheus UI,用户能够轻松的了解Prometheus当前的配置,监控任务运行状态等。
通过Graph面板,用户还能直接使用PromQL实时查询监控数据。
Promtheus作为一个时间序列数据库,其采集的数据会以文件的形似存储在本地中。
默认的存储路径为执行命令的当前data目录下,会自动创建,用户也可以通过参数--storage.tsdb.path="data/"
修改本地数据存储的路径。
为了管理Promtheus服务方便,也可以写个service脚本,让系统管理Promtheus服务,脚本内容如下:
$ /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
After=network.target
Documentation=https://prometheus.io/
[Service]
Type=simple
User=root
Group=root
ExecStart=/data/app/prometheus/prometheus --config.file=/data/app/prometheus/prometheus.yml --storage.tsdb.path=/data/app/prometheus/data --web.listen-address=:9090 --web.enable-lifecycle
Restart=on-failure
[Install]
WantedBy=multi-user.target
需要说明的是:
- 以上脚本存放在/usr/lib/systemd/system/目录下,给systemctl管理
- 因为本次实验将Prometheus的工作目录放在了/data/app目录下,所以
ExecStart
后跟的参数都是带有这个目录 Restart
是指是否重启,这个表示当服务故障的时候,尝试自动重启--config.file
:指定配置文件的路径--storage.tsdb.path
:指定Prometheus本地存储的路径。最好是指定较大分区下的目录,因为Prometheus收集的监控数据都会存储在这个目录下。--log.level
:指定日志级别,为[debug, info, warn, error]中的一种。--web.enable-lifecycle
:支持热加载新配置。从2.0开始,hot reload功能是默认关闭的,如需开启,需要在启动Prometheus的时候,添加--web.enable-lifecycle
参数
最后,通过systemctl方式启动prometheus服务:
$ systemctl daemon-reload
$ systemctl start prometheus
$ systemctl status prometheus
注意,在重新启动prometheus服务之前,要关闭之前通过nohup方式启动的prometheus进程。
Prometheus server配置文件介绍
Prometheus的主配置文件prometheus.yml,其实prometheus解压安装之后,就默认自带了一个基本的配置文件,简单修改后的prometheus.yml文件内容如下:
$ cat prometheus.yml
#全局配置
global:
scrape_interval: 15s # 将抓取间隔设置为每 15 秒。 默认为每 1 分钟。
evaluation_interval: 15s # 每 15 秒扫描一次规则。 默认值为每 1 分钟。
#scrape_timeout 设置为全局默认值(10 秒)。
#警报管理器配置
alerting:
alertmanagers:
#静态配置
- static_configs:
#抓取对象
- targets:
# - alertmanager:9093
#加载规则一次并根据全局“evaluation_interval”定期扫描它们。
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
#下面是要抓取的端点的抓取配置:
#这里是prometheus本身。
scrape_configs:
# 作业名称作为标签 `job=<job_name>` 添加到从此配置中抓取的任何时间序列中。
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
#关于这个端点的静态配置
static_configs:
- targets: ["localhost:9090"]
对重要参加介绍如下:
- global是一些常规的全局配置,这里只列出了两个参数,含义如下:
scrape_interval: 15s #每15s采集一次数据
evaluation_interval: 15s #每15s做一次告警检测
-
rule_files指定加载的告警规则文件,告警规则放到下面来介绍。
-
scrape_configs指定prometheus要监控的目标,这部分是最复杂的。在scrape_config中每个监控目标是一个job,但job的类型有很多种。可以是最简单的static_config,即静态地指定每一个目标,
例如上面的:
- job_name: "prometheus"
static_configs:
- targets: ['localhost:9090']
这里定义了一个job的名称:job_name: 'prometheus'
,然后开始定义监控节点,这里指定的是prometheus本机的一个监控节点,对应的9090端口,可以继续扩展加入其它需要被监控的节点
例如:
- job_name: 'aliyun'
static_configs:
- targets:['server1:9100','IP:9100','nginxserver:9100','web01:9100’,'redis:9100','logserver:9100','redis2:9100']
可以看到targets可以并列写入多个节点,用逗号隔开,机器名+端口号,端口号主要是exporters的端口,在这里9100其实是node_exporter的默认端口。
配置完成后,prometheus就可以通过配置文件识别监控的节点,持续开始采集数据,prometheus基础配置也就搭建好了。
标签:--,安装,app,配置,3434,prometheus,Prometheus,root From: https://www.cnblogs.com/guangdelw/p/17143666.html