Akvorado : collecteur et visualisateur de flux réseau
Vincent Bernat
Au début de cette année, nous avons publié Akvorado, un collecteur, enrichisseur et visualisateur de flux. Il reçoit les flux réseau de vos routeurs via NetFlow v9, IPFIX ou sFlow. Des informations supplémentaires sont ajoutées, comme la localisation géographique et le nom des interfaces. Les flux sont exportés vers Apache Kafka, une file d’attente distribuée, puis stockés dans ClickHouse, une base de données orientée colonnes. Une interface web est fournie pour exécuter des requêtes. Une version en ligne est disponible pour vous permettre d’essayer.
Plusieurs alternatives existent :
- Kentik, une solution populaire dans les nuages,
- ElastiFlow, une solution à héberger soi-même mais propriétaire,
- votre propre assemblage de solutions libres en choisissant un collecteur de flux (pmacct, GoFlow2 ou vFlow), une queue distribuée1 (Apache Kafka ou RabbitMQ), une base de données (ClickHouse, Elasticsearch ou Apache Pinot) et une interface web (Grafana, Kibana ou Apache Superset).
Akvorado se différencie en deux points des solutions existantes :
- il est publié sous une licence libre (AGPLv3 license),
- il regroupe dans un seul « produit » la collecte et le stockage des flux ainsi qu’une interface web.
La solution de déploiement proposée s’appuie sur Docker Compose pour configurer Akvorado, Zookeeper, Kafka et ClickHouse. J’espère que cela permette de démarrer rapidement. Akvorado est suffisamment performant pour gérer 100 000 flux par seconde avec 64 Go de RAM et 24 vCPU. Avec 2 To de disque, vous pouvez espérer conserver les données pendant quelques années.
Je pense que la documentation est assez complète. Il semble redondant de répéter son contenu dans ce billet. Il y a également une section sur sa conception interne si vous êtes intéressé par la façon dont il est construit. J’ai également fait une présentation FRnOG plus tôt cette année et une présentation qui se concentre davantage sur la façon dont ClickHouse est utilisé. Je pense écrire des articles plus détaillés sur certains aspects d’Akvorado. Restez à l’écoute ! 📻
-
Bien que le collecteur pourrait écrire directement dans la base de données, la file d’attente est un tampon pour les flux si la base de données est indisponible. Elle permet également à un autre composant, tel qu’un système anti-DDoS, de traiter les flux. ↩︎