Zum Inhalt der Seite gehen

friendica - Link zum Originalbeitrag

Hi @Andreas vom Zwenkauer See und @Rainer "friendica" Sokoll darf ich euch als Profis in Sachen #Zabbix mal was fragen? Der @Michael Vogel hat doch schon vor längerem bei #Friendica diese API eingebaut um mit dieser eine Instanz monitoren zu können:

//              Key für Zabbix
//                'stats_key' => '1234supergeheim',

Ich würde das gerne nutzen, um meine Instanz zu überwachen. Nur habe ich keinen Plan, wie ich in Zabbix selber diese API nutze, um mir ein Dashboard daraus basteln zu können.

Habt ihr da vielleicht Tipps und Tricks?

Gerne darf diese Frage auch jeder andere Zabbix Profi beantworten. 😉
@Zabbix Forum

teilten dies erneut

Als Antwort auf Tuxi ⁂

Upps, da ist was an mir vorbei gegangen. Das Micha da was eingebaut hat, habe ich gar nicht mitbekommen (oder schon wieder vergessen 😉 )
Ich überwache Webseiten so wie hier beschrieben:

zabbix.com/documentation/curre…

Zabbix Forum hat dies geteilt.

Als Antwort auf Andreas vom Zwenkauer See

Der Endpunkt in Friendica gibt ein JSON zurück, dass man per Zabbix "irgendwie" in Variablen speichern kann, die man wiederum mit Grafana wunderbar grafisch darstellen kann:

Zabbix Forum hat dies geteilt.

Als Antwort auf Michael 🇺🇦

Du Micha, kannst du mir mal was zu der API sagen ? Das ist komplett an mir vorbei gegangen. Vielleicht kann ma da auch gleich ein Zabbix-Modul draus machen ?

Zabbix Forum hat dies geteilt.

Als Antwort auf Andreas vom Zwenkauer See

@Andreas vom Zwenkauer See
Also wenn Du da was machst und einen Tester benötigen würdest, ich würde da u. U. jemanden kennen. 😉

Zabbix Forum hat dies geteilt.

Als Antwort auf Michael 🇺🇦

Ach, siehe da - ich muß mich schon mal damit beschäftigt haben. Der Key war schon gesetzt.

Zabbix Forum hat dies geteilt.

Als Antwort auf Andreas vom Zwenkauer See

Wenn Du Fragen zu den Variablen hast, sag Bescheid. Eine umfangreichere Doku wäre natürlich nicht schlecht.

Zabbix Forum hat dies geteilt.

Als Antwort auf Tuxi ⁂

Kannte ich auch nicht. Allerdings bin ich auf Docker, da wird die Config aus Umgebungsvariablen gebaut, und auf den ersten Blick finde ih keine für stats_key.

Zabbix Forum hat dies geteilt.

Als Antwort auf Rainer "friendica" Sokoll

@Rainer "friendica" Sokoll
Keine Ahnung von Docker, von daher vielleicht eine dumme Frage: Nutzt Du keine /config/local.config.php, um bei Dir bestimmte Dinge zu konfigurieren?

@Michael Vogel @Andreas vom Zwenkauer See

Zabbix Forum hat dies geteilt.

Als Antwort auf Tuxi ⁂

Kann man bearbeiten, ja, aber die kommt aus dem Image, was bedeutet, daß alle Änderungen beim nächsten Start des Containers weg sind.
Die Konfiguration wird über docker-compose.yaml gemacht.

hub.docker.com/_/friendica Abschnitt "Possible Environment Variables"

Zabbix Forum hat dies geteilt.

Als Antwort auf Tuxi ⁂

Okay, ich bin jetzt einen Schritt weiter. Habe für meine Instanz ein Item vom Typ "HTTP agent" angelegt. Dieser scheint auch die Werte für worker, jpm usw. abzurufen.
Wo ich jetzt allerdings grandios scheitere, ist das Erstellen von einzelnen "Kacheln", die mir die einzelnen Werte darstellen. Also so wie es im Screenshot vom Michael ersichtlich ist.

@Michael Vogel @Andreas vom Zwenkauer See @Rainer "friendica" Sokoll

Zabbix Forum hat dies geteilt.

Als Antwort auf Andreas vom Zwenkauer See

@Andreas vom Zwenkauer See
Das ist mir klar, dass ich Zabbix habe und Michael Grafana. 😀
Deswegen frage ich ja auch aktuell Doktore Google, um mir irgendwie Grafiken bei meinem Zabbix ausspucken zu lassen. Aber ich vermute, dass ich den Wald vor lauter Bäume nicht sehe... 😬

@Michael Vogel @Rainer "friendica" Sokoll

Zabbix Forum hat dies geteilt.

