通过 Node Exporters 收集metrics

夏学名
2023-12-01

1、通过 Node exporter 收集服务器基础监控 metrics

下载地址:prometheus.io/download/

下载 node_exporter-0.18.1.linux-amd64.tar.gz ,解压并移动得到 node_exporter 。

# tar -xvf node_exporter-0.18.1.linux-amd64.tar.gz
# mv node_exporter-0.18.1.linux-amd64/ /usr/local/node_exporter
复制代码

为 node_exporter创建systemd服务管理配置

# vim /usr/lib/systemd/system/node_exporter.service 
[Unit]
Description=node_exporter

[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target
复制代码

启动 node_exporter

# systemctl start node_exporter
# systemctl status node_exporter
复制代码

在浏览器打开验证测试:http://10.x.4.21:9100/metrics

在 promethues 主配置中加入抓取 node_exporter 的配置。

# vim /usr/local/prometheus260/prometheus.yml
... ...
  - job_name: 'node'
    static_configs:
    - targets: ['10.x.4.21:9100']
      labels:
          product: 'Email_person
... ...
复制代码

下载与导入 node_exporter grafana dashboard

2、使用Node exporter 的 Textfile Collector 收集本地导出metrics

textfile收集器类似于Pushgateway,它允许从批处理作业导出统计信息。它还可以用于导出静态指标,例如机器的角色。 Pushgateway应该用于服务级别metrics。textfile模块用于绑定到机器上的metrics。

在 Node exporter 上使用 --collector.textfile.directory 参数。收集器将按照 Promethues文本格式解析该目录中所有匹配*.prom文件。

① Promethues Text-based格式*.prom文件文件书写规范
  • 每行必须使用换行符\n结束,空行会被忽略。
  • #符号开头,后面不接HELPTYPE的行,视为注释。
  • # HELP开头,后面第一个字段是metric名,再后面的字段或字符被视为对metric的描述。
  • # TYPE开头,后面第一个字段是metric名,第二个字段是metric类型,metric类型有counter, gauge, histogram, summary, or untyped。
  • 相同的metric名只能有一个TYPE,并且TYPE这行要放在metric取样之前,如果没有为metric设置TYPE,metric类型被设置为untyped。
② 启用 Textfile Collector 收集本地导出metrics

修改node_exporter systemd配置,添加--collector.textfile.directory=/data1/nodeExporter,需注意目录名不能加双引号。

# mkdir -p /data1/nodeExporter
# vim /usr/lib/systemd/system/node_exporter.service 
[Unit]
Description=node_exporter

[Service]
Type=simple
ExecStart=/data1/exporter/node_exporter --collector.textfile.directory=/data1/nodeExporter

[Install]
WantedBy=multi-user.target
复制代码
③ 测试
cat << EOF > test_http_request_metrics.prom.$$
# HELP http_requests_total The total number of HTTP requests.
# TYPE http_requests_total counter
http_requests_total{method="post",code="200"} 1057
http_requests_total{method="post",code="400"}    33
EOF

mv test_http_request_metrics.prom.$$ test_http_request_metrics.prom
复制代码

在浏览器打开node exporter查询是否有metrics:http://172.x.y.128:9100/metrics

参考:

3、官方文档 example-random 测试

go环境安装

下载地址:golang.org/doc/install

wget https://dl.google.com/go/go1.11.1.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.11.1.linux-amd64.tar.gz

vim /etc/profile
---
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=/data1/goWork
export GOBIN=/data1/goBin
---
复制代码

用户退出重新登录即可,测试命令 go version

# Fetch the client library code and compile example.
git clone https://github.com/prometheus/client_golang.git
cd client_golang/examples/random
go get -d
go build

# Start 3 example targets in separate terminals:
./random -listen-address=:8080 &
./random -listen-address=:8081 &
./random -listen-address=:8082 &
复制代码

配置Prometheus Scrape目标

# vim /usr/local/prometheus260/prometheus.yml

scrape_configs:... ...
  - job_name: 'example-random'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:8080', 'localhost:8081']
        labels:
          group: 'prodoction'

      - targets: ['localhost:8082']
        labels:
          group: 'canary'... ...
复制代码

在浏览器打开访问:

4、使用 redis_exporter导出redis metrics

redis-server 安装

wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar xzf redis-5.0.0.tar.gz
cd redis-5.0.0/
make

mkdir -p /data1/redis/bin/
mkdir -p /data1/redis/conf/
cp src/redis-* /data1/redis/bin/
cp redis.conf /data1/redis/conf/
复制代码

启动 Redis 服务

/data1/redis/bin/redis-server /data1/redis/conf/redis.conf &
复制代码

redis_exporter 安装

wget https://github.com/oliver006/redis_exporter/releases/download/v0.21.2/redis_exporter-v0.21.2.linux-amd64.tar.gz
tar xvf redis_exporter-v0.21.2.linux-amd64.tar.gz

/data1/exporter/redis_exporter redis.addr "redis://localhost:6379" &
复制代码

参考:github.com/oliver006/r…

配置Prometheus Scrape目标

# vim /usr/local/prometheus260/prometheus.yml

scrape_configs:
... ...
  - job_name: 'redis_exporter'
    static_configs:
    - targets: ['localhost:9121']
... ...
复制代码

浏览器打开测试 http://172.x.y.128:9121/metrics

Grafana Prometheus Redis dashboard模板使用

  • 下载地址:grafana.com/dashboards/…
  • “Download JSON” 保存为 prometheus-redis_rev1.json
  • 导入dashboard模板,点Grafana左上“+”图标,选择“Import”。

参考:

 类似资料: