Kein Umlernen nötig, nutzen Sie Kibana zum Abfragen/Visualisierung von SLS-Daten

Autor: Jing Lei

Szenen

Dank der ES-Kompatibilität von SLS können Sie Kibana jetzt problemlos zum Abfragen und Visualisieren von SLS-Daten verwenden. Benutzer, die von ES zu SLS migrieren, können weiterhin ihre ursprünglichen Kibana-Nutzungsgewohnheiten beibehalten. Im Folgenden wird gezeigt, wie Sie über Kibana auf SLS zugreifen.

Anweisungen

Bereitstellungsarchitektur

Die blauen Teile hier sind Komponenten, die eine Client-Bereitstellung erfordern.

  • Kibana wird zur Visualisierung verwendet
  • Proxy wird verwendet, um Kibana-Anfragen zu unterscheiden und SLS-bezogene Anfragen an die ES-kompatible Schnittstelle von SLS weiterzuleiten.
  • Elasticsearch wird zum Speichern der Kibana-Meta verwendet

Moment, warum brauchen wir hier eine ES? 

Der Grund dafür ist, dass der Logstore von SLS keine Aktualisierungen unterstützt und viele Metaklassendaten nicht für SLS geeignet sind.

In Kibana müssen viele Metadaten gespeichert werden, z. B. die Diagrammkonfiguration von Kibana, die Indexmusterkonfiguration usw.

Daher müssen Sie eine ES-Instanz bereitstellen, die nur die Metadaten von Kibana speichert, sodass ihr Ressourcenverbrauch sehr gering ist.

Bereitstellungsprozess

Bereitstellen mit Docker-Compose

Verwandte Vorbereitungen

Nach der Installation von Docker und Docker Compose gelten die folgenden Schritte auch für Podman Compose.

Erstellen Sie verwandte Verzeichnisse

mkdir sls-kibaba # 创建一个新的目录
cd sls-kibaba # 进入
mkdir es_data # 创建一个目录用于放es的数据

Aufbau

Erstellen Sie die Datei docker-compose.yml im Verzeichnis sls-kibana.

Der Inhalt lautet wie folgt: (Die folgenden Markierungen sind die Orte, die hier geändert werden sollten. Bitte nehmen Sie Änderungen entsprechend der tatsächlichen Situation vor.)

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

Starten Sie den lokalen Kibana-Dienst:

docker compose up -d

Überprüfen Sie den Startstatus von Docker Compose:

docker compose ps

Besuchen Sie Kibana

Greifen Sie mit Ihrem Browser auf http://$ (Bereitstellungs- Kibaba-IP-Adresse}:5601 zu, geben Sie Ihr Konto und Ihr Passwort ein, um sich bei Kibana anzumelden.

Indexmuster konfigurieren

Wählen Sie Stack-Management:

Klicken Sie auf die Registerkarte „Indexmuster“. Es ist normal, dass in der Indexmusterliste keine Daten angezeigt werden. Der Protokollspeicher des Protokolldiensts ist den Indexmustern in Kibana zugeordnet und muss manuell erstellt werden. Klicken Sie im Eingabeaufforderungsfeld auf „Indexmuster für ausgeblendete Indexe oder Systemindizes erstellen“.

Auf der Seite „Indexmuster erstellen“ lautet das Format für „Name“ ${project}.${logstore}. Beachten Sie, dass das Verhältnis vollständig ausgefüllt werden muss und ein *-Abgleich nicht unterstützt wird.

Klicken Sie auf „Indexmuster erstellen“, um die Mustererstellung abzuschließen, und geben Sie dann „Discover“ ein, um die Daten abzufragen.

Logstore abfragen

KQL und Lucene können im Abfragefeld von Kibana ausgewählt werden, und beide ES-kompatiblen Schnittstellen von SLS werden unterstützt.

Einfache Host-Abfrage:

Es können einige komplexe Abfragen und Filter abgefragt werden.

Visuelle Diagramme

Kann Kibana zusätzlich zur Abfrage auch zur Visualisierung verwendet werden? Sicher! Wählen Sie Dashboard aus.

Klicken Sie nach der Eingabe auf Dashboard erstellen, um ein Diagramm zu erstellen.

Durch Festlegen der Felder und statistischen Methoden der horizontalen und vertikalen Achse können Sie ganz einfach das gewünschte Diagramm erstellen.

Das einfachste Histogramm ist beispielsweise ein Histogramm, das die Anzahl der angeforderten Besuche zählt, mit der Zeit auf der horizontalen Achse und der Anzahl der Datensätze auf der vertikalen Achse.

