首页 > 其他分享 >Prometheus 安装和配置

Prometheus 安装和配置

时间:2023-02-22 11:25:48浏览次数:51  
标签:-- 安装 app 配置 3434 prometheus Prometheus root

安装Prometheus之前必须要先安装ntp时间同步,因为prometheus server对系统时间的准确性要求很高,必须保证本机时间实时同步。

这里我们以Centos7为例,先执行时间同步,执行如下计划任务:

$ timedatectl set-timezone Asia/Shanghai
$ contab -e
* * * * * ntpdate -u cn.pool.ntp.org

Prometheus server下载

官网

https://prometheus.io/

下载地址

https://prometheus.io/download/

docker版本的下载地址

https://hub.docker.com/u/prom

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"]

对重要参加介绍如下:

  1. global是一些常规的全局配置,这里只列出了两个参数,含义如下:
scrape_interval: 15s   #每15s采集一次数据
evaluation_interval: 15s   #每15s做一次告警检测
  1. rule_files指定加载的告警规则文件,告警规则放到下面来介绍。

  2. 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

相关文章

  • 【springboot】配置数据源datasource
    数据源datasource可以获取数据库连接Connection可以创建JdbcTemplate操作数据库默认配置spring默认的数据库连接池为Hikari,maven依赖如下<!--spring-boot-star......
  • prometheus基础介绍
    Prometheus简介Prometheus是一套开源的系统监控报警框架,作为新一代的云原生监控系统,目前已经有上千个贡献者参与到Prometheus的研发工作上,并且超过120+项的第三方集成。P......
  • Android 打包生成APK文件时报lintOptions配置错误
    解决办法,在build.​​gradle​​里面的buildTypes同级添加如下代码,放在android下面lintOptions{checkReleaseBuildsfalseabortOnErrorfalse}checkReleaseBuilds=fal......
  • 写给新手的 ubuntu studio 安装方法
    简介:UbuntuStudio是一个基于Ubuntu而面向音频、视频及图形爱好者的操作系统。写文章时候UbuntuStudio为11.04版。​​http://baike.baidu.com/view/2557817.htm​......
  • 虚拟机VMware安装Fedora15/ubuntu 11,要想使用gnome3/unity 要怎么办呢?
    SelecttheAccelerate3DgraphicsAcceleratedgraphicscapabilitiesapplytoWindowsXP,WindowsVista,andWindows7guests,onhostsrunningWindowsorLinux......
  • lenova think centre安装 双系统
    配置256的固态盘,1t的机械盘分区为gpt引导应该是uefi(msinfo32->biosM****)计划:windows10必装到256的固态盘只给它200Glinuxmint安装到机械盘各个区中共分......
  • 安装配置HAProxy
    HAProxy安装过程与日志输出配置先安装LUA$yum-yinstallzlibgccgcc-c++libgcczlib-develpcrepcre-developensslopenssl-devel$yuminstall-ylibnllibnl-......
  • 快速搭建maven私服仓库并配置
    1.第一步,通过官方网站下载tar.gz包上传到服务器并解压随后进入解压目录,并执行./bin/nexusstart此时可能会出现如下异常   处理这个问题很容易,找到bin下的nexus文......
  • 手动配置ipv6地址和静态路由
    转发地址:https://www.cnblogs.com/waw/p/16321917.html1.手动配置ipv6地址1.修改配置文件,eth0换成自己的网口名称1vim/etc/sysconfig/network-scripts/ifcfg-eth0......
  • Nginx 配置
    在当今快节奏的数字世界中,企业需要能够处理大量网络流量以保持竞争力。实现这一目标的一种方法是使用像Nginx这样的高性能Web服务器。将Nginx配置为每分钟处理10000......