
Introducción
Vamos a configurar Filebeat con Elasticsearch y Kibana 9.x. Si aún no tiene Elasticsearch y Kibana configurados, entonces siga estas instrucciones.
Basado en esto documentación
Requisitos
A Running instance of Elasticsearch and Kibana.
Una instancia de otro servidor Ubuntu 24.04 que ejecuta cualquier tipo de servicio.
Pasos
Paso 1 - Instalar Filebeat
En la máquina Ubuntu que ejecutará filebeat, ejecute estos comandos para descargar las dependencias:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/9.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-9.x.list
apt-get update;
apt-get install -y apt-transport-https;
apt-get install -y filebeat;
Paso 2: Habilitar módulos de registro
Ir a la /etc/filebeat/modules.d
directorio. Seleccione los tipos de registros para los que desea habilitar el registro cambiando el nombre del directorio correspondiente.*.yml.disabled
a *.yml
. Para algunos de estos servicios, es posible que deba agregar el enabled: true
opción a la *.yml
archivo, así como el tipo de conexión y los detalles de configuración apropiados.
Paso 3: Crear un rol de configuración
Referencia para el rol de configuración
En Kibana, vaya a Gestión de pilas > Roles > Crear rol. Luego, completa estos campos:
Role name: filebeat_setup
Cluster privileges: monitor manage_ilm
Indices: filebeat-*
Privileges: manage
Paso 4: Crear un usuario de Filebeat
En Kibana, vaya a Gestión de pila > Usuarios > Crear usuario. Luego, completa estos campos:
Username: filebeat_user
Full name: filebeat_user
Email address: anything@anything.com
Password: anything
Roles: filebeat_setup kibana_admin ingest_admin
Presione guardar.
Paso 5: Configurar Filebeat
Edite estos campos para el /etc/filebeat.yml
setup.kibana:
host: "https://<kibana-domain>:<kibana-port>"
ssl.certificate_authorities: ["/path/to/http_ca.crt"]
output.elasticsearch:
hosts: ["<elasticsearch-domain-or-ip>:<elasticsearch-port>"]
protocol: "https"
username: "filebeat_user"
password: "<your filebeat_user password>"
ssl.certificate_authorities: ["/path/to/http_ca.crt"]
setup.ilm.check_exists: false
El archivo filebeat.yml completo se puede encontrar aquí.
IMPORTANTE: Usamos el usuario de configuración para la configuración inicial. Cambiaremos los privilegios más adelante.
Luego prueba tu configuración con estos comandos:
/usr/share/filebeat/bin/filebeat test config -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat
/usr/share/filebeat/bin/filebeat test output -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat
Confirme que recibe mensajes de éxito.
Paso 6 - Configurar Filebeat
Ahora ejecute este comando para configurar los flujos de datos y las vistas de filebeat en Elasticsearch y Kibana:
/usr/share/filebeat/bin/filebeat setup -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat
Una vez finalizado el comando, ve a Kibana Menú y visitar Panel para ver muchos paneles prediseñados.
Paso 7: Crear un rol de publicación
Referencia para el rol de publicación
En Kibana, vaya a Gestión de pilas > Roles > Crear rol. Luego, completa estos campos:
Role name: filebeat_publisher
Cluster privileges: monitor read_ilm read_pipeline
Indices: filebeat-*
Privileges: create_doc auto_configure
Paso 8: Cambiar la función de Filebeat
Eliminar los roles anteriores para filebeat_user
y establece solo esto:
Roles: filebeat_publisher
Presione guardar.
Crear una clave API para el usuario
En Kibana, vaya a Herramientas de desarrollo > Consola. Luego ejecute este comando:
POST /_security/api_key/grant
{
"grant_type": "password",
"username": "filebeat_user",
"password": "anything",
"api_key": {
"name": "filebeat_user"
}
}
Esto debería producir un resultado como el siguiente:
{
"id": "J3oInZgBRvUg0VanE8wj",
"name": "filebeat_user",
"api_key": "6Wwht52HgB-M8reGwXUM6g",
"encoded": "SjNvSW5aZ0JSdlVnMFZhbkU4d2o6Nld3aHQ1MkhnQi1NOHJlR3dYVU02Zw=="
}
Editar el /etc/filebeat/filebeat.yml
comentando el filebeat_user
nombre de usuario y contraseña y habilitar el api_key
Así:
output.elasticsearch:
...etc...
api_key: "${ES_API_KEY}"
#username: "filebeat_user"
#password: ""
...etc...
Usaremos el almacén de claves de Filebeat para cargar secretos en tiempo de ejecución. Ahora ejecute este comando para configurar...ES_API_KEY
variable del almacén de claves:
/usr/share/filebeat/bin/filebeat keystore add ES_API_KEY -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat
Prensa ingresar y cuando se le solicite, péguelo <id>:<api_key>
donde el <id>
y el <api_key>
son los valores de la respuesta del token de usuario que recibió anteriormente.
Paso 9 - Ejecutar Filebeat
systemctl enable filebeat;
systemctl start filebeat;
En un momento, deberías comenzar a ver resultados en Kibana en cualquiera de los dos.Descubrir, Observabilidad, Gestión de pilas > Gestión de índices > Flujo de datos, Panel de control >Seleccionar un panel de control de Filebeat.
Nota final
Cada vez que habilite un nuevo módulo en modules.d
, tienes que correr systemctl restart filebeat
. systemctl restart filebeat
puede desencadenar acciones en segundo plano similares a configuración lo que significa el usuario en su filebeat.yml
Debería tener el configuración privilegios mencionados en el Paso 3. Si no desea ejecutar manualmente systemctl restart filebeat
Después de los cambios en el modules.d
directorio, puede hacer que filebeat cargue automáticamente los módulos recién habilitados configurando esta propiedad en true
: filebeat.config.modules.reload.enabled: true
. Nuevamente, asegúrese de que el usuario en filebeat.yml
tiene el configuración privilegios.