J'ai été intéressé par le sujet de DevOps récemment, j'ai donc étudié le projet open source lié à moniteur et jeté dans un article sur Medium. Dans le projet réel, j'ai vu des collègues du groupe DevOps en utilisant une surveillance similaire, donc je voulais en profiter et en savoir plus sur la surveillance de la visualisation.
Configuration du service surveillé
Il y a un projet Spring-Boot localement et il s'appuie également sur Jolokia (principalement pour exposer JMX MBEANS via HTTP)
La configuration du projet est également indispensable
Points de terminaison: activé: true jmx: activé: true jolokia: activé: truemanagement: sécurité: activé: false
Visitez l'URL pour voir si ça va
http: // localhost: 8080 / jolokia / read / org.springframework.boot: name = MetricSendPoint, type = endpoint / data
Construire un système de surveillance
Si vous pouvez voir les données, cela signifie que la configuration côté serveur est bien. Comment construisons-nous Telegraf + affluxdb + Grafana? Ces trois composants fonctionnent ensemble de cette manière. Telegraf collecte en fait des informations. Par exemple, visitez l'URL au-dessus de toutes les 10 secondes pour obtenir des mesures, stockez les données collectées dans InfluxDB, puis Grafana fait la visualisation des données.
Mais s'il est trop gênant pour l'installer manuellement, veuillez aider l'universel Github et trouver un très bon projet (https://github.com/samuelebistoletti/docker-statsd-influxdb-grafana), fourre directement et modifier certaines configurations pour servir votre projet. Si vous ne comprenez pas la configuration pertinente, vous pouvez d'abord l'exécuter directement, puis passer par SSH pour le découvrir.
ssh root @ localhost -p 22022
En termes de configuration, l'essentiel est de modifier Telegraf, car il se connecte à différents projets. Le type d'informations que vous devez collecter, comme le processeur, le disque, le net, etc., doit être équipé dans Telegraf. Pour plus de simplicité, je n'ai configuré que trois entrées.
# /etc/telegraf/telegraf.conf ·inputs.jolokia]] context = "/jolokia"@ins.jolokia.servers]] name =" SpringbootApp "host =" {appadress ip} "port =" 8080 "[[int.jolokia.metrics]] name =" metrics "mBean = "org.springframework.boot: name = MetricSendPoint, type = endpoint" attribute = "data" [[inputs.jolokia.metrrics]] name = "tomcat_max_threads" mbean = "TOMCAT: name = /" http-nio-8080 / ", type = threadpool" attribut = "maxthreads" [entrants] name = "tomcat_current_threads_busy" mbean = "tomcat: name = /" http-nio-8080 / ", type = threadpool" attribut = "currentThreadsBusy"En fait, ce sont des métriques standard de Spring-Boot et des fils Tomcat.
Une fois terminé, redémarrez le service /etc/init.d/telegraf restart
Afficher les données de surveillance
Nous visitons InfluxDB pour voir s'il y a des données http: // localhost: 3004 /, et passons à la base de données vers Telegraf. Entrez la commande suivante pour essayer
Afficher les mesures SELLECT * de Jolokiapeselect * de CPUSELECT * de Memselect * de Diskio
Par exemple, si vous entrez SELECT * FROM jolokia , vous pouvez voir quelles données sont exposées par Spring-Boot. À partir de la colonne Time, on peut également voir que Telegraf est collecté toutes les 10 secondes. S'il est trop fréquent, ce sera également une pression sur le serveur.
Ce qui précède couvre essentiellement certaines mesures de CPU, de mémoire et de stockage.
En fait, vous pouvez également configurer des configurations liées au réseau. Si vous êtes intéressé, vous pouvez voir le Telegraf officiel, qui contient des exemples de configuration [[inports.net]].
Visualisation des données
Une fois les données disponibles, l'étape suivante est la visualisation.
Suivez le github mentionné ci-dessus pour entrer http: // localhost: 3003 /,
Utilisation de l'assistant Cliquez sur Ajouter des données SourceCoose un nom pour la source et signalez-les comme defaultchoose affluxDB comme typechoose direct comme champ d'accès restant comme suit et cliquez sur Ajouter sans modifier d'autres champs: http: // localhost: 8086Database: Telegrafuser: TELEGRAFPASSWORD: Telegraf
Après avoir ajouté InfluxDB, créez un nouveau tableau de bord et ajoutez rapidement quelques graphiques.
Pour une démonstration, j'en ai ajouté trois, en utilisant les trois ensembles suivants des instructions de requête pour rendre trois graphiques
Sélectionnez la moyenne (usage_system) + moyenne (usage_user) en tant que CPU_TOTAL à partir du processeur où $ TimeFilter Group by Time ($ interval) Sélectionnez des moyens ("total") comme "Total" à partir de "MEM" où le groupe TimeFilter $ par temps ($ interval) remplit (null) Moyens ("Used") comme "Null) à partir de" MEM "Where $filter Mean ("Metrics_heap.used") comme "tas_usage" de "Jolokia" où $ TimeFilter Group by Time ($ interval) Fill (null)Le premier est l'utilisation du processeur; Le second est l'utilisation de la mémoire, la ligne verte est totale, la ligne jaune est utilisée; Le troisième est l'utilisation du tas JVM fourni par Jolokia, et vous pouvez voir la situation GC.
J'ai également configuré la collection Tomcat tout à l'heure, et il est également parfait pour voir la situation du fil de Tomcat.
Sélectionnez Mean ("Tomcat_Max_Threads") à partir de "Jolokia" où $ TimeFilter Group by Time ($ interval) remplissez (null) Sélectionnez Mean ("Tomcat_Current_Threads_Busy") à partir de "Jolokia" où $ TimeFilter Group by Time ($ interval) FILL (null)résumé
Ce qui précède est le Spring Boot Monitoring introduit par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!