
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 para la Parte 1 y Esto para la Parte 2.
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: Usar el registro del servidor para escribir alertas en el archivo kibana.log [02:12]
Inicie sesión en Kibana y vaya a Observabilidad > Alertas > reglas del administrador, y haga clic en el ícono del lápiz en la alerta de recuento de errores que configuramos en el video anterior.
Editar regla
Desplácese hacia abajo y haga clic en Agregar un conector, Debería mostrar algo similar a lo que se muestra a continuación.
Add a Connector
y darle un nombre como conector-2, y luego presione ahorrar.Ahora haz clic en "Guardar" en la esquina inferior derecha para guardar los detalles de conexión.
Para ver los registros publicados, vaya a la terminal del servidor Kibana y ejecute lo siguiente.
cd /var/log/kibana
vi kibana.log
Ahora vaya a Kibana para configurar una alerta para el umbral de tasa de latencia. Seleccione conector-2 para la opción de conector y elija los detalles restantes como se muestra en la imagen a continuación
Conexión de tasa de latencia
Haga lo mismo para la alerta de transacción fallida.
Alerta de transacción fallida
Paso 2: usar logstash para ingerir alertas del archivo kibana.log [09:20]
Instale logstash con el siguiente comando en su terminal
sudo apt-get update && sudo apt-get install logstash
Para confirmar que Logstash se instaló correctamente, ejecute el siguiente comando.
cd /usr/share/logstash/bin/
ls
Deberías obtener algo similar a esto:
Archivos binarios de Logstash
Utilice el siguiente comando para ejecutar logstash.
cd ~
/usr/share/logstash/bin/logstash -e 'input {
file {
type => "json"
codec => "json"
path => "/var/log/kibana/kibana.log"
start_position => beginning
}
}
output {
stdout {}
}'
Paso 3: Use logstash para publicar alertas en Mailtrap o un servidor SMTP [14:50]
Crea una cuenta en Mailtrap como se muestra en el video. Usarás la URL del servidor SMTP como correo electrónico. Ahora regresa a la terminal y ejecuta el siguiente comando.
/usr/share/logstash/bin/logstash -e 'input {
file {
type => "json"
codec => "json"
path => "/var/log/kibana/kibana.log"
start_position => beginning
}
}
output {
email {
to => "<user@example.com>"
from => "<user@example.com>"
subject => "Alert: %(message)"
body => "%(message)"
authentication => "plain"
address => "smtp.mailtrap.io"
domain => "smtp.mailtrap.io"
port => 2525
username => "<Your Username>"
password => "<Your Password>"
}
}'
Paso 4 - Salida condicional (por ejemplo, solo correo electrónico [registro][nivel] == ERROR) [20:20]
Si solo desea el error de nivel de registro, utilice el siguiente comando.
/usr/share/logstash/bin/logstash -e 'input {
file {
type => "json"
codec => "json"
path => "/var/log/kibana/kibana.log"
start_position => beginning
}
}
output {
if [log][level] == "ERROR"
email {
to => "<user@example.com>"
from => "<user@example.com>"
subject => "Alert: %{message}"
body => "%{message}"
authentication => "plain"
address => "smtp.mailtrap.io"
domain => "smtp.mailtrap.io"
port => 2525
username => "<Your Username>"
password => "<Your Password>"
}
}'
Paso 5: Usar el filtro grok para formatear los mensajes [22:05]
Para utilizar el filtro grok, regrese a la terminal y ejecute el siguiente comando.
/usr/share/logstash/bin/logstash -e 'input {
file {
type => "json"
codec => "json"
path => "/var/log/kibana/kibana.log"
start_position => beginning
}
}
filter {
grok {
match => {
"message" => "Server log: %(DATA:apmreason):;;- Service name: %(DATA:apmservice);-
}
}
}
output {
email {
to => "<user@example.com>"
from => "<user@example.com>"
subject => "Alert: %{apmservice} %{apmreason}"
body => "%{message}"
authentication => "plain"
address => "smtp.mailtrap.io"
domain => "smtp.mailtrap.io"
port => 2525
username => "<Your Username>"
password => "<Your Password>"
}
}'