Moin, bei mir im Netzwerk haben sich mittlerweile eine gewissen Anzahl an always-on Geräten auf Linux-basis angesammelt (Raspberrys, einige VMs). Ich hätte gerne eine Art Dashboard um den Status der Maschinen übersichtlich darzustellen. Dazu zählen z.B. uptime, Speicher- und CPU-Auslastung, aber auch der Status von diversen Services (apache, mariadb usw.). Nun bin ich mir nicht sicher ob es sowas von der Stange gibt. Um an interne Daten der Hosts ranzukommen muss ja jeweils ein Service laufen der die Daten sammelt und zur Verfügung stellt. Zwar könnte ich auf jedem Host ein python-Skript laufen lassen dass die Daten sammelt, aber vielleicht gibt es sowas ja schon. Jemand eine Idee?
Irgend W. schrieb: > Schau dir mal Grafana an: > - https://grafana.com/docs/grafana/latest/dashboards/ Ich kenne Grafana. Aber wie krieg ich die Daten da rein? Woher weiß Grafana ob auf Host_XYZ der Apache läuft? Dazu braucht es ja hostseitig eine Datenquelle die diese Daten im Grafana-Format versendet.
:
Bearbeitet durch User
M. M. schrieb: > Ich hätte gerne eine Art Dashboard um den Status der Maschinen > übersichtlich darzustellen. Dazu zählen z.B. uptime, Speicher- und > CPU-Auslastung, aber auch der Status von diversen Services (apache, > mariadb usw.). > > Nun bin ich mir nicht sicher ob es sowas von der Stange gibt. > Um an interne Daten der Hosts ranzukommen muss ja jeweils ein Service > laufen der die Daten sammelt und zur Verfügung stellt. nagios oder Icinga, bei der Nagiosexchange findest Du sehr viele Plugins (mit verschiedener Qualiataet :-(. Bereite Dich auf eine steile Lernkurve vor.
M. M. schrieb: > Woher weiß Grafana ob auf Host_XYZ der Apache läuft? Website Status check ist doch einfach. Hab ich mit meinem lokalen Server immer für bestimmte Seiten gemacht. https://www.codexworld.com/how-to/check-website-availability-php-curl/ Da gibt's bestimmt auch was in anderen Sprachen. Und garantiert kann man das auf viele andere Services erweitern.
Vax W. schrieb: > nagios oder Icinga, bei der Nagiosexchange findest Du sehr viele Plugins > (mit verschiedener Qualiataet :-(. Das scheint genau das zu sein was ich suche. Allerdings wirkt es für mich fast schon zu oversized. Vermutlich ist es einfacher auf jedem Host ein Python-Skript laufen zu lassen welches die relevanten Daten sammelt und per REST o.Ä. anbietet. Kilo S. schrieb: > M. M. schrieb: >> Woher weiß Grafana ob auf Host_XYZ der Apache läuft? > > Website Status check ist doch einfach. Naja, der Status vom Apache-Service und die Erreichbarkeit einer Website sind doch zwei paar Schuhe. Und dieser Ansatz stößt bei anderen Diensten schnell an seine Grenzen. Und Betriebsdaten des Hosts (uptime, Speicher, CPU) gehen damit auch nicht.
M. M. schrieb: > Vax W. schrieb: >> nagios oder Icinga, bei der Nagiosexchange findest Du sehr viele Plugins >> (mit verschiedener Qualiataet :-(. > > Das scheint genau das zu sein was ich suche. > Allerdings wirkt es für mich fast schon zu oversized. > Vermutlich ist es einfacher auf jedem Host ein Python-Skript laufen zu > lassen welches die relevanten Daten sammelt und per REST o.Ä. anbietet. Es ist im Endeffekt genau das, was nagios/icinga machen: Der Nagiosprozess fragt den Host mit einer genauen Schnittstelle ab und bekommt eine wohldefinierte Antwort. Der Aufwand (fuer die Programmierung) ist schon ziemlich viel heftig, auf der anderen Seite bekommst Du Histogramme und Zeitanalysen fuer umsonst dabei. Ich hatte das vielen Jahren angefangen (ich war so stolz auf mich), deswegen bin ich jetzt bei fast 20 Jahren dabei (verschiedenenen Versionen).
M. M. schrieb: > Naja, der Status vom Apache-Service und die Erreichbarkeit einer Website > sind doch zwei paar Schuhe. Ohne Apache der läuft idr. auch keine Website. Ergo, keine Seite = kein Apache. Und die unterscheidung ob ein netzwerkfehler vorliegt macht man mit einem ping auf die ip. Wenn man sich mit php ein passendes Script schreibt kann man auch alles andere abfragen: https://jamesbachini.com/ram-cpu-usage-php-script/
:
Bearbeitet durch User
Kilo S. schrieb: > M. M. schrieb: >> Naja, der Status vom Apache-Service und die Erreichbarkeit einer Website >> sind doch zwei paar Schuhe. > > Ohne Apache der läuft idr. auch keine Website. Ergo, keine Seite = kein > Apache. In erster Näherung kommt das hin, aber auf andere Services lässt sich das nicht übertragen. Kilo S. schrieb: > Wenn man sich mit php ein passendes Script schreibt kann man auch alles > andere abfragen: OK, das ist ja im Prinzip das gleiche was ich schon schrieb, nur mit php anstelle von Python. Prinzip ist das gleiche.
M. M. schrieb: > aber auf andere Services lässt sich das nicht übertragen. Äh, doch?! Beispiel DB Server, du brauchst mit php/python doch nur einen connect auf die DB machen. Verbindung OK = DB Server läuft. Sowohl hard als auch Software/Netzwerk sind in dem Fall ok. Falls nicht, ping auf IP, host UP? Ok, ächster Schritt. Das geht ebenfalls mit sftp/ssh usw.. Du kannst auch nen cronjob starten der die Services über die shell nach ihrem Status fragt, das als "file" für dein dashboard ablegt und dieses zieht sich das aus dem Netzwerk und zeigt dir den Inhalt an. Ich seh das Problem nicht so recht. Selbst die Ausgabe von top kannst du dir passend in eine Datei schreiben und auswerten. Für richtige "sicherheit" das alle Services laufen empfiehlt es sich regelmäßig einen cronjob auszuführen, zu prüfen ob die Services lokal laufen und im schlimmsten Fall mit start/restart zu starten.
:
Bearbeitet durch User
Kilo S. schrieb: > Du kannst auch nen cronjob starten der die Services über die shell nach > ihrem Status fragt, das als "file" für dein dashboard ablegt und dieses > zieht sich das aus dem Netzwerk und zeigt dir den Inhalt an. > > Ich seh das Problem nicht so recht. Selbst die Ausgabe von top kannst du > dir passend in eine Datei schreiben und auswerten. Natürlich geht das. Kein Problem. Ist auch, mehr oder weniger genau das was ich vorhabe (nur eben mit Python anstelle php oder cron/bash). Aber: mit deinem ursprünglichen Ansatz "Ping auf Server" oder "Erreichbarkeit abfragen per php/curl" hat das rein garnichts mehr zu tun. Diese Lösung ist tatäschlich nur für apache (und evtl. noch mariadb) halbwegs geeignet.
M. M. schrieb: > Diese Lösung ist tatäschlich nur für apache (und evtl. noch mariadb) > halbwegs geeignet. Ich bin ziemlich zuversichtlich, andere Dienste kannst du auch auf diese Art abfragen. Vermutlich mehr als wir beide vermuten. Ih bin eh schon länger aus php raus, aber was du da möchtest konnte ih damals schon recht leicht realisieren. Dank lokalem Server mit eigenem A record konnte ich mich sogar jederzeit ohne mitelsmann über Störungen Benachrichtigen lassen, vom eigenen Mailserver. Alles bereits in die statusabfrage integriert. M. M. schrieb: > Natürlich geht das. Kein Problem. > Ist auch, mehr oder weniger genau das was ich vorhabe (nur eben mit > Python anstelle php oder cron/bash). Soll ich jetzt lachen oder heulen? Für deine python api musst du höchstwahrscheinlich einen eigenen deamon (gestartet Beim booten?) im System starten. Wieso nicht cron? Wieso nicht bash? Aber gut, mach wie du denkst. Curl gibt's auch für python. https://www.educba.com/python-curl/ Das macht die Abfrage von Services "bequemer".
Es gibt latuernich zwei Moeglichkeiten: Du schreibst Dir alles selbst oder suchst eine fertige Loesung wie z.B. Nagios (Das war der Grund warum ich damit angefangen hatte: Man musste sich in sehr viele Teilbereiche [z.B. Router {ist bei eine billige Fritzbox}, Switches {Cisco ueber SNMP}, Drucker {SNMP}, Datenbanken {MySQL/MariaDB mit Master/Slave-Replikation} und noch ein paar mehr] einarbeiten. Warum nicht das Wissen der anderen uebernehmen [nagiosexchange]?). Gibt auch andere Programmpakete.
Auch wenn dieses Thema schon vor einiger Zeit begonnen wurde, möchte ich dennoch auf diesen Artikel hinweisen. Er bietet einen hilfreichen Überblick zur Erstellung eines eingebetteten Web-Dashboards für Geräte: https://mongoose.ws/articles/building-embedded-web-device-dashboard/
Raj schrieb: > Auch wenn dieses Thema schon vor einiger Zeit begonnen wurde, möchte ich > dennoch auf diesen Artikel hinweisen. Er bietet einen hilfreichen > Überblick zur Erstellung eines eingebetteten Web-Dashboards für Geräte: > https://mongoose.ws/articles/building-embedded-web-device-dashboard/ Ich "mißbrauche" für meine Datensammlung einfach Ansible, und werte dann nur die Fakten aus, die Ansible gesammelt hat. Das ist für kleine Netze minimaler Aufwand und bietet in meinem Fall obendrein den Vorzug, daß ich nichts neues lernen, bauen, ausrollen, pflegen und warten muß, sondern auf die vorhandenen Kenntnisse und meine Infrastrukturen für CI/CD und Konfigurationsmanagement zurückgreifen und darauf aufsetzen kann. YMMV. :-)
Moin zusammen, nachdem nagios/icinga hier schon erwähnt wurde: Ich empfehle nagios + zubehör aus OMD (open monitoring distribution) https://omdistro.org/ In der Ausprägung check_mk (community edition). Will man nagios mit allen weiteren Kompoenten (pnp4nagios, nagvis, etc.pp) selbst zusammenklöppeln, dauert das ewig. OMD bekommt man relativ schnell zum laufen, und da sind alle Komponenten, auch die auf den Cleients laufen müssen um dort verschiedene Werte einzusammeln, schon drin, resp. können aus nagios-exchange schnell nachinstalliert werden. Selber basteln muss man da nur noch ganz seltene, spezielle Sachen, ist aber auch kein Hexenwerk. IdS, Baku
Muss mich schnell mal selber korrigieren: > In der Ausprägung check_mk (community edition). Heisst jetzt 'RAW' edition (kostenfrei) > IdS, > Baku
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.