Recientemente me ha interesado el tema de DevOps, por lo que estudié el proyecto de código abierto relacionado con el monitor y lo hice un artículo sobre Medium. En el proyecto real, vi colegas en el grupo DevOps usando monitoreo similar, por lo que quería disfrutarlo y aprender sobre la visualización de monitoreo.
Configuración de servicio monitoreada
Hay un proyecto de bola de primavera localmente y también se basa en Jolokia (principalmente para exponer JMX MBeans a través de HTTP)
La configuración del proyecto también es indispensable
Puntos finales: habilitado: verdadero jmx: habilitado: true jolokia: habilitado: truanagement: seguridad: habilitado: falso
Visite la URL para ver si está bien
http: // localhost: 8080/jolokia/read/org.springframework.boot: name = metricSendpoint, type = endpoint/data
Construir un sistema de monitoreo
Si puede ver los datos, significa que la configuración del lado del servidor está bien. ¿Cómo construimos Telegraf + InfluxDB + Grafana? Estos tres componentes funcionan juntos de esta manera. Telegraf realmente recopila información. Por ejemplo, visite la URL por encima de cada 10 segundos para obtener métricas, almacene los datos recopilados en InfluxDB y luego Grafana hace visualización de datos.
Pero si es demasiado problemático instalarlo manualmente, ayude a Universal Github y encuentre un proyecto muy bueno (https://github.com/samueleBistoletti/docker-statsd-influxdb-grafana), bifurca y modifique directamente algunas configuraciones para atender su proyecto. Si no comprende la configuración relevante, puede ejecutarla directamente primero y luego pasar a través de SSH para averiguarlo.
ssh root@localhost -p 22022
En términos de configuración, lo principal es modificar Telegraf, porque se conecta a diferentes proyectos. Qué tipo de información necesita recopilar, como CPU, disco, net, etc., debe estar equipada en Telegraf. Para simplificar, solo configuré tres entradas.
# /etc/telegraf/telegraf.conffic. "org.springframework.boot: name = MetricsendPoint, type = Endpoint" attribute = "data" [[inputs.jolokia.metrics]] name = "tomcat_max_threads" mBean = "tomcat: name =/" http-nio-8080/", type = threadpool" atribute = "maxthreads" [[inputssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssionalionalionalionionalionionalionionalionionalionionalionionalionionalionional llevionalionionalionionalionionalionionalionionalionionalionionalionionalia afía lea. name = "Tomcat_current_threads_busy" mbean = "tomcat: name =/" http-nio-8080/", type = threadpool" atribute = "currentthreadsbusy"
De hecho, son las métricas estándar de bola de primavera y los hilos de Tomcat.
Después de la finalización, reinicie el servicio /etc/init.d/telegraf restart
Ver datos de monitoreo
Visitamos InfluxDB para ver si hay algún dato http: // localhost: 3004/, y cambiar la base de datos a telegraf. Ingrese el siguiente comando para probar
Mostrar medidas selectas * de jolokiaSelect * de cpusElect * de MemSelect * de Diskio
Por ejemplo, si ingresa SELECT * FROM jolokia , puede ver qué datos se expusen por Spring-Boot. Desde la columna de tiempo, también se puede ver que Telegraf se recoge cada 10 segundos. Si es demasiado frecuente, también será una presión sobre el servidor.
Lo anterior básicamente cubre algunas métricas de CPU, memoria y almacenamiento.
De hecho, también puede configurar configuraciones relacionadas con la red. Si está interesado, puede ver el Telegraf.conf oficial, que contiene ejemplos de configuración [[inputs.net]].
Visualización de datos
Una vez que los datos están disponibles, el siguiente paso es la visualización.
Siga el GitHub mencionado anteriormente para ingresar http: // localhost: 3003/,
Usando el asistente, haga clic en Agregar datos de datos, un nombre para la fuente y marcarlo como Choose, InfluxDB de Typecoose directamente como Accessfill, los campos restantes de la siguiente manera y haga clic en Agregar sin alterar otros campos: http: // localhost: 8086DATABASE: Telegrafuser: telegrafsage: Telegraf
Después de agregar InfluxDB, cree un nuevo tablero y agregue rápidamente algunos gráficos.
Para la demostración, agregué tres, utilizando los siguientes tres conjuntos de declaraciones de consulta para representar tres gráficos
SELECT MEAN(usage_system) + MEAN(usage_user) AS cpu_total FROM cpu WHERE $timeFilter GROUP BY time($interval)SELECT means("total") as "total" FROM "mem" WHERE $timeFilter GROUP BY time($interval) fill(null)SELECT means("used") as "used" FROM "mem" WHERE $timeFilter GROUP BY time($interval) fill(null)SELECT media ("Metrics_heap.used") como "Heap_usage" de "Jolokia" donde $ TimeFilter Group por tiempo ($ intervalo) llenado (nulo)El primero es el uso de la CPU; El segundo es el uso de la memoria, la línea verde es total, se usa la línea amarilla; El tercero es el uso de JVM Heap proporcionado por Jolokia, y puedes ver la situación de GC.
También he configurado la colección Tomcat en este momento, y también es perfecto para ver la situación del hilo de Tomcat.
Seleccione la media ("Tomcat_max_threads") de "Jolokia" donde $ TimeFilter Group by Time ($ Interval) relleno (NULL) Select Media ("TomCat_Current_Threads_Busy") de "JOLOKIA" donde $ $ TimeFilter Group por tiempo ($ interval) relleno (NULL)resumen
Lo anterior es el monitoreo de arranque de primavera introducido por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!