InfluxDB Datenbankabfrage

jokakilla

Lt. Junior Grade
Registriert
Dez. 2007
Beiträge
308
Hi zusammen,
ich habe zu Hause einen Server mit verschiedenen Diensten laufen die aus dem Netz über einen Nginx Proxy erreichbar sind.
Ich würde nun gerne wissen wieviele Zugriffe aus dem Netz auf meinen Server kommen und vor allem woher.

Für das Monitoring habe ich Grafana laufen. Die Nginx Logs werden von einem Tool analysiert welches die IPs und das zur IP gehörende Länderkürzel in eine InfluxDB schreibt. Ich habe jetzt noch Schwierigkeiten mit der Datenbankabfrage aus Grafana auf die InfluxDB.

Folgende Abfrage funktioniert und liefert sehr viele Ergebnisse: SELECT * FROM geodata

Allerdings liefert SELECT country_code FROM geodata gar kein Ergebnis obwohl country_code eine gültige Spalte ist.

select * from geodata
name: geodata
time count country_code geohash host
---- ----- ------------ ------- ----
1563740749826520536 1 DE u1r3rvhfwtqc 4eef9e90ce58
.....

select country_code from geodata

Hat jemand eine Idee?
Ergänzung ()

Was im übrigen auch Funktioniert ist folgende Abfrage für die Tabellarische Darstellung der Länder inkl. Zugriffszahlen: SELECT sum("count") FROM "geodata" GROUP BY "country_code"

Aber für das Widget mit einer OpenStreetMap Karte brauche ich noch andere Abfragen. Irgendwie verhalten sich die nicht wie ich es von SQL kenne. :(
 
Für Web Analytics empfehle ich dir mal https://matomo.org/ anzuschauen. Das kann ebenfalls die Logs auswerten.
 
Wie ist der Feldtyp von country_code definiert? Ich vermute varchar(2) oder anderen String-Typ. Wenn mehr als 2 Zeichen möglich sind, prüfe bitte mal byteweise die Feldinhalte dieser Spalte per cast oder Typumwandlung. Wenn Schmutzzeichen in Form von nicht druckbaren Zeichen enthalten sind (CR, Tab, LF etc.), dann kann es bei der Ausgabe per Select zum Verweigerung kommen.
 
Ich bin bei InfluxDB noch neu. Die select Syntax scheint ähnlich zu SQL aber das Datenbank Konzept ein ganz anderes zu sein. Es gibt offenbar in einer Tabelle tags und keys.

Code:
[QUOTE] show tag keys[/QUOTE]
name: geodata
tagKey
------
country_code
geohash
host

Code:
[QUOTE] show field keys[/QUOTE]
name: geodata
fieldKey fieldType
-------- ---------
count    integer

In der Doku habe ich dann folgendes gefunden
The SELECT clause must specify at least one field when it includes a tag.

Daher funktioniert ein
select count,"country_code" from geodata
aber kein
select "country_code" from geodata

Fazit: Geht jetzt ;)

Unbenannt.png
 
Zurück
Oben