En brefTransférez les logs AWS CloudWatch vers ClickStack à l’aide du receiver CloudWatch de l’OpenTelemetry Collector. Prend en charge les groupes de logs nommés et l’autodécouverte. Inclut un jeu de données de démonstration et un tableau de bord préconfiguré.
Vue d’ensemble
- Analyser les logs avec les métriques et les traces sur une plateforme unifiée
- Interroger les logs via l’interface SQL de ClickHouse
- Réduire les coûts en archivant les logs ou en diminuant la durée de rétention dans CloudWatch
Intégration avec des CloudWatch log groups existants
Prérequis
- Instance ClickStack en cours d’exécution
- Compte AWS avec des groupes de journaux CloudWatch
- Identifiants AWS disposant des autorisations IAM appropriées
Contrairement aux intégrations de logs basées sur des fichiers (nginx, Redis), CloudWatch nécessite l’exécution d’un OpenTelemetry Collector distinct qui interroge l’API CloudWatch. Ce collecteur ne peut pas s’exécuter dans l’image tout-en-un de ClickStack, car il nécessite des identifiants AWS et un accès à l’API.
Obtenir une API key ClickStack
L’OpenTelemetry Collector envoie les données vers le point de terminaison OTLP de ClickStack, qui nécessite une authentification.- Ouvrez HyperDX à l’URL de votre instance ClickStack (par exemple, http://localhost:8080)
- Créez un compte ou connectez-vous si nécessaire
- Accédez à Team Settings → API Keys
- Copiez votre Ingestion API Key
Configurer les identifiants AWS
Exportez vos identifiants AWS sous forme de variables d’environnement. La méthode dépend de votre type d’authentification :Pour les utilisateurs d’AWS SSO (recommandé pour la plupart des organisations) :YOUR_PROFILE_NAME par le nom de votre profil AWS SSO (par exemple, AccountAdministrators-123456789).Pour les utilisateurs IAM disposant d’identifiants de longue durée :YOUR_ACCOUNT_ID par l’identifiant de votre compte AWS.Configurer le CloudWatch receiver
Créez un fichierotel-collector-config.yaml avec la configuration du CloudWatch receiver.Découvrir les groupes de logs disponibles dans votre compte
Découvrir les groupes de logs disponibles dans votre compte
Avant de modifier la configuration, listez les groupes de logs présents dans votre région afin de pouvoir choisir de vrais noms (et confirmer que la région est correcte) :Exemple de sortie :Utilisez directement les noms de cette liste dans le bloc Sinon, si les groupes souhaités partagent un préfixe commun (ici
groups.named de l’exemple 1 ci-dessous. Pour le compte ci-dessus, la section named-groups deviendrait :/aws-glue/), utilisez l’exemple 2 avec prefix: /aws-glue/ au lieu de les lister individuellement./aws/lambda :region: région AWS où se trouvent vos groupes de logspoll_interval: fréquence de vérification des nouveaux logs (par ex. :1m,5m)max_events_per_request: nombre maximal d’événements de log à récupérer par requêtegroups.autodiscover.limit: nombre maximal de groupes de logs à découvrirgroups.autodiscover.prefix: filtrer les groupes de logs par préfixegroups.named: lister explicitement les noms des groupes de logs à collecter
${CLICKSTACK_API_KEY}→ utilise la variable d’environnement que vous avez définie précédemmenthttp://localhost:4318→ votre endpoint ClickStack (utilisez votre hôte ClickStack si vous l’exécutez à distance)us-east-1→ votre région AWS- Noms/préfixes des groupes de logs → vos groupes de logs CloudWatch réels
Le CloudWatch receiver ne récupère les logs que sur des fenêtres de temps récentes (en fonction de
poll_interval). Lors du premier démarrage, il commence à l’heure actuelle. Les logs historiques ne sont pas récupérés par défaut.Démarrer le collector
Créez un fichierdocker-compose.yaml :Vérifier les logs dans HyperDX
Une fois le collector en cours d’exécution :- Ouvrez HyperDX à l’adresse http://localhost:8080 (ou à l’URL de votre instance ClickStack)
- Accédez à la vue Logs
- Attendez 1 à 2 minutes que les logs s’affichent (selon votre intervalle d’interrogation)
- Recherchez les logs provenant de vos groupes de logs CloudWatch
ResourceAttributes['aws.region']: votre région AWS (par ex. : “us-east-1”)ResourceAttributes['cloudwatch.log.group.name']: le nom du groupe de logs CloudWatchResourceAttributes['cloudwatch.log.stream']: le nom du flux de logsBody: le contenu réel du message de log
Jeu de données de démonstration
Télécharger le jeu de données d’exemple
- Fonctions Lambda : traitement des paiements, gestion des commandes, authentification
- Services ECS : passerelle d’API avec limitation de débit et délais d’expiration
- Tâches en arrière-plan : traitement par lots avec mécanismes de nouvelle tentative
Démarrer ClickStack
Si ClickStack n’est pas déjà en cours d’exécution :Importer le jeu de données de démonstration
Vérifier les données de démonstration
Une fois l’import terminé :- Ouvrez HyperDX à l’adresse http://localhost:8080 et connectez-vous (créez un compte si nécessaire)
- Accédez à la vue Logs
- Définissez l’intervalle de temps sur 2025-12-07 00:00:00 - 2025-12-08 00:00:00 (UTC)
- Recherchez
cloudwatch-demoou appliquez le filtreLogAttributes['source'] = 'cloudwatch-demo'
Affichage du fuseau horaireHyperDX affiche les timestamps selon le fuseau horaire local de votre navigateur. Les données de démonstration couvrent 2025-12-07 00:00:00 - 2025-12-08 00:00:00 (UTC). Définissez votre intervalle de temps sur 2025-12-06 00:00:00 - 2025-12-09 00:00:00 pour être sûr de voir les logs de démonstration, quel que soit votre emplacement. Une fois les logs affichés, vous pourrez réduire l’intervalle à 24 heures pour obtenir des visualisations plus claires.
Tableaux de bord et visualisations
la configuration du tableau de bord
Importer le tableau de bord
- Ouvrez HyperDX et accédez à la section Dashboards
- Cliquez sur Import Dashboard dans le coin supérieur droit, sous le menu à points de suspension
- Téléversez le fichier
cloudwatch-logs-dashboard.json, puis cliquez sur Finish Import
Afficher le tableau de bord
Le tableau de bord sera créé avec toutes les visualisations déjà configurées :Pour le jeu de données de démonstration, définissez la plage horaire sur 2025-12-07 00:00:00 - 2025-12-08 00:00:00 (UTC) (à ajuster selon votre fuseau horaire local). Par défaut, aucune plage horaire n’est définie dans le tableau de bord importé.
Dépannage
Aucun log ne s’affiche dans HyperDX
logs:DescribeLogGroups et logs:FilterLogEvents.
Vérifiez les logs du collector pour repérer d’éventuelles erreurs :
The security token included in the request is invalid: les identifiants sont invalides ou ont expiré. Pour les identifiants temporaires (SSO), assurez-vous queAWS_SESSION_TOKENest défini.operation error CloudWatch Logs: FilterLogEvents, AccessDeniedException: les permissions IAM sont insuffisantesfailed to refresh cached credentials, no EC2 IMDS role found: les variables d’environnement des identifiants AWS ne sont pas définiesconnection refused: l’endpoint ClickStack est inaccessible
Vous ne voyez que d’anciens logs ou il manque des logs récents
Jeton de sécurité invalide / identifiants expirés
Latence élevée ou absence de logs récents
poll_interval est de 1 minute. Pour obtenir des logs en temps quasi réel, réduisez-la :
Collector utilisant trop de mémoire
Étapes suivantes
- Configurez des alertes pour les événements critiques (échecs de connexion, pics d’erreurs)
- Réduisez les coûts de CloudWatch en ajustant les durées de rétention ou en archivant les données dans S3, maintenant que vous avez les logs dans ClickStack
- Filtrez les groupes de logs trop bruyants en les supprimant de la configuration du collector afin de réduire le volume d’ingestion