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 ⁂

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 ⁂

@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 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 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 Rainer "friendica" Sokoll

@Rainer "friendica" Sokoll
Das war der entscheidende Hinweis. Danke dir! :thumbs up:

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.