安装Prometheus及简单使用

一、yum 安装 prometheus

1. 官网下载安装包

https://prometheus.io/download/

2. 解压

$ tar xvfz prometheus-2.32.0-beta.0.linux-amd64.tar.gz -C /home

3. 重命名

mv prometheus-2.32.0-beta.0.linux-amd64/ prometheus-2.32.0

4. 维护配置文件

prometheus.yml 是 Prometheus 的配置文件。配置信息详细介绍可查看官方文档:https://prometheus.io/docs/prometheus/latest/configuration/configuration/

prometheus.yml 部分配置信息如下:

# 全局配置
global:
  scrape_interval: 15s # 设置每15s采集数据一次,默认1分钟
  evaluation_interval: 15s # 每15秒计算一次规则,默认1分钟
  # scrape_timeout:15s #  采集数据超时时间,默认10s。
  
# 告警配置
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# 告警规则,Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# 在 scrape_config 中每个监控目标是一个job,但job的类型有很多种。可以是最简单的 static_config,即静态地指定每一个目标。
scrape_configs:
  #  这是 prometheus 本机的一个监控节点
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      # targets 配置要监控的节点,格式:机器名+端口号。配置完成后,prometheus就可以通过配置文件识别监控的节点,持续开始采集数据
      # 可以并列写入多个节点,用逗号隔开
      - targets: ["localhost:9090"]
  - job_name: 'pushgateway'
    static_configs:
      - targets: ['xx.xx.xx.xx:9091']
    honor_labels: true        #作用:如果没有设置instance标签,Prometheus服务器也会附加标签,否则instance标签值会为空

指标说明:

  • Prometheus 以 scrape_interval 规则周期性从监控目标上收集数据,然后将数据存储到本地(scrape_interval 可以设定全局也可以设定单个 metrics);
  • Prometheus 以 evaluation_interval 规则周期性对告警规则做计算,然后更新告警状态(evaluation_interval 只设定在全局);
  • global:全局配置;
  • alerting:告警配置;
  • rule_files:告警规则;
  • scrape_configs:配置数据源,称为 target,每个 target 用 job_name 命名,又分为静态配置和服务发现。

二、使用 Prometheus

1. 启动 Prometheus

$ ./prometheus --config.file="/home/prometheus-2.32.0/prometheus.yml" &

2. 登录 prometheus

Prometheus启动端口为 9090,可通过 http://localhost:9090/graph 登录。
在这里插入图片描述

3. 查看配置

点击 status --> Configuration。
在这里插入图片描述

4. 查看 Targets

点击 status --> Targets:里面就是已经监控的节点。

5. 主机数据展示

访问 localhost:9090/metrics。
在这里插入图片描述

6. 监控一下 CPU 的运行情况

点击工具栏中的 Graph,进入如下界面,在搜索框输入要监控的目标。
在这里插入图片描述
点击右侧的 Execute,如下,有 Table 和 Graph 两种形式。
在这里插入图片描述

7. 停止 Prometheus

$ pkill prometheus

查看 9090 端口的占用情况

$ lsof -i:9090
或者
ss -naltp |grep 9090

三、docker 安装 Prometheus

1. 拉取 prometheus 镜像

docker pull public-docker-virtual.artnj.zte.com.cn/prom/prometheus:latest

2. 维护配置信息

2.1 创建安装 prometheus 的路径以及存储数据的路径

mkdir /var/demeter/monitor/install/prometheus
cd /var/demeter/monitor/install/prometheus
vim prometheus.yml

tips:要先创建好这些目录后,再执行下面的启动 prometheus 的命令,否则会有如下报错:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.go:459: container init caused: rootfs_linux.go:59: mounting "/var/demeter/monitor/install/prometheus/prometheus.yml" to rootfs at "/var/lib/docker/overlay2/3bef52dbfbf62d1014b9c5b490bf850ceb07ebb4c522d28060230fd9ed0a14ed/merged/etc/prometheus/prometheus.yml" caused: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

2.2 再加个 data 文件夹用于挂载 prometheus 的数据

mkdir /var/demeter/monitor/install/prometheus/data

将挂载目录权限设置为 777,防止 run 时候提示 data 没有权限创建文件目录

chmod 777 -R /var/demeter/monitor/install/prometheus/data

tips:如果没有修改权限,则启动容器失败,查看 log 会报如下错误:

# docker ps -a
CONTAINER ID   IMAGE                                                           COMMAND                  CREATED              STATUS                          PORTS     NAMES
df7eff73a483   public-docker-virtual.artnj.zte.com.cn/grafana/grafana:7.5.5    "/run.sh"                About a minute ago   Exited (1) About a minute ago             grafana
086a917af8cc   public-docker-virtual.artnj.zte.com.cn/prom/prometheus:latest   "/bin/prometheus --c…"   15 minutes ago       Exited (2) 15 minutes ago                 prometheus
[root@LIN-0ED66E909A6 monitor]# docker logs 086a917af8cc
ts=2022-01-28T07:55:57.514Z caller=main.go:406 level=info msg="No time or size retention was set so using the default time retention" duration=15d
ts=2022-01-28T07:55:57.515Z caller=main.go:444 level=info msg="Starting Prometheus" version="(version=2.31.1, branch=HEAD, revision=411021ada9ab41095923b8d2df9365b632fd40c3)"
ts=2022-01-28T07:55:57.515Z caller=main.go:449 level=info build_context="(go=go1.17.3, user=root@9419c9c2d4e0, date=20211105-20:35:02)"
ts=2022-01-28T07:55:57.515Z caller=main.go:450 level=info host_details="(Linux 4.19.112-2.el8.x86_64 #1 SMP Wed Jun 10 09:04:49 EDT 2020 x86_64 086a917af8cc (none))"
ts=2022-01-28T07:55:57.516Z caller=main.go:451 level=info fd_limits="(soft=1048576, hard=1048576)"
ts=2022-01-28T07:55:57.516Z caller=main.go:452 level=info vm_limits="(soft=unlimited, hard=unlimited)"
ts=2022-01-28T07:55:57.516Z caller=query_logger.go:87 level=error component=activeQueryTracker msg="Error opening query log file" file=/prometheus/queries.active err="open /prometheus/queries.active: permission denied"
panic: Unable to create mmap-ed active query log

goroutine 1 [running]:
github.com/prometheus/prometheus/promql.NewActiveQueryTracker({0x7fffd4bffee1, 0xb}, 0x14, {0x34442c0, 0xc0007e6370})
        /app/promql/query_logger.go:117 +0x3d7
main.main()
        /app/cmd/prometheus/main.go:491 +0x6bbf

3. 启动 Prometheus

docker run -d --privileged \
    --env TZ=CST-08 \
    -p 29090:9090 \
    --name prometheus \
    --volume /var/demeter/monitor/install/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
    --volume /var/demeter/monitor/install/data/:/prometheus \
    public-docker-virtual.artnj.zte.com.cn/prom/prometheus:latest \
    --config.file=/etc/prometheus/prometheus.yml \
    --storage.tsdb.path=/prometheus \
    --web.console.libraries=/usr/share/prometheus/console_libraries \
    --web.console.templates=/usr/share/prometheus/consoles \
    --web.enable-lifecycle

4. 查看是否启动成功

$ docker ps
CONTAINER ID   IMAGE                                                           COMMAND                  CREATED          STATUS          PORTS                     NAMES
984e19ae38dc   public-docker-virtual.artnj.zte.com.cn/prom/prometheus:latest   "/bin/prometheus --c…"   44 minutes ago   Up 44 minutes   0.0.0.0:29090->9090/tcp   prometheus
  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Prometheus 是一个开源的监控系统,它可以用来收集、存储和查询各种不同类型的指标数据。下面是一个简要的 Prometheus 安装使用教程: 1. 下载 Prometheus 你可以从 Prometheus 的官网下载最新版本的二进制文件:https://prometheus.io/download/ 2. 解压 Prometheus 将下载的 Prometheus 压缩文件解压到你想要安装的目录中: ``` tar xvfz prometheus-*.tar.gz cd prometheus-* ``` 3. 配置 Prometheus Prometheus 的配置文件是 `prometheus.yml`,你需要根据你的需要编辑它。这个文件包含了 Prometheus 的所有配置信息,包括要监控的目标、指标的抓取频率等等。 例如,以下是一个简单Prometheus 配置文件: ``` global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] ``` 这个配置文件定义了一个名为 `prometheus` 的作业,它会每 15 秒抓取 localhost:9090 上的指标数据。 4. 启动 Prometheus 使用以下命令启动 Prometheus: ``` ./prometheus ``` 这将启动 Prometheus,并开始抓取指标数据。你可以在浏览器中访问 `http://localhost:9090`,查看 Prometheus 的 Web 界面。 5. 查询指标 在 Prometheus 的 Web 界面中,你可以使用 PromQL 查询语言查询指标数据。例如,以下查询会返回 Prometheus 目前存储的所有指标名称: ``` {__name__} ``` 这只是一个简单的例子,你可以在 Prometheus 的文档中找到更多的查询语言和示例。 这就是一个简单Prometheus 安装使用教程。希望能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值