不久前我使用了 Prometheus 和节点导出器,并可以访问 node_filesystem_* 指标来监控磁盘使用情况,但最近我在其他一些服务器(Ubuntu Linux)上启动它时,这些指标似乎缺失了。
根据这个https://github.com/prometheus/node_exporter这些指标应默认启用,并可从 Linux 主机获取。什么原因导致它们未显示?
需要澄清的是,我可以获得 CPU、内存等指标,所以并不是节点导出器不工作。
答案1
请注意/etc/default/prometheus-node-exporter
:例如,最近我发现 Ubuntu(18.04)软件包默认切断了所有磁盘统计信息:
ARGS="--collector.diskstats.ignored-devices=^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$ \
对我来说很奇怪,但至少可以调整。
答案2
嗯,看来 v0.11(Ubuntu 16.04 存储库中的全部内容)没有该功能。Ubuntu 18.04 存储库包含 v0.15(仍不是最新版本),但您可以在那里获得该功能。没有可用的 PPA。有很多说明可以手动安装较新版本,或者您可以使用我的 Ansible 角色:
- name: Download package
get_url:
url: https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
dest: /home/yourname/nodeexporter.tar.gz
- name: Unpack tar
unarchive:
src: /home/yourname/nodeexporter.tar.gz
dest: /home/yourname
remote_src: yes
- name: Copy binary
copy:
src: /home/yourname/node_exporter-0.18.1.linux-amd64/node_exporter
dest: /usr/local/bin/node_exporter
remote_src: yes
mode: a+x
- name: Create user
user:
name: node_exporter
system: yes
shell: /bin/false
- name: Template systemd service
template:
src: node_exporter.service.j2
dest: /etc/systemd/system/node_exporter.service
- name: Template systemd service
systemd:
daemon_reload: yes
name: node_exporter
state: started
使用 systemd 服务模板:
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target