Jetzt möchte ich den Status jeder Spalte sehen. Als Status kann ich das Feld „Aufschlüsselung nach“ auswählen.

FAQ

1) Warum kann ich den Logstore auf SLS in Kibana nicht sehen?

Der Logstore auf SLS wird über das Indexmuster von Kibana abgefragt, und der Logstore auf SLS muss durch manuelles Erstellen eines Indexmusters erstellt werden.

2) Warum gibt es beim Erstellen eines Indexmusters in Kibana keine Eingabeaufforderung, wenn keine Eingabe erfolgt?

Das ist normal. Nach der Eingabe des richtigen ${project}.${logstore} auf der linken Seite (wobei ${project} und ${logstore} durch echte Werte ersetzt werden müssen) wird Folgendes angezeigt:

3) Unterstützt Kibana *-Platzhalter beim Erstellen eines Indexmusters?

Platzhalter werden nicht unterstützt und ${project}.${logstore} muss vollständig ausgefüllt werden, z. B. etl-dev.accesslog passend.

4) Warum gibt es beim Erstellen des Indexmusters von Logstore auf Kibana auf der rechten Seite keine Eingabeaufforderung?

Es gibt mehrere Möglichkeiten:

  1. Die ES-kompatible Adresse von SLS ist falsch. Bei der Konfiguration in kproxy lautet die Regel  https://${Projektname}.${slsEnpoint-Name}/es/ . 2. Die entsprechende accessKeyId und accessKeySerect haben keine Berechtigung zum Zugriff auf SLS Logstore (Leseberechtigung).
  2. 5) Ich habe mehrere SLS-Projekte, auf die ich in Kibana zugreifen möchte.

Ja, der Schlüssel liegt in der Konfiguration von kproxy. SLS_PROJECT, SLS_ENDPOINT, SLS_ACCESS_KEY_ID, SLS_ACCESS_KEY_SECRET sind die Variablennamen, die sich auf das erste Projekt beziehen. Ab dem zweiten Projekt müssen die relevanten Variablennamen mit numerischen Suffixen hinzugefügt werden, z. B. SLS_PROJECT2, SLS_ENDPOINT2, SLS_ACCESS_KEY_ID2, SLS_ACCESS_KEY_SECRET2. Wenn der AccessKey eines nachfolgenden Projekts mit dem ersten Projekt übereinstimmt, kann auf die Konfiguration des dem Projekt entsprechenden AccessKeys verzichtet werden.

Angenommen, dass ein anderes Projekt von Kibaba überprüft werden soll, dann als zweiter 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一样可以不加

Zusammenfassung

In diesem Artikel wird gezeigt, wie Sie mit Kibana eine Verbindung zur SLS ES-kompatiblen Schnittstelle für Abfragen und Analysen herstellen. Die Abfrage- und Visualisierungsfunktionen von Kibana können normal angeschlossen und verwendet werden. Geeignet für die folgenden zwei Situationen:

  • Wenn Ihre bisherige Nutzungsgewohnheit Kibana ist und die Protokolle bereits in Alibaba Cloud SLS vorhanden sind, können Sie diese Lösung zum Herstellen einer Verbindung verwenden.
  • Wenn Sie derzeit die Standard-ELK-Lösung verwenden, aber die Wartungsarbeiten oder Optimierungen bei der Verwendung von ES satt haben, möchten Sie vielleicht die Alibaba Cloud SLS-Lösung ausprobieren (C++-Bottom-Layer, serverlos, kostengünstig, ES-kompatibel).

Wir freuen uns auf Ihren Einsatz.

Referenzdokumentation:

Ich beschloss , auf Open-Source -Industriesoftware zu verzichten – OGG 1.0 wurde veröffentlicht, das Team von Ubuntu 24.04 LTS wurde offiziell entlassen ". Fedora Linux 40 wurde offiziell veröffentlicht. Ein bekanntes Spieleunternehmen veröffentlichte neue Vorschriften: Hochzeitsgeschenke von Mitarbeitern dürfen 100.000 Yuan nicht überschreiten. China Unicom veröffentlicht die weltweit erste chinesische Llama3 8B-Version des Open-Source-Modells. Pinduoduo wird zur Entschädigung verurteilt 5 Millionen Yuan für unlauteren Wettbewerb. Inländische Cloud-Eingabemethode – nur Huawei hat keine Sicherheitsprobleme beim Hochladen von Cloud-Daten
{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/u/3874284/blog/11059549
Empfohlen
Rangfolge