
Introducción
Código en Github: Elasticsearch y monitorización del rendimiento de las aplicaciones
Vamos a configurar Monitoreo del rendimiento de las aplicaciones con Elasticsearch y Kibana. Si aún no tiene configurados APM, Elasticsearch y Kibana,siga estas instrucciones.
Este vídeo asume que estás usando Certificados firmados públicamente. Si estas usando Certificados autofirmados, Vaya aquí Por determinar.
Requisitos
- Una instancia en ejecución de Elasticsearch y Kibana.
- Una nueva instancia de Ubuntu 20.04 para actuar como servidor Fleet
Pasos
Paso 1: Configuración del servidor Kibana para habilitar alertas [05:30]
Siga los pasos a continuación para poder configurar reglas en Kibana
cd /usr/share/kibana/bin/
y ejecute el siguiente código.
./kibana-keystore add xpack.encryptedSavedObjects.encryptionKey
Cuando se le solicite ingresar un valor, pegue cualquier cadena de al menos 32 caracteres. Luego, reinicie Kibana.
systemctl restart kibana.service
Paso 2: Demostrar la regla de alerta de umbral de recuento de errores [08:45]
Inicie sesión en Kibana y vaya a Observabilidad > Alertas > Reglas, y haga clic en crear regla como se muestra en la imagen a continuación:
Create Rule
Name: Error Rule Threshold
Check every: 1 minute
Notify: every time alert is active
Luego haga clic en Umbral de recuento de errores.
SERVICE: ALL
ENVIRONMENT: ALL
IS ABOVE: 2 errors
FOR THE LAST: 1 minute
Luego presione ahorrar.
Ahora actualice la aplicación Go o Nodejs varias veces rápidamente. Una vez hecho esto, vuelva a Observabilidad > Alertas para ver la alerta aparecer como se muestra en la imagen a continuación:
Alerta de umbral de recuento de errores
Puedes repetir la actualización de la segunda aplicación.
Paso 3: Demostrar la regla de alerta de umbral de tasa de transacciones fallidas [18:56]
Ir a Observabilidad > Alertas > Reglas, y haga clic en crear regla como se muestra en la imagen a continuación:
Create Rule
Name: FailedTx Rate
Check every: 5 minute
Notify: only on status change
Luego haga clic en Umbral de tasa de transacciones fallidas.
SERVICE: ALL
ENVIRONMENT: ALL
IS ABOVE: 2%
FOR THE LAST: 10 minute
Luego presione ahorrar.
Ahora abra el archivo index.js de la aplicación nodejs
vi node/apm/index.js
Pegue esto en el archivo
app.get('/fail', async (req, res) => (
const statnum = 500
res.status(statnum).send('Fail ' + statnum)
))
luego reinicie el servicio nodejs
systemctl stop nodeapm.service
systemctl stop nodeapm.service
Ahora haga ping al punto final de manera constante durante unos 10 minutos y luego vuelva a verificar las alertas y tendremos algo tan similar a la imagen que se muestra a continuación.
Alerta de tasa de transacciones fallidas
Paso 4: Demostrar la regla de alerta de umbral de latencia [28:46]
Ir a Observabilidad > Alertas > Reglas, y haga clic en crear regla como se muestra en la imagen a continuación:
Create Rule
Name: Latency Threshold
Check every: 1 minute
Notify: only on status change
Luego haga clic en Umbral de latencia.
SERVICE: node-app-1
TYPE: request
ENVIRONMENT: ALL
WHEN: avg
IS ABOVE: 100ms
FOR THE LAST: 5 minutes
Luego presione ahorrar.
Deberías ver algo similar a la siguiente imagen cuando presiones actualizar:
Las tres alertas
Ahora abra el archivo index.js de la aplicación nodejs
vi node/apm/index.js
Pegue esto en el archivo
app.get('/latency', async (req, res) => (
const t = 10000
await new Promise(resolve => setTimeout(resolve, t))
res.send('Wait ' + t)
))
luego reinicie el servicio nodejs
systemctl restart nodeapm.service
Ahora haga ping al punto final de manera constante durante unos 10 minutos y luego vuelva a verificar las alertas y tendremos algo tan similar a la imagen que se muestra a continuación.
Alerta de umbral de latencia