Beat personnalisé de la Suite Elastic pour interagir avec les cubes eBPF basés sur Polycube.
Assurez-vous que ce dossier se trouve à l'emplacement suivant : ${GOPATH}/src/gitlab.com/astrid-repositories/cubebeat
mkdir -p ${GOPATH}/src/gitlab.com/astrid-repositories/
cd ${GOPATH}/src/gitlab.com/astrid-repositories
git clone https://gitlab.com/astrid-repositories/cubebeat.git
Pour créer le binaire pour Cubebeat
exécutez la commande ci-dessous. Cela générera un binaire dans le même répertoire avec le nom cubebeat.
chmod +x build.sh
build.sh
Pour exécuter Cubebeat
avec la sortie de débogage activée, exécutez :
./cubebeat -c cubebeat.yml -e -d "*"
Pour exécuter Cubebeat
sans activer la sortie de débogage, exécutez :
./cubebeat -c cubebeat.yml -e
Cubebeat
lit le fichier de configuration (par défaut : cubebeat.yml
) qui est passé en argument.
Ce fichier accepte les configurations de battements courantes décrites dans Format de fichier de configuration.
De plus, il accepte des configurations spécifiques comme le montre l'exemple suivant :
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
Les différentes options seront expliquées dans les sections suivantes.
Cubebeat
peut charger des fichiers de configuration externes pour les entrées, vous permettant de séparer votre configuration en plusieurs fichiers de configuration plus petits.
Sur les systèmes dotés d'autorisations de fichiers
POSIX
, tous les fichiers de configuration sont soumis à des vérifications de propriété et d'autorisation de fichier.
Pour plus d'informations, consultez Propriété et autorisations des fichiers de configuration dans la référence de la plateforme Beats .
Vous spécifiez l'option path
dans la section cubebeat.config.inputs
du cubebeat.yml
. Par exemple:
cubebeat :
config.inputs :
path : config.d/*.yml
Chaque fichier trouvé par le path
Glob doit contenir une liste d'une ou plusieurs définitions d'entrée.
La première ligne de chaque fichier de configuration externe doit être une définition d'entrée commençant par
- name
.
Par exemple:
- name : synflood
enabled : true
period : 10s
polycube.api-url : " http://localhost:9000/polycube/v1/synflood/sf/stats/ "
- name : packetcapture
enabled : true
period : 5s
polycube.api-url : " http://localhost:9000/polycube/v1/packetcapture/pc "
Il est essentiel que deux entrées en cours d'exécution NE portent PAS le même
name
. Si plusieurs personnes saisissent le mêmename
, seul le premier est accepté ; tandis que les autres sont rejetés.
Lorsque l'option enabled
est true
, l'entrée du cube spécifique interagit périodiquement avec le Polycube Cube spécifique à chaque intervalle de temps défini dans period
en effectuant une requête HTTP à l'URL définie dans polycube.api-url
.
Si le cube n'est pas accessible ou s'il y a une erreur lors de la récupération des données,
cubebeat
continuera à fonctionner, en essayant une nouvelle connexion après une période définie dansperiod
.
À chaque period
de temps, l'entrée spécifique du cube envoie un nouvel événement Elastic
à la sortie comme défini dans le fichier de configuration cubebeat.yml
Vous pouvez configurer cubebeat
pour recharger dynamiquement les fichiers de configuration externes en cas de modifications. Cette fonctionnalité est disponible pour les configurations d'entrée chargées en tant que fichiers de configuration externes. Vous ne pouvez pas utiliser cette fonctionnalité pour recharger le fichier de configuration principal cubebeat.yml
.
Pour configurer cette fonctionnalité, vous spécifiez un path
(Glob) pour surveiller les modifications de configuration. Lorsque les fichiers trouvés par le Glob changent, de nouvelles entrées sont démarrées et arrêtées en fonction des modifications des fichiers de configuration.
Cette fonctionnalité est particulièrement utile dans les environnements de conteneurs où un conteneur est utilisé pour suivre les journaux des services exécutés dans d'autres conteneurs sur le même hôte.
Pour activer le rechargement dynamique de la configuration, vous spécifiez le path
et les options reload
dans la section cubebeat.config.inputs
. Par exemple:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
Option | Description |
---|---|
path | Un Glob qui définit les fichiers pour vérifier les modifications. |
reload.enabled | Lorsqu'il est défini sur true, active le rechargement dynamique de la configuration. |
reload.period | Spécifie la fréquence à laquelle les fichiers sont vérifiés pour les modifications. Ne définissez pas la period à moins de 1s car le temps de modification des fichiers est souvent stocké en secondes.Définir la period à moins de 1s entraînera une surcharge inutile . |
Sur les systèmes dotés d'autorisations de fichiers
POSIX
, tous les fichiers de configuration sont soumis à des vérifications de propriété et d'autorisation de fichier.
Pour plus d'informations, consultez Propriété et autorisations des fichiers de configuration dans la référence de la plateforme Beats .