Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Collect Log4j logs from Java applications to SLS

Dernière mise à jour :Aug 11, 2026

En configurant un Appender Log4j dans le fichier YAML de votre charge de travail, vous pouvez envoyer directement les journaux des applications Java de votre cluster vers un projet Simple Log Service (SLS). Cette méthode permet une collecte de journaux sans agent.

Log4j est un framework de journalisation open source maintenu par Apache et conçu pour les applications Java. Ses composants principaux incluent les Appenders (cibles de sortie), les Layouts (formats de sortie) et les Filters.

Prérequis

Étape 1 : Configurer l'Appender Log4j

Cette étape explique comment créer un projet SLS et un Logstore. Après avoir configuré l'Appender Log4j comme source de données pour le Logstore, votre application Java peut envoyer les journaux directement vers SLS.

Créez le projet SLS dans la même région que votre cluster. Lorsqu'ils se trouvent dans la même région, les données de journal sont transmises via le réseau interne, ce qui évite les coûts de bande passante publique et réduit la latence réseau.

Pour plus d'informations sur la facturation des projets SLS, consultez la section Présentation de la facturation .
  1. Créez un projet SLS.

    Cette section décrit uniquement les paramètres clés. Vous pouvez conserver les valeurs par défaut pour les autres paramètres. Pour plus d'informations, consultez la page Gérer un projet.

    • Region : sélectionnez la même région que votre cluster ACK. Dans cet exemple, Chine (Hangzhou) est sélectionné.

    • Project Name : saisissez un nom de projet. Cet exemple utilise k8s-log4j.

  2. Créez un Logstore dans le projet.

    Dans cet exemple, le Logstore Name est k8s-logstore. Vous pouvez conserver les valeurs par défaut pour les autres paramètres. Pour plus d'informations, consultez la page Créer un Logstore.

  3. Une fois le k8s-logstore créé, suivez les instructions à l'écran pour ingérer les données.

  4. Recherchez la carte d'ingestion Log4j, puis suivez les instructions à l'écran pour terminer l'ingestion.

    Cet exemple utilise la configuration par défaut. Vous pouvez ajuster les paramètres en fonction de votre cas d'utilisation spécifique. Dans l'assistant de source de données Log4j, effectuez les étapes suivantes : Select a Logstore, Configure Data Source et Configure Search & Analysis. Dans la zone d'instructions, cliquez sur le lien View Help pour obtenir des conseils détaillés, puis cliquez sur Next pour terminer la configuration.

Étape 2 : Intégrer Log4j

Cette étape déploie une application Spring Boot d'exemple pour vous montrer comment intégrer le plug-in Appender Log4j dans une application Java. Après l'intégration, le conteneur transmet la configuration SLS via la variable d'environnement JAVA_OPTS au démarrage. Log4j lit automatiquement ces paramètres et envoie les journaux vers SLS en temps réel.

  1. Téléchargez le fichier demo-deployment.yaml et configurez la variable d'environnement JAVA_OPTS.

    Le fichier source est disponible à l'adresse demo-deployment.

    Afficher le fichier d'exemple

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: log4j-appender-demo-spring-boot
      labels:
        app: log4j-appender
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: log4j-appender
      template:
        metadata:
          labels:
            app: log4j-appender
        spec:
          containers:
          - name: log4j-appender-demo-spring-boot
            image: registry.cn-hangzhou.aliyuncs.com/jaegertracing/log4j-appender-demo-spring-boot:0.0.2
            env:
              - name: JAVA_OPTS            #  Set the JAVA_OPTS environment variable.
                value: "-Dproject={your_project} -Dlogstore={your_logstore} -Dendpoint={your_endpoint} -Daccess_key_id={your_access_key_id} -Daccess_key={your_access_key_secret}"
            ports:
            - containerPort: 8080

    Paramètres JAVA_OPTS :

    • -Dproject : le nom de votre projet SLS. Dans cet exemple, k8s-log4j.

    • -Dlogstore : le nom de votre Logstore SLS. Dans cet exemple, k8s-logstore.

    • -Dendpoint : le point de terminaison de service de la région où se trouve votre projet. Pour plus d'informations, consultez la page Points de terminaison de service. Cet exemple utilise cn-hangzhou.log.aliyuncs.com.

    • -Daccess_key_id : remplacez par votre ID AccessKey.

    • -Daccess_key : remplacez par votre secret AccessKey.

  2. Créez le Deployment.

    kubectl create -f demo-deployment.yaml
  3. Téléchargez le fichier demo-service.yaml. Vous pouvez conserver la configuration par défaut.

    Le fichier source est disponible à l'adresse demo-Service.

    Afficher le fichier d'exemple

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: log4j-appender
      name: log4j-appender-demo-spring-boot-svc
      namespace: default
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
      selector:
        app: log4j-appender
      type: LoadBalancer
  4. Déployez le fichier demo-service.yaml pour créer le Service.

    kubectl create -f demo-service.yaml

Étape 3 : Tester la collecte des journaux

Après le déploiement du Deployment et du Service, vous pouvez vérifier que les journaux sont écrits dans SLS en accédant au service via son adresse IP externe (EXTERNAL-IP), ce qui génère des entrées de journal.

  1. Consultez l'EXTERNAL-IP du Service.

    kubectl get svc

    Résultat attendu :

    NAME                                  TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)          AGE
    log4j-appender-demo-spring-boot-svc   LoadBalancer   172.21.XX.XX   120.55.XXX.XXX   8080:30398/TCP   1h
  2. Accédez au point de terminaison /login pour générer une entrée de journal de test.

    Remplacez K8s_SERVICE_IP par EXTERNAL-IP.

    curl http://${K8S_SERVICE_IP}:8080/login?name=bruce
    Pour l'ensemble complet des API, consultez la page GitHub log4j-appender-demo .

Étape 4 : Consulter les journaux

Vous pouvez vous connecter à la console SLS pour interroger et analyser les journaux collectés.

  1. Connectez-vous à la console Simple Log Service.

  2. Dans la section Projects, cliquez sur le projet cible pour ouvrir sa page de détails.

  3. Cliquez sur l'icône 图标 située à droite du nom du Logstore et sélectionnez Query and Analysis pour afficher les journaux collectés depuis votre cluster.

    Les résultats de la requête affichent l'entrée de journal, où le champ message contient User login successfully, requestID=hIAgSGKGyA name=bruce. Cela confirme que les journaux de l'application ont été collectés avec succès vers SLS.

Documentation connexe