From 78a3845f28ed21499510eab4bf95873c236619d2 Mon Sep 17 00:00:00 2001 From: Eric Faden Date: Sat, 17 Jun 2017 15:04:33 -0400 Subject: Added cgroup name processing for Proxmox LXC and VM --- plugins.d/cgroup-name.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'plugins.d') diff --git a/plugins.d/cgroup-name.sh b/plugins.d/cgroup-name.sh index 40a87497c3..830830a849 100755 --- a/plugins.d/cgroup-name.sh +++ b/plugins.d/cgroup-name.sh @@ -124,6 +124,18 @@ if [ -z "${NAME}" ] # libvirtd / qemu virtual machines NAME="$(echo ${CGROUP} | sed 's/machine.slice_machine.*-qemu//; s/\/x2d//; s/\/x2d/\-/g; s/\.scope//g')" + elif [[ "${CGROUP}" =~ qemu.slice_[0-9]+.scope && -d /etc/pve ]] + then + # Proxmox VMs + + PVEID="$( echo "${CGROUP}" | sed "s|qemu.slice_\([0-9]\+\).scope|\1|" )" + NAME="$(qm config ${PVEID} | grep -oP 'name: (.*)' | sed 's/name: //' )" + elif [[ "${CGROUP}" =~ lxc_[0-9]+ && -d /etc/pve ]] + then + + # Proxmox Container (LXC) + PVEID="$( echo "${CGROUP}" | sed "s|lxc_\([0-9]\+\)|\1|" )" + NAME="$(pct config ${PVEID} | grep -oP 'hostname: (.*)' | sed 's/hostname: //' )" fi [ -z "${NAME}" ] && NAME="${CGROUP}" -- cgit v1.2.3 From 7769e402a5fdd626ec2d58215652a31d956a3c26 Mon Sep 17 00:00:00 2001 From: Eric Faden Date: Sun, 18 Jun 2017 08:58:07 -0400 Subject: Fixed to work with config files directly. Requires netdata to be in group www-data. --- plugins.d/cgroup-name.sh | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'plugins.d') diff --git a/plugins.d/cgroup-name.sh b/plugins.d/cgroup-name.sh index 830830a849..3d1a2fbe5a 100755 --- a/plugins.d/cgroup-name.sh +++ b/plugins.d/cgroup-name.sh @@ -124,18 +124,22 @@ if [ -z "${NAME}" ] # libvirtd / qemu virtual machines NAME="$(echo ${CGROUP} | sed 's/machine.slice_machine.*-qemu//; s/\/x2d//; s/\/x2d/\-/g; s/\.scope//g')" - elif [[ "${CGROUP}" =~ qemu.slice_[0-9]+.scope && -d /etc/pve ]] + elif [[ "${CGROUP}" =~ qemu.slice_([0-9]+).scope && -d /etc/pve ]] then - # Proxmox VMs - - PVEID="$( echo "${CGROUP}" | sed "s|qemu.slice_\([0-9]\+\).scope|\1|" )" - NAME="$(qm config ${PVEID} | grep -oP 'name: (.*)' | sed 's/name: //' )" - elif [[ "${CGROUP}" =~ lxc_[0-9]+ && -d /etc/pve ]] + + # Proxmox VMs + if [[ -f /etc/pve/qemu-server/${BASH_REMATCH[1]}.conf ]] + then + NAME=$(grep -e '^name: ' /etc/pve/qemu-server/${BASH_REMATCH[1]}.conf | head -1 | sed -rn 's|\s*name\s*:\s*(.*)?$|\1|p') + fi + elif [[ "${CGROUP}" =~ lxc_([0-9]+) && -d /etc/pve ]] then # Proxmox Container (LXC) - PVEID="$( echo "${CGROUP}" | sed "s|lxc_\([0-9]\+\)|\1|" )" - NAME="$(pct config ${PVEID} | grep -oP 'hostname: (.*)' | sed 's/hostname: //' )" + if [[ -f /etc/pve/lxc/${BASH_REMATCH[1]}.conf ]] + then + NAME=$(grep -e '^hostname: ' /etc/pve/lxc/${BASH_REMATCH[1]}.conf | head -1 | sed -rn 's|\s*hostname\s*:\s*(.*)?$|\1|p') + fi fi [ -z "${NAME}" ] && NAME="${CGROUP}" -- cgit v1.2.3 From 74e3145a04b715b1cafadeb3e640fa20941e17b5 Mon Sep 17 00:00:00 2001 From: Eric Faden Date: Sun, 18 Jun 2017 12:39:42 -0400 Subject: Adding handling case where config file doesn't exist or don't have www-data permissions. --- plugins.d/cgroup-name.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'plugins.d') diff --git a/plugins.d/cgroup-name.sh b/plugins.d/cgroup-name.sh index 3d1a2fbe5a..a48b82237d 100755 --- a/plugins.d/cgroup-name.sh +++ b/plugins.d/cgroup-name.sh @@ -128,17 +128,23 @@ if [ -z "${NAME}" ] then # Proxmox VMs - if [[ -f /etc/pve/qemu-server/${BASH_REMATCH[1]}.conf ]] + FILENAME="/etc/pve/qemu-server/${BASH_REMATCH[1]}.conf" + if [[ -f $FILENAME && -r $FILENAME ]] then NAME=$(grep -e '^name: ' /etc/pve/qemu-server/${BASH_REMATCH[1]}.conf | head -1 | sed -rn 's|\s*name\s*:\s*(.*)?$|\1|p') + else + error "proxmox config file missing $FILENAME or netdata does not have read access. Please ensure netdata is a member of www-data group." fi elif [[ "${CGROUP}" =~ lxc_([0-9]+) && -d /etc/pve ]] then # Proxmox Container (LXC) - if [[ -f /etc/pve/lxc/${BASH_REMATCH[1]}.conf ]] + FILENAME="/etc/pve/lxc/${BASH_REMATCH[1]}.conf" + if [ -f $FILENAME && -r $FILENAME ]] then NAME=$(grep -e '^hostname: ' /etc/pve/lxc/${BASH_REMATCH[1]}.conf | head -1 | sed -rn 's|\s*hostname\s*:\s*(.*)?$|\1|p') + else + error "proxmox config file missing $FILENAME or netdata does not have read access. Please ensure netdata is a member of www-data group." fi fi -- cgit v1.2.3