Auteur : Jing Lei
Scènes
Désormais, grâce à la compatibilité ES de SLS, vous pouvez facilement utiliser Kibana pour interroger et visualiser les données SLS. Les utilisateurs qui migrent d'ES vers SLS peuvent continuer à conserver leurs habitudes d'utilisation initiales de Kibana. Ce qui suit montre comment accéder à SLS via Kibana.
Instructions
Architecture de déploiement
Les parties bleues ici sont des composants qui nécessitent un déploiement client.
- Kibana est utilisé pour la visualisation
- Le proxy est utilisé pour distinguer les requêtes Kibana et transmettre celles liées à SLS à l'interface compatible ES de SLS.
- Elasticsearch est utilisé pour stocker les méta de Kibana
Attendez, pourquoi avons-nous besoin d'un ES ici ?
La raison en est que le Logstore de SLS ne prend pas en charge les mises à jour et que de nombreuses données de classe Meta ne conviennent pas à SLS.
Kibana a beaucoup de métadonnées à stocker, telles que la configuration des graphiques de Kibana, la configuration du modèle d'indexation, etc.
Par conséquent, vous devez déployer une instance ES. Cette instance ES stockera uniquement les métadonnées de Kibana, son utilisation des ressources est donc très faible.
Processus de déploiement
Déployer à l'aide de docker-compose
Préparations associées
Après avoir installé Docker et Docker Compose, les étapes suivantes s'appliquent également à Podman Compose.
Créer des répertoires associés
mkdir sls-kibaba # 创建一个新的目录
cd sls-kibaba # 进入
mkdir es_data # 创建一个目录用于放es的数据
Configuration
Créez le fichier docker-compose.yml dans le répertoire sls-kibana.
Le contenu est le suivant : (Les marques suivantes sont les endroits qui doivent être modifiés ici. Veuillez apporter des modifications en fonction de la situation réelle)
version: '3'
services:
es:
image: elasticsearch:7.17.3
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms2G -Xmx2G"
- ELASTIC_USERNAME=elastic
- ELASTIC_PASSWORD=ES密码 # 此处请修改
- xpack.security.enabled=true
volumes:
- ./data:/usr/share/elasticsearch/data
networks:
- es717net
kproxy:
image: sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:1.9d
depends_on:
- es
environment:
- ES_ENDPOINT=es:9200
- SLS_ENDPOINT=https://etl-dev.cn-huhehaote.log.aliyuncs.com/es/ # 此处请修改,规则为 https://${project名}.${slsEnpoint名}/es/
- SLS_PROJECT=etl-dev # 此处请修改
- SLS_ACCESS_KEY_ID=ALIYUN_ACCESS_KEY_ID # 此处请修改, 确保有读logstore的权限
- SLS_ACCESS_KEY_SECRET=ALIYUN_ACCESS_KEY_SECRET # 此处请修改为真实accessKeySecret
networks:
- es717net
kibana:
image: kibana:7.17.3
depends_on:
- kproxy
environment:
- ELASTICSEARCH_HOSTS=http://kproxy:9201
- ELASTICSEARCH_USERNAME=elastic
- ELASTICSEARCH_PASSWORD=ES密码 # 此处请修改(跟前面设置的ES密码相同)
- XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED=true
ports:
- "5601:5601"
networks:
- es717net
networks:
es717net:
ipam:
driver: default
Démarrez le service Kibana local :
docker compose up -d
Vérifiez l'état de démarrage de Docker Compose :
docker compose ps
Visitez Kibana
Accédez à http://$ ( adresse IP de déploiement Kibaba}:5601 avec votre navigateur , saisissez votre compte et votre mot de passe pour vous connecter à Kibana.
Configurer le modèle d'index
Sélectionnez Gestion de la pile :
Cliquez sur l'onglet Modèle d'index. Il est normal de ne pas voir les données dans la liste des modèles d'index. Le magasin de journaux du service de journalisation est mappé aux modèles d'index dans Kibana et doit être créé manuellement. Cliquez sur Créer un modèle d'index par rapport aux index masqués ou système dans la zone d'invite.
Sur la page Créer un modèle d'index, le format du nom est ${project}.${logstore}. Notez que le rapport doit être entièrement renseigné et que la correspondance * n'est pas prise en charge.
Cliquez sur Créer un modèle d'index pour terminer la création du modèle, puis entrez Découvrir pour interroger les données.
Magasin de journaux de requêtes
KQL et Lucene peuvent être sélectionnés dans la zone de requête de Kibana, et les deux interfaces compatibles ES de SLS sont prises en charge.
Requête d'hôte simple :
Certaines requêtes et filtres complexes peuvent être interrogés.
Graphiques visuels
Ainsi, en plus des requêtes, Kibana peut-il être utilisé pour la visualisation ? bien sûr! Sélectionnez Tableau de bord.
Après avoir entré, cliquez sur Créer un tableau de bord pour créer un graphique.
En définissant les champs et les méthodes statistiques de l'axe horizontal et de l'axe vertical, vous pouvez facilement créer le graphique souhaité.
Par exemple, l'histogramme le plus simple est un histogramme qui compte le nombre de visites demandées, avec le temps sur l'axe horizontal et le nombre d'enregistrements sur l'axe vertical.
Maintenant, je veux voir l'état de chaque colonne, je peux sélectionner le champ Répartir par comme état.
FAQ
1) Pourquoi ne puis-je pas voir le Logstore sur SLS dans Kibana ?
Le Logstore sur SLS est interrogé via le modèle d'index de Kibana, et le Logstore sur SLS doit être créé en créant manuellement un modèle d'index.
2) Lors de la création d'un modèle d'index sur Kibana, pourquoi n'y a-t-il aucune invite lorsqu'aucune entrée n'est effectuée ?
C'est normal. Après avoir entré le bon ${project}.${logstore} sur la gauche (où ${project} et ${logstore} doivent être remplacés par des valeurs réelles), ce qui suit s'affichera :
3) Kibana prend-il en charge les caractères génériques * lors de la création d'un modèle d'index ?
Les caractères génériques ne sont pas pris en charge et ${project}.${logstore} doit être entièrement renseigné, comme etl-dev.accesslog pour correspondre.
4) Pourquoi n'y a-t-il pas d'invite sur le côté droit lors de la création du modèle d'indexation de Logstore sur Kibana ?
Il existe plusieurs possibilités :
- L'adresse compatible ES de SLS est incorrecte Lorsqu'elle est configurée dans kproxy, la règle est https://${nom du projet}.${slsEnpoint name}/es/. Faites attention au suffixe /es/. 2. Les accessKeyId et accessKeySerect correspondants n'ont pas l'autorisation d'accéder à SLS Logstore (autorisation de lecture).
- 5) J'ai plusieurs projets SLS auxquels je souhaite accéder sur Kibana. Est-ce possible ?
Oui, la clé réside dans la configuration de kproxy. SLS_PROJECT, SLS_ENDPOINT, SLS_ACCESS_KEY_ID, SLS_ACCESS_KEY_SECRET sont les noms de variables liés au premier projet. À partir du deuxième projet, les noms de variables pertinents doivent être ajoutés avec des suffixes numériques, tels que SLS_PROJECT2, SLS_ENDPOINT2, SLS_ACCESS_KEY_ID2, SLS_ACCESS_KEY_SECRET2. Si l'AccessKey d'un Projet ultérieur est la même que le premier Projet, la configuration de l'AccessKey correspondant au Projet peut être omise.
Par exemple, en supposant qu'un autre projet doit être vérifié par Kibaba, alors comme deuxième kproxy :
- SLS_ENDPOINT2=https://etl-dev2.cn-huhehaote.log.aliyuncs.com/es/
- SLS_PROJECT2=etl-dev2
- SLS_ACCESS_KEY_ID2=etl-dev2对应的accessKeyId #如果和SLS_ACCESS_KEY_ID2一样可以不加
- SLS_ACCESS_KEY_SECRET2=etl-dev2对应的accessKeyKey #如果和SLS_ACCESS_KEY_ID2一样可以不加
résumé
Cet article montre comment utiliser Kibana pour se connecter à l'interface compatible SLS ES à des fins de requête et d'analyse. Les fonctionnalités de requête et de visualisation de Kibana peuvent être connectées et utilisées normalement. Convient aux deux situations suivantes :
- Si votre habitude d'utilisation précédente est Kibana et que les journaux existent déjà sur Alibaba Cloud SLS, vous pouvez utiliser cette solution pour vous connecter.
- Si vous utilisez actuellement la solution ELK standard mais que vous en avez assez des travaux de maintenance ou de réglage lors de l'utilisation d'ES, vous souhaiterez peut-être essayer la solution Alibaba Cloud SLS (couche inférieure c++, sans serveur, faible coût, compatible ES).
Dans l'attente de votre utilisation.
Documentation de référence :
-
Introduction à ES compatible SLS
-
Utilisez Kibana pour vous connecter à l'interface compatible ES https://help.aliyun.com/zh/sls/user-guide/use-kibana-to-access-the-elasticsearch-compatible-api-of-log-service?spm =a2c4g.11186623.0.0.27bc54e3bgGvsa#cdb8c7a157t0v