Ich habe docker-compose.yml erstellt, eine Sammlung der folgenden Container:
--Elasticsearch: Suchmaschine
Vielleicht möchten Sie in Ihrem Zuhause nach Textdaten suchen, oder?
Die Suchfunktion selbst kann von Elasticsearch bereitgestellt werden.
In vielen Fällen kommen Anfragen wie ... zusammen.
Wir haben eine Umgebung geschaffen, um die oben genannten Anforderungen zu erfüllen. [^ 1]
[^ 1]: Die Basisauthentifizierung ist möglicherweise etwas raffinierter, wenn Sie [Elasticsearch Security] verwenden (https://www.elastic.co/jp/blog/getting-started-with-elasticsearch-security). Es könnte möglich sein. Die unten vorgestellte Methode verwendet außerdem eine http-Verbindung und ist in Bezug auf die Sicherheit robust. Daher sollten Sie sie unter Bezugnahme auf diesen Artikel in https konvertieren: https://qiita.com/hsano/items/3b4fb372c4dec0cabc08
Sie finden sie alle in diesem Repository: https://github.com/chopstickexe/es-kibana-nginx-python
Die Hauptinhalte sind wie folgt:
--docker-compose.yml: Einstellungsdatei zum Starten und Verknüpfen von 4 Containern von Elasticsearch, Kibana, Nginx, Python3 --index.py: Beispielcode zum Registrieren (Indizieren) von Daten bei Elasticsearch in einem Python3-Container --data / sample.csv: In index.py registrierte Beispieldaten (Wie Sie sehen können, gibt es 4 persönliche Eindrücke von Nolans Arbeit)
Mit diesem Docker-Compose wird die folgende Umgebung gestartet:
[^ 2]: Verwenden Sie außerdem die Remote-Container-Erweiterung von VSCode, um eine Verbindung zu einem Container herzustellen und den Code zu bearbeiten / auszuführen. Ist auch möglich.
Die folgende Erklärung basiert auf Ubuntu 18.04. Wenn die Umgebung jedoch so ist, dass Docker-Compose und Apache HTTP-Server (genauer gesagt der Befehl htpasswd) ausgeführt werden können, funktioniert dies unter CentOS, Mac und Windows.
Bereiten Sie zunächst eine Umgebung vor, in der Docker-Compose installiert ist. Referenz
Installieren Sie zunächst apache2-utils (ein Paket, das einen HTTP-Server enthält).
$ sudo apt -y install apache2-utils
Klonen Sie das obige Repository chopstickexe / es-kibana-nginx-python.
Überlegen Sie sich dann eine ID und ein Passwort, um sich bei Kibana anzumelden (Suchbildschirm), die danach gestartet werden. (Im folgenden Beispiel melden Sie sich mit ID = admin an.)
Führen Sie den Befehl htpasswd wie folgt aus, um die Datei (Klonverzeichnis) / htpasswd / localhost
mit dem festgelegten Kennwort zu erstellen.
$ cd /path/to/repo
$ mkdir htpasswd && cd htpasswd
$ htpasswd -c localhost admin
#Geben Sie hier Ihr Passwort ein
Öffnen Sie docker-compose.yml im geklonten Verzeichnis und wählen Sie Kibana-Container VIRTUAL_HOST-Einstellungen Ändern Sie # L25) von "localhost" in die IP-Adresse des Hosts oder eines vollqualifizierten Domänennamens wie "foo.bar.com".
Port-Mapping des Nginx-Containers von 80: 80
bis Host frei Port: Wechseln Sie zu 80
.
Starten Sie den Container mit dem folgenden Docker-Compose-Befehl.
$ cd /path/to/this/directory
$ docker-compose up
Wenn Sie docker-compose.yml nicht geändert haben, über den Host-Browser "http: // localhost", Wenn Sie es ändern, öffnen Sie im Browser Ihrer Umgebung "http: // Hostadresse", melden Sie sich mit der festgelegten ID und dem Kennwort an und überprüfen Sie, ob der Kibana-Bildschirm angezeigt wird.
Kehren Sie zum Terminal des Hostcomputers zurück und geben Sie den Python-Container mit dem folgenden Befehl ein:
$ docker exec -it python bash
Erstellen Sie nach dem Aufrufen des Python-Containers eine virtuelle Umgebung (venv) mit dem folgenden Befehl und installieren Sie dort die erforderlichen Pakete:
# python -m venv .venv
# source .venv/bin/activate
(.venv) # pip install -r requirements.txt
Fügen Sie nach der Installation des Pakets die Beispieldaten mit dem folgenden Befehl zum nolan
-Index von Elasticsearch hinzu:
(.venv) # python index.py
Finished indexing
Das hier ausgeführte Python-Skript index.py ist hier. Unten wird der Datentyp der Spalte RELEASE_DATE auf "Datum" und das Format auf "JJJJMMTT" gesetzt.
es.indices.create(
index,
body={
"mappings": {
"properties": {"RELEASE_DATE": {"type": "date", "format": "yyyyMMdd"}}
}
},
)
Greifen Sie über Ihren Webbrowser erneut auf Kibana zu und stellen Sie Folgendes ein:
Menü auf der linken Seite des Bildschirms (Wenn es nicht angezeigt wird, klicken Sie auf die drei oben links) Wählen Sie Kibana> Indexmuster aus und geben Sie "nolan" als Indexmusternamen ein. Wenn der obige Python-Code problemlos ausgeführt werden kann, wird die Meldung "Ihr Indexmuster entspricht 1 Quelle" angezeigt. Klicken Sie auf Nächster Schritt:
Setzen Sie die Spalte RELEASE_DATE
in das Feld Zeit und klicken Sie auf Indexmuster erstellen.
Wählen Sie im Menü auf der linken Seite des Bildschirms die Option Entdecken, klicken Sie auf das Kalendersymbol in der Mitte des Bildschirms und stellen Sie den Zeitraum auf Relativ> vor 11 Jahren ein. (Da es eine ziemlich alte RELEASE_DATE-Überprüfung enthält, wird die Suche nur ausgeführt, wenn Sie dies tun.)
Bei korrekter Einstellung werden 4 Bewertungen wie folgt angezeigt:
Sie können auf diesem Discover-Bildschirm auch nach Bewertungen suchen, die "Tom Hardy" enthalten:
Informationen zur Verwendung von Kibana finden Sie auch hier: https://qiita.com/namutaka/items/b67290e75cbd74cd9a2f
Recommended Posts