Ich habe mich in letzter Zeit für das Thema DevOps interessiert, deshalb habe ich das Open -Source -Projekt zu Monitor untersucht und in einen Artikel über Medium eingeflippt. Im eigentlichen Projekt sah ich Kollegen in der DevOps -Gruppe mit einer ähnlichen Überwachung, daher wollte ich es genießen und über die Überwachung der Visualisierung erfahren.
Überwachte Dienstkonfiguration
Es gibt ein Spring-Boot-Projekt lokal und stützt sich auch auf Jolokia (hauptsächlich, um JMX-MBEANS durch http freizulegen)
Die Projektkonfiguration ist ebenfalls unverzichtbar
Endpunkte: aktiviert: True JMX: Aktiviert: True Jolokia: Aktiviert: Truemanagement: Sicherheit: Aktiviert: Falsch
Besuchen Sie die URL, um zu sehen, ob es in Ordnung ist
http: // localhost: 8080/jolokia/read/org.springframework.boot: name = metricsendpoint, type = Endpoint/Daten
Erstellen Sie ein Überwachungssystem
Wenn Sie die Daten sehen können, bedeutet dies, dass die Server -Seitenkonfiguration in Ordnung ist. Wie bauen wir Telegraf + InfluxDB + Grafana? Diese drei Komponenten arbeiten auf diese Weise zusammen. Telegraf sammelt tatsächlich Informationen. Besuchen Sie beispielsweise die URL über 10 Sekunden, um Metriken zu erhalten, die gesammelten Daten in InfluxDB zu speichern, und dann führt Grafana die Datenvisualisierung durch.
Wenn es jedoch zu problematisch ist, es manuell zu installieren, helfen Sie dem universellen Github und finden Sie ein sehr gutes Projekt (https://github.com/samuelelebistoletti/docker-statsd-influxdb--Grafana) direkt auf und ändern Sie einige Konfigurationen, um Ihr Projekt zu bedienen. Wenn Sie die relevante Konfiguration nicht verstehen, können Sie sie zuerst direkt ausführen und dann durch SSH eingehen, um es herauszufinden.
ssh root@localhost -p 22022
In Bezug auf die Konfiguration besteht die Hauptsache darin, Telegraf zu ändern, da es mit verschiedenen Projekten verbunden ist. Welche Art von Informationen, die Sie sammeln müssen, wie CPU, Festplatte, Netz usw., müssen in Telegraf ausgestattet sein. Der Einfachheit halber habe ich nur drei Eingänge eingerichtet.
# /etc/telegraf/telegraf.conf...inputs.jolokia] context = "/jolokia" - --Iinputs.jolokia.Servers] name =" Springbootapp "Host =" {App IP -Adresse} "port =" 8080 "[[[[Inputs.jolokia)] name =" mbean "mbean =" mbean = "mbean =" mbean = "org.springframework.boot:name=metricsEndpoint,type=Endpoint" attribute = "Data"[[inputs.jolokia.metrics]] name = "tomcat_max_threads" mbean = "Tomcat:name=/"http-nio-8080/",type=ThreadPool" attribute = "maxThreads"[[inputs.jolokia.metrics]] name = "tomcat_current_threads_busy" mbean = "tomcat: name =/" http-nio-8080/", Typ = Threadpool" Attribute = "CurrentThreadsBusy"In der Tat sind es Spring-Boot-Standardmetriken und Tomcat-Threads.
Starten Sie nach Abschluss den Service /etc/init.d/telegraf restart
Überwachungsdaten anzeigen
Wir besuchen InfluxDB, um festzustellen, ob Daten http: // localhost: 3004/vorhanden sind und die Datenbank auf Telegraf wechseln. Geben Sie den folgenden Befehl ein, um es zu versuchen
Messungen anzeigen * aus JolokiaSelect * von cpuselect * von memselect * von diskio
Wenn Sie beispielsweise SELECT * FROM jolokia eingeben, können Sie sehen, welche Daten durch Spring-Boot ausgesetzt sind. Aus der Zeitspalte ist auch ersichtlich, dass Telegraf alle 10 Sekunden gesammelt wird. Wenn es zu häufig ist, ist es auch ein Druck auf den Server.
Die obigen deckt im Grunde einige Metriken von CPU, Speicher und Speicher ab.
Tatsächlich können Sie auch netzwerkbezogene Konfigurationen konfigurieren. Wenn Sie interessiert sind, können Sie den offiziellen Telegraf.conf sehen, der Beispiele für die Konfiguration von [[Inputs.net]] enthält.
Datenvisualisierung
Sobald die Daten verfügbar sind, ist der nächste Schritt die Visualisierung.
Folgen Sie dem oben genannten GitHub, um http: // localhost: 3003/, einzugeben,.
Mit dem Assistenten klicken Sie auf Data SourceChechoose ein Name für die Quelle und als defaultChose InstruxDB als typechoose direkt als accessfill verbleibende Felder wie folgt und klicken
Erstellen Sie nach dem Hinzufügen von InfluxDB ein neues Dashboard und fügen Sie schnell einige Grafiken hinzu.
Zur Demonstration habe ich drei hinzugefügt, wobei die folgenden drei Sätze von Abfrageanweisungen verwendet wurden, um drei Diagramme zu rendern
SELECT MEIE (USAGE_SYSTEM) + MEIE (USAGE_USER) AS CPU_TOTAL VON CPU WO $ TimeFilter -Gruppe nach Zeit ($ Intervall) ausgewählt ("Gesamt") als "Gesamt" von "mem" wob Mean ("metrics_heap.used") als "heap_usage" von "Jolokia", wobei $ timeFilter by Time ($ Intervall) füllt (NULL)Der erste ist die CPU -Verwendung; Die zweite ist die Speicherverwendung, die grüne Linie ist insgesamt, die gelbe Linie wird verwendet; Der dritte ist die Verwendung von JVM Heap von Jolokia, und Sie können die GC -Situation sehen.
Ich habe gerade jetzt die Tomcat -Sammlung konfiguriert, und es ist auch perfekt, um die Fadensituation von Tomcat zu sehen.
Wählen Sie Mean ("tomcat_max_threads") aus "Jolokia", wobei $ timeFilter -Gruppe nach Zeit ($ Intervall) FILL (NULL) SELECT MEIE ("TOMCAT_CURRENT_THEADS_BUSY") aus "Jolokia" wobZusammenfassung
Das oben oben ist die vom Editor eingeführte Spring -Boot -Überwachung. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!