OBSD4* : wiki

Running Telegraf on OpenBSD


  • OS concerné : 6.3 et >

Exécuter Telegraf sur OpenBSD

J'ai essayé d'exécuter Telegraf d'InfluxData sur la version 6.2 d'OpenBSD mais il n'était pas disponible dans les ports et n'ai pas été capable de le compiler depuis les sources. Mais cela a changé puisque j'ai pu faire fonctionner une instance dans OpenBSD 6.3. Voici comment le compiler et exécuter Telegraf sur OpenBSD.

Utilisez OpenBSD 6.3, architecture amd64. Il peut peut-être fonctionner sur d'autres architectures et versions.

Installez les outils de développement requis :

# pkg_add gmake git go
(...)
gmake-4.2.1: ok
git-2.16.2: ok
go-1.10: ok

Configurez l'environnement de compilation :

# export GOPATH=~/go
# export PATH=$PATH:~/go/bin

Démarrez la compilation de l'outil de gestion des dépendances du langage Go :

# go get github.com/golang/dep
# cd $GOPATH/src/github.com/golang/dep
# go install ./...

Ensuite, compilez Telegraf, lui-même :

# go get github.com/influxdata/telegraf
# cd $GOPATH/src/github.com/influxdata/telegraf
# gmake
dep ensure -vendor-only
go build -ldflags " -X main.commit=c7e2945a -X main.branch=master" ./cmd/telegraf

Cela compilera la branche master. On devrait être capable de compiler une branche stable en utilisant les bascules et les étiquettes de Git. Je n'ai pas pu compiler la version 1.7.4.

Quand le binaire est prêt, installez-le :

# gmake install
go build -ldflags " -X main.commit=c7e2945a -X main.branch=master" ./cmd/telegraf
mkdir -p /usr/local/bin/
cp telegraf /usr/local/bin/

J'utilise les fonctions de Classes et Utilisateurs d'OpenBSD, ainsi Telegraf ne sera pas exécuté avec les droits root :

# vim /etc/login.conf
(...)
telegraf:\
  :tc=daemon:

# cap_mkdb /etc/login.conf
# groupadd -g xxxx _telegraf
# useradd -u xxxx -g xxxx -c "Telegraf agent" -d /var/telegraf -s /sbin/nologin -L telegraf _telegraf

Le fichier de configuration par défaut sera dans /etc :

# mkdir /etc/telegraf
# chown _telegraf:_telegraf /etc/telegraf
# chmod 0750 /etc/telegraf
# doas -u _telegraf telegraf config > /etc/telegraf/telegraf.conf

Finalement, il faut créer un script rc.d pour faciliter la gestion :

# cat > /etc/rc.d/telegraf
#!/bin/ksh
#
# Start InfluxData Telegraf agent

daemon="/usr/local/bin/telegraf"
daemon_flags="--config /etc/telegraf/telegraf.conf"
daemon_user="_telegraf"

. /etc/rc.d/rc.subr

pexp='.*telegraf'
rc_reload=NO

rc_pre() {
    /usr/bin/install -d -o _telegraf -g _telegraf -m 0750 /var/telegraf
}

rc_cmd $1
#EOF

# chmod 0755 /etc/rc.d/telegraf
# chown root:wheel /etc/rc.d/telegraf

# rcctl enable telegraf
# rcctl start telegraf

Il y a un problème avec la fonction rc_check() lors de l'utilisation de start ou restart. Je n'ai pas pu trouver pourquoi. Selon ''/etc/rc.d/rc.subr” : “(…) # XXX for unknown reason, rc_check can fail (…)”.

Jusque là, Telegraf exécute les filtres d'entrée d'Apache, MySQL, PHP-FPM et SNMP et le filtre de sortie d'InfluxDB. Et, il ne semble pas utiliser plus de ressources que Collectd.



Cette page est la traduction de la page Running Telegraf on OpenBSD du site TUM'FATIG. - licence de type BSD.