Назад | Перейти на главную страницу

Influxdb не отображает имя измерения, которое выдвигается плагином collectd exec

Я использую collectd для сбора системной метрики и нажимаю на приток db.

Чтобы отслеживать выполняющийся процесс, я написал сценарий, использующий подключаемый модуль collectd exec, чтобы передать мою стандартную метрику в базу данных потока ... Мой сценарий для подключаемого модуля exec -

#!/bin/bash
tmpfile=$(mktemp)
HOSTNAME="${COLLECTD_HOSTNAME:-slave1-collectd}"
INTERVAL="${COLLECTD_INTERVAL:-6}"
while sleep "$INTERVAL"; do
sudo systemctl list-units --type service --all | grep running | awk -v OFS='\t' '{ print $1, $2, $4 }' > "$tmpfile"
done

Мой файл collectd conf

<Plugin exec>
        Exec developer "/home/developer/process.sh"
<Plugin>

Если я выполнил команду show measure в infxdb, он отображает измерения другого плагина, кроме плагина exec:

cpu_value
df_value
disk_io_time
disk_read
disk_value
disk_weighted_io_time
disk_write
interface_rx
interface_tx
load_longterm
load_midterm
load_shortterm
memory_value
processes_majflt
processes_minflt
processes_processes
processes_read
processes_rx
processes_syst
processes_threads
processes_tx
processes_user
processes_value
processes_write
table_value
uptime_value
users_value

Кто-нибудь может мне помочь, пожалуйста!

Моя конечная цель - контролировать все работающие службы, как показано ниже.

[developer@slave1-collectd ~]$ systemctl list-units --type service --state=running
UNIT                       LOAD   ACTIVE SUB     DESCRIPTION
amazon-ssm-agent.service   loaded active running amazon-ssm-agent
auditd.service             loaded active running Security Auditing Service
chronyd.service            loaded active running NTP client/server
collectd.service           loaded active running Collectd statistics daemon
crond.service              loaded active running Command Scheduler
dbus.service               loaded active running D-Bus System Message Bus
getty@tty1.service         loaded active running Getty on tty1
gssproxy.service           loaded active running GSSAPI Proxy Daemon
httpd.service              loaded active running The Apache HTTP Server
network.service            loaded active running LSB: Bring up/down networking
polkit.service             loaded active running Authorization Manager
postfix.service            loaded active running Postfix Mail Transport Agent
rpcbind.service            loaded active running RPC bind service
rsyslog.service            loaded active running System Logging Service
serial-getty@ttyS0.service loaded active running Serial Getty on ttyS0
sshd.service               loaded active running OpenSSH server daemon
systemd-journald.service   loaded active running Journal Service
systemd-logind.service     loaded active running Login Service
systemd-udevd.service      loaded active running udev Kernel Device Manager
tuned.service              loaded active running Dynamic System Tuning Daemon

Я хочу подтолкнуть весь запущенный процесс вместе с их именем и статусом модуля, например sshd, kafka, tsdb, collectd, grafana (все эти службы systemctl, которые я хочу отслеживать на панели инструментов Grafana)

#!/bin/bash

HOSTNAME="${COLLECTD_HOSTNAME:-`hostname -f`}"
INTERVAL="${COLLECTD_INTERVAL:-10}"
PORT=6379

while sleep "$INTERVAL"
do
b=$(systemctl list-units --type service --all | awk 'BEGIN{print "Service State Status"};$4 ~ /^running$/{print $1,$2,$4}' | column -t )

echo "PUTVAL $HOSTNAME/vs_processes/if_octets  interval=$INTERVAL N:$b"
done

Когда я запускаю сборщик, я получаю сообщение об ошибке: parse_value: Не удалось проанализировать строку как производную: «Служба».