node_exporter не может экспортировать определенные метрики тома / точки монтирования - err = отказано в разрешении

У нас на сервере 3 диска

  1. / dev / nvme2n1p1 для root
  2. / dev / nvme0n1 для / данных
  3. / dev / nvme1n1 для / данных / postgresql / 12 / main / pg_wal

Узел-экспортер может экспортировать все метрики на сервер Prometheus для первых двух точек монтирования, но для третьей (nvme1n1) нескольких метрик он не сможет экспортировать.

Он все еще может экспортировать следующие метрики для третьего

curl "http://localhost:9100/metrics"|grep nvme1n1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0node_disk_discard_time_seconds_total{device="nvme1n1"} 0
node_disk_discarded_sectors_total{device="nvme1n1"} 0
node_disk_discards_completed_total{device="nvme1n1"} 0
node_disk_discards_merged_total{device="nvme1n1"} 0
node_disk_io_now{device="nvme1n1"} 0
node_disk_io_time_seconds_total{device="nvme1n1"} 21338.728
node_disk_io_time_weighted_seconds_total{device="nvme1n1"} 56694.8
node_disk_read_bytes_total{device="nvme1n1"} 8.1892795904e+11
node_disk_read_time_seconds_total{device="nvme1n1"} 4943.992
node_disk_reads_completed_total{device="nvme1n1"} 3.130765e+06
node_disk_reads_merged_total{device="nvme1n1"} 1948
node_disk_write_time_seconds_total{device="nvme1n1"} 83561.291
node_disk_writes_completed_total{device="nvme1n1"} 1.5033066e+07
node_disk_writes_merged_total{device="nvme1n1"} 2.85686e+06
node_disk_written_bytes_total{device="nvme1n1"} 3.1148191744e+12
node_filesystem_device_error{device="/dev/nvme1n1",fstype="ext4",mountpoint="/data/postgresql/12/main/pg_wal"} 1
100 84365    0 84365    0     0  13.4M      0 --:--:-- --:--:-- --:--:-- 13.4M

Но он не сможет предоставить следующие показатели

node_filesystem_size_bytes
node_filesystem_avail_bytes
node_filesystem_free_bytes

Это ошибка из журналов отладки:

Nov 12 14:39:10 host1 node_exporter[20020]: level=debug ts=2020-11-12T09:09:10.701Z caller=filesystem_linux.go:94 collector=filesystem msg="Error on statfs() system call" rootfs=/data/postgresql/12/main/pg_wal err="permission denied"

Пожалуйста, сообщите, что здесь не так. Спасибо


person Nagarjuna D N    schedule 11.11.2020    source источник


Ответы (1)


Это может кому-то помочь!

Предоставление + rx для всех каталогов по этому пути (/ pg-data, / pg-data / postgresql, / pg-data / postgresql / 12 и т. Д.) - либо всем (a + rx), либо группе, которой они принадлежат, и добавить экспортера узлов в эту группу. Это не проблема безопасности, потому что это позволяет любому / этой группе ls -l каталоги, но не имеет доступа к файлам внутри, если права доступа этих файлов слишком широки.

Я пробовал следующие варианты:

  • Если я обновлю разрешение (a + rx) для папки / pg-data / postgresql / 12 / main, тогда служба postgres не появится.
  • Я попытался добавить пользователя node_exporter в группу postgres, но это не повлияло.

Поскольку описанные выше шаги мне не помогли, запуск службы node_exporter от имени пользователя root (systemd unit) помог.

[Unit]
Description=Node Exporter
After=network.target

[Service]
User=root
Group=root
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target
              

Спасибо MATT

Показатели теперь видны в Grafana. введите описание изображения здесь

person Nagarjuna D N    schedule 14.11.2020