Pulseway onder Arch Linux

archlinux

Voor de monitoring van een Arch Linux container wil ik graag Pulseway gebruiken. Helaas blijkt het pakket - wat Pulseway zelf aanbiedt - op het moment van schrijven standaard niet te werken (en verouderd te zijn). In deze post beschrijf ik hoe ik Pulseway toch werkend gekregen heb. De oorzaak is dat er in het pakket geen ondersteuning is voor systemd (systemd is tegenwoordig standaard onder Arch Linux).

Sterker nog: systemd is sinds oktober 2012 standaard onder Arch Linux...

Aanleiding

Ik draai Vaultwarden onder Arch Linux in een Proxmox container - en ik moet Pulseway gebruiken voor de monitoring.

Vaultwarden is een Bitwarden compatible server geschreven in Rust. Vaultwarden draait standaard in een Docker container - maar er zijn packages beschikbaar voor Arch Linux. Mijn persoonlijke voorkeur is om de Arch Linux packages te gebruiken - en d.m.v. Caddy de reverse proxy functionaliteit toe te voegen.

Probleem

Normaal kan onder Arch Linux een pakket geïnstalleerd worden met het commando pacman -U pakketnaam.txz. Het viel mij op dat dit voor het Pulseway pakket een foutmelding oplevert.

# pacman -U pulseway_x64.txz 
loading packages...
error: missing package metadata in pulseway_x64.txz
error: 'pulseway_x64.txz': invalid or corrupted package

Conclusie is dat het pakket verouderd is. Dat blijkt ook wanneer ik het pakket uitpak:

mkdir /usr/src/pulseway
mv pulseway_x64.txz /usr/src/pulseway
cd /usr/src/pulseway
tar Jxvf pulseway_x64.txz

Dat levert een aantal mappen op - waar onder andere een etc map in voorkomt.

# ls -lah etc/
total 16K
drwxr-xr-x 4 root root 4.0K Sep 26  2014 .
drwxr-xr-x 6 root root 4.0K Sep 27  2014 ..
drwxr-xr-x 2 root root 4.0K Jan 11  2015 pulseway
drwxr-xr-x 2 root root 4.0K Sep 27  2014 rc.d

Inderdaad: rc.d - dat lijkt niet op systemd maar op SysVInit.

Wanneer ik zoek naar een bestand wat eindigt op .service dan blijkt dat die niet bestaat: find /usr/src/pulseway/ -name "*.service" -print. Hiermee is wat mij betreft (opnieuw) bevestigd dat er geen systemd ondersteuning in het Pulseway pakket zit. Ik vind dat vreemd - omdat Arch Linux standaard al meer dan 10 jaar systemd gebruikt.

Oplossing

Ik heb de mappen naar de juiste locaties gekopieerd. Ik ben "gewoon" uitgegaan van de root folder. Dus de inhoud van bijvoorbeeld /usr/src/pulseway/etc heb ik naar /etc gekopieerd (et cetera).

Vervolgens heb ik de unit file uit de Debian (.deb) package gekopieerd en in de systemd map neergezet (onderaan deze post staat de inhoud van dit bestand):

/usr/lib/systemd/system/pulseway.service

Vervolgens heb ik Pulseway gestart met systemctl start pulseway en vervolgens de status gecontroleerd systemctl status pulseway.

De Pulseway service moet tijdens system boot ook gestart worden. Ik heb hiervoor het enable commando uitgevoerd: systemctl enable --now pulseway.

Intussen heb ik contact opgenomen met Pulseway support. Ik hoop dat dit probleem spoedig opgelost zal worden - zodat de installatie minder omslachtig wordt.

File: /usr/lib/systemd/system/pulseway.service


Description=Remotely Monitor and Control IT Systems
Wants=network-online.target
After=syslog.target network.target network-online.target

[Service]
Type=simple
ExecStartPre=/bin/sleep 10
ExecStart=/usr/sbin/pulsewayd --no-daemonize
SuccessExitStatus=15
KillMode=process

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=60

[Install]
WantedBy=multi-user.target```

Volgende Post Vorige Post