Als Antwort auf Tuxi ⁂

Grafiken mußt Du beim Host Item anlegen.
Ad-hoc-Grafiken gibt es unter Latest Data, die müssen nicht angelegt werden, sondern werden zur Laufzeit erzeugt.

Zabbix Forum hat dies geteilt.

Als Antwort auf Tuxi ⁂

I think you are pulling the weak end in this pipade, the only thing that is cool and graphana can't do is display itemi with images in base 64. For me, Zabbix should not invest time and money in displaying, but should lean on Grafana, and provide there development tools for better integration

Zabbix Forum hat dies geteilt.

Als Antwort auf Tuxi ⁂

Die Daten werden in Zabbix geholt und in Grafana dargestellt. Aber da ich den Server nicht betreibe, habe ich leider auch nur geringes Wissen. Für neue Parameter repliziere ich einfach, was ich bereits vorfinde.

Zabbix Forum hat dies geteilt.

Als Antwort auf Tuxi ⁂

@Tuxi ⁂ Die Grafik wird doch automatisch erstellt wenn du ein Item hast welches Daten sammelt.
Überwachung --> aktuelle Daten --> Host wählen --> item wählen --> Diagramm

Wenn du das auf der Startseite/Übersichtsseite haben willst:
Übersichtsseite anpassen --> Bereich mit der Maus ziehen --> Werte eingeben --> Fertsch

Zabbix Forum hat dies geteilt.

Als Antwort auf Andreas vom Zwenkauer See

friendica - Link zum Originalbeitrag
Tuxi ⁂
 — (52.5046782 13.4490212)

@Andreas vom Zwenkauer See
Edit: War nur blind.

Das schaut bei mir so aus:

Und wenn ich dort auf History gehe:

Aber keine Grafiken.

Dieser Beitrag wurde bearbeitet. (2 Monate her)

Zabbix Forum hat dies geteilt.

Als Antwort auf Tuxi ⁂

Ich bekomme:
{
  "cron": {
    "lastExecution": {
      "datetime": "2025-02-11T12:15:02.000Z",
      "timestamp": 1739276102
    }
  },
  "worker": {
    "lastExecution": {
      "datetime": "2025-02-11T12:25:03.000Z",
      "timestamp": 1739276703
    },
    "jpm": {
      "1": 1,
      "3": 0,
      "5": 0
    },
    "active": {
      "0": 1,
      "10": 0,
      "20": 0,
      "30": 0,
      "40": 0,
      "50": 0,
      "total": 0
    },
    "deferred": {
      "1": 0,
      "2": 0,
      "3": 0,
      "4": 0,
      "5": 0,
      "6": 3,
      "7": 0,
      "8": 0,
      "9": 0,
      "10": 2,
      "11": 0,
      "12": 1,
      "13": 0,
      "14": 0,
      "15": 11,
      "total": 17
    },
    "total": {
      "0": 0,
      "10": 0,
      "20": 0,
      "30": 0,
      "40": 0,
      "50": 0,
      "total": 0
    }
  },
  "jetstream": {
    "drift": 0,
    "did_count": 0,
    "did_limit": 0,
    "messages": 0,
    "timestamp": 0
  },
  "users": {
    "total": 0,
    "activeWeek": 0,
    "activeMonth": 0,
    "activeHalfyear": 0,
    "pending": 0
  },
  "posts": {
    "inbound": {
      "posts": 18266,
      "comments": 18126
    },
    "outbound": {
      "posts": 130,
      "comments": 303
    }
  },
  "packets": {
    "inbound": {
      "apub": 3271976,
      "dfrn": 2062,
      "dspr": 23724,
      "stat": 0,
      "feed": 0,
      "mail": 0,
      "bsky": 32071
    },
    "outbound": {
      "apub": 19406,
      "dfrn": 185,
      "dspr": 8409,
      "stat": 0,
      "feed": 431,
      "mail": 0,
      "bsky": 0
    }
  },
  "reports": {
    "newest": {
      "datetime": "",
      "timestamp": 0
    },
    "open": 0,
    "closed": 0
  },
  "update": {
    "available": null,
    "available_version": null,
    "status": 0,
    "db_status": 1
  },
  "server": {
    "version": "2024.12",
    "php": {
      "version": "8.2.27",
      "upload_max_filesize": "512M",
      "post_max_size": "512M",
      "memory_limit": "512M"
    },
    "database": {
      "max_allowed_packet": "16777216"
    }
  }
}

Jetzt müßte man nur noch wissen, was die einzelnen Keys bedeuten, bei manchen ist es ja klar, bei vielen nicht.

Zabbix Forum hat dies geteilt.

Als Antwort auf Rainer "friendica" Sokoll

Welche Bereiche möchtest Du wissen? Alles unter "worker" betrifft die Workerqueue, "inbound" und "outbound" sind der ein- und ausgehende Verkehr. Und "jetstream" ist der optionale Daemon, der die Integration mit Bluesky verbessert.

Zabbix Forum hat dies geteilt.

Als Antwort auf Tuxi ⁂

Ich habe mal die meiner Meinung wichtigen Werte als Variablen raus geholt. Am Anfang ein
DATEN=$(curl https://friendica.a-zwenkau.de/stats?key=GEHEIM)

und hier sind dann die Werte:

LAST_CRON=$( echo $DATEN | cut -d ":" -f7 | cut -d '"' -f1 | cut -d '}' -f1 )

LAST_WORKER=$( echo $DATEN | cut -d ":" -f13 | cut -d '"' -f1 | cut -d '}' -f1 )

USERS_TOTAL=$( echo $DATEN | cut -d ":" -f58 | cut -d ',' -f1)

USERS_WEEK=$( echo $DATEN | cut -d ":" -f59 | cut -d ',' -f1)

USERS_MONTH=$( echo $DATEN | cut -d ":" -f60 | cut -d ',' -f1)

USERS_HALFYEAR=$( echo $DATEN | cut -d ":" -f61 | cut -d ',' -f1)

UPDATE_AVAI=$( echo $DATEN | cut -d ":" -f96 | cut -d ',' -f1)

UPDATE_AVAI_VERSION=$( echo $DATEN | cut -d ":" -f97 | cut -d '"' -f2)

UPDATE_STATUS=$( echo $DATEN | cut -d ":" -f98 | cut -d ',' -f1)

UPDATE_DBSTATUS=$( echo $DATEN | cut -d ":" -f99 | cut -d ',' -f1 | cut -d "}" -f1 )

SERVER_VERS=$( echo $DATEN | cut -d ":" -f101 | cut -d '"' -f2 )

PHP_VERS=$( echo $DATEN | cut -d ":" -f103 | cut -d '"' -f2 )

UPLOAD_MAX_FILESIZE=$( echo $DATEN | cut -d ":" -f104 | cut -d '"' -f2 )

POST_MAX_SIZE=$( echo $DATEN | cut -d ":" -f105 | cut -d '"' -f2 )

MEMORY_LIMIT=$( echo $DATEN | cut -d ":" -f106 | cut -d '"' -f2 )

DB_MAX_ALLOWED_PACKET=$( echo $DATEN | cut -d ":" -f108 | cut -d '"' -f2 )

Um damit was zu machen bin ich noch nicht gekommen.

Zabbix Forum hat dies geteilt.

Als Antwort auf Andreas vom Zwenkauer See

Ich finde es spannend, dass wir beide sehr unterschiedliche Ansichten von wichtigen Daten haben 😀 Bei mir sind es die Leistungsdaten wie die Worker pro Minute, die Aufträge in der Workerqueue, wann der Cron, bzw. der Worker zuletzt gelaufen sind etc., da diese Werte auf Performanceprobleme hinweisen können, wenn sich z.B. die Anzahl der ausstehenden Aufträge stetig erhöht und so.

Zabbix Forum hat dies geteilt.

Als Antwort auf Michael 🇺🇦

Du hast ja Recht; das sind wichtige Daten. Aber ich verstehe die ganzen Zahlenreihen derzeit noch nicht 😉

Zabbix Forum hat dies geteilt.

Als Antwort auf Andreas vom Zwenkauer See

Wir können einen Deal machen: Wir telefonieren die Tage darüber, ich erkläre Dir alles und Du erstellst danach eine (englischsprachige) Doku für das Hilfesystem.

Zabbix Forum hat dies geteilt.

Als Antwort auf Andreas vom Zwenkauer See

Okay, ich kontaktiere Dich die Tage per Threema zur Absprache.

Zabbix Forum hat dies geteilt.

Als Antwort auf Andreas vom Zwenkauer See

So gehts:

Ein Item definieren:

Und dann die Magie: Zabbix kann JSON direkt verarbeiten - Preprocessing:

Scheint zu funktionieren.

Dank des Zabbix-Plugins für Grafana kann man das dann auch schön in Grafana plotten.

Zabbix Forum hat dies geteilt.

Als Antwort auf Rainer "friendica" Sokoll

@Rainer "friendica" Sokoll
Das war der entscheidende Hinweis. Danke dir! 👍

Habe mir jetzt mal so ein grobes Dashboard erstellt. Jetzt muss ich nur noch herausfinden, welche Werte für eine Systemüberwachung wichtig sind und welche man vernachlässigen kann. Es bleibt spannend. 😉

@Michael Vogel @Andreas vom Zwenkauer See

Zabbix Forum hat dies geteilt.