Docker, Portainer Agent et Beats sur Raspberry Pi

Installation de Docker, Portainer et d'agents Beats sur un Raspberry

Pré-requis

Bien entendu, il vous faut un Raspberry fonctionnel avec un OS et une connexion réseau. L'installation de ce dernier est rendu de plus en plus simple ces dernières années. Je vous invite à utiliser Raspberry Pi Imager qui rend l'installation encore plus simple et vous permet, dès le flash de l'image sur la carte SD de définir utilisateur / mot de passe et connexion SSH. Vous n'avez plus aucune opération intermédiaire à effectuer avant d'accéder à votre précieux en SSH.

Docker

Concernant l'installation de Docker, c'est relatviement simple et je n'ai rien de spécial à apporter, c'est pourquoi le plus simple est de vous rediriger directement vers la documentation officielle qui sera mieux maintenue que cette page.

Portainer agent

Pour cette partie, vous avez deux possibilités distinctes. Dans les deux cas, vous aurez besoin d'avoir un Portainer Server opérationnel (ce sujet est couvert ici).

La principale différence entre ces deux méthodes d'installation est que l'installation classique nécessite que votre Portainer Agent soit atteignable par votre Portainer Server. Cela peut être un frein dans le cas ou votre Portainer Server est localisé dans le cloud et votre Portainer Agent en local. Cela nécessite des règles de NAT et des ouvertures de ports sur votre Box. Dans le cas du Edge Agent, c'est ce dernier qui va régulièrement publier son statut vers le Server. La connexion s'établit donc depuis l'intérieur vers l'extérieur et non l'inverse.

L'interface web de votre Portainer Server vous sera nécessaire pour configurer vos agents.

Agents Beats

Les agents Beats ne sont pas officiellement compilés par Elastic pour les processeurs ARM 32bits, nous allons donc devoir nous baser sur le travail d'autres personnes.

Actuellement jutilise le travail de vrince. Malheureusement tous les Beats ne sont pas compilés et ils semblerait que ses releases aient un peu de retard sur les releases officielles.

L'installation "propre" d'un agent sur un Raspberry peut ensuite se faire de cette manière :

sudo -s # on passe en root pour alléger les commandes à venir
cd /opt
mkdir -p elastic/beats
wget https://github.com/vrince/arm-beats/releases/download/v8.4.3/metricbeat-8.4.3-linux-armv7l.tar.gz
tar -xvzf filebeat-8.4.3-linux-armv7l.tar.gz
mv filebeat-8.4.3-linux-armv7l filebeat # cela simplifiera les paths
cd filebeat
vim filebeat.yml # prenez soin de configurer l'agent comme vous le souhaitez
filebeat modules enable system # activez et configurez les modules qui vous intéressent

À partir de ce point, il serait possible d'exécuter filebeat, mais nous allons le déclarer en tant que service pour le contrôler plus facilement. Créons un fichier de service dans /etc/systemd :

vim /etc/systemd/system/filebeat.service

Son contenu sera le suivant (adaptez si vous en avez le besoin) :

[Unit]
Description=Filebeat is a lightweight shipper for metrics.
Documentation=https://www.elastic.co/products/beats/filebeat
Wants=network-online.target
After=network-online.target

[Service]
Environment="BEAT_LOG_OPTS=-e"
Environment="BEAT_CONFIG_OPTS=-c /opt/elastic/beats/filebeat/filebeat.yml"
Environment="BEAT_PATH_OPTS=-path.home /opt/elastic/beats/filebeat -path.config /opt/elastic/beats/filebeat -path.data /var/lib/filebeat"
ExecStart=/opt/elastic/beats/filebeat/filebeat $BEAT_LOG_OPTS $BEAT_CONFIG_OPTS $BEAT_PATH_OPTS
Restart=always

[Install]
WantedBy=multi-user.targett

Faites un reload de systemd, puis un enable et un start service filebeat :

systemctl daemon-reload
systemctl enable filebeat
systemctl start filebeat
systemctl status filebeat

Vérifiez le retour de la commande status, si vous avez des doutes, vous pouvez vérifier le bon fonctionnement de filebeat avec journalctl -fu filebeat.

Filebeat est installé ! La procédure est exactement la même pour installer un autre agent, à partir du moment où vous avez une version compilée à votre disposition.

Last updated