Prometheus实现自定义脚本监控

#Prometheus#

监控路漫漫其修远兮,吾将上下而求索!

一、前言

        在监控工作过程中经常会收到大量的定制化的监控需求,Prometheus就提供了一个很强大的组件  --> Pushgateway,他不仅是网关的用途接收exporter的数据,还可以接收自定义的监控指标数据,再由Prometheus server主动去拉取Pushgateway数据。当然他也存在一些缺点,比如:单点问题、监控数据下线但是pushgateway还是会被拉取到旧数据等问题。

二、部署方法 

Prometheus服务端的部署方法前面文章已经有了介绍,此处就不再赘述,主要说明Pushgateway的部署方法,首先下载预编译安装包:Download | Prometheus

Pushgateway基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖,只需要下载对应平台的二进制包,解压并且添加基本的配置即可正常启动。

下面脚本我们将组件配置成服务启动

cat /usr/lib/systemd/system/pushgateway.service

[Unit]
Description=pushgateway
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/pushgateway/pushgateway --persistence.file="/home/pushgateway/data/" --persistence.interval=5m
Restart=on-failure

[Install]
WantedBy=multi-user.target

创建数据目录及配置服务

# 创建数据目录
mkdir -p /home/pushgateway/data/
# 复制服务脚本到系统服务目录下
cp pushgateway.service /usr/lib/systemd/system/

 然后启动服务  systemctl start pushgateway

Prometheus server服务端配置Pushgateway

  - job_name: 'pushgateway' 
    scrape_interval: 30s 
    honor_labels: true 
    static_configs: 
        - targets: ["IP地址:9091"] 
          labels: 
              instance: pushgateway   

重启Prometheus服务使其立即生效。

打开Prometheus服务端查看节点是否正常接入

如果正常接入表示已部署成功。

三、数据验证 

我们先推送一个job名称为“some_job”的数据进行验证

  echo "some_metric 3.14" | curl --data-binary @- http://IP地址:9091/metrics/job/some_job

要推送一个比较复杂的数据可以参照

  cat <<EOF | curl --data-binary @- http://IP地址:9091/metrics/job/some_job/instance/some_instance
  # TYPE some_metric counter
  some_metric{label="val1"} 42
  # TYPE another_metric gauge
  # HELP another_metric Just an example.
  another_metric 2398.283
  EOF

要删除上面数据,则执行

  curl -X DELETE http://IP地址:9091/metrics/job/some_job/instance/some_instance

根据job名称删除,可执行

  curl -X DELETE http://IP地址:9091/metrics/job/some_job

删除所有组中的所有指标(需要通过命令行标志  --web.enable-admin-api 启用管理API)

  curl -X PUT http://IP地址:9091/api/v1/admin/wipe

根据以上数据验证,我们可根据实际需求,编写自己的监控脚本对数据进行推送、删除等操作。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-10 16:08:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-10 16:08:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-10 16:08:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-10 16:08:03       18 阅读

热门阅读

  1. 分库,分表,分区,分片

    2024-04-10 16:08:03       15 阅读
  2. 【无标题】Ant Design of Vue + vue2.0 + 纯前端下载word

    2024-04-10 16:08:03       18 阅读
  3. Golang基础-11

    2024-04-10 16:08:03       16 阅读
  4. 2.Go的基本语法-指针、结构体、Map

    2024-04-10 16:08:03       15 阅读
  5. Qt自定义标题栏【即取即用模板】

    2024-04-10 16:08:03       15 阅读
  6. 如何利用ChatGPT提升学术论文写作效率

    2024-04-10 16:08:03       13 阅读
  7. C++笔试面试题整理

    2024-04-10 16:08:03       13 阅读
  8. minio本地文件上传/远程url上传

    2024-04-10 16:08:03       13 阅读
  9. vue项目引入代码编辑器

    2024-04-10 16:08:03       14 阅读
  10. 19、差分矩阵

    2024-04-10 16:08:03       12 阅读