Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jpiedramacas/kubectl-klk
Elastic Logstash Kibana
https://github.com/jpiedramacas/kubectl-klk
k8s kibana kubernetes
Last synced: 8 days ago
JSON representation
Elastic Logstash Kibana
- Host: GitHub
- URL: https://github.com/jpiedramacas/kubectl-klk
- Owner: jpiedramacas
- Created: 2024-06-18T18:00:23.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-06-19T18:08:08.000Z (5 months ago)
- Last Synced: 2024-10-31T11:05:35.275Z (8 days ago)
- Topics: k8s, kibana, kubernetes
- Homepage: https://www.elastic.co/es/kibana
- Size: 257 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Configuración de ELK para Kubernetes/microservicios
Este repositorio contiene los archivos de configuración necesarios para desplegar un stack ELK (Elasticsearch, Logstash, Kibana) en un entorno de Kubernetes. A continuación, se explica el propósito de cada archivo de configuración:
- **elastic-service.yml**: Define el servicio para Elasticsearch.
- **elastic.yml**: Configura el despliegue de Elasticsearch como un StatefulSet.
- **filebeat-daemon-set.yml**: Despliega Filebeat como un DaemonSet para enviar logs a Logstash.
- **kibana.yml**: Despliega Kibana para la visualización de logs.
- **logstash-config.yml**: Configura Logstash para el formato de logs que Elasticsearch puede entender.
- **logstash-deployment.yml**: Despliega Logstash como un Deployment.
- **rbac.yml**: Define los roles y permisos necesarios (RBAC) para que los componentes de ELK accedan a recursos en Kubernetes.
- **web-deployment.yml**: Ejemplo de despliegue de una aplicación web para visualización de logs en Kibana.### Despliegue
1. **RBAC (Role-Based Access Control)**
```bash
kubectl apply -f rbac.yml
```- **Descripción**: Este comando crea una cuenta de servicio con los permisos necesarios para leer servicios, endpoints y namespaces.
2. **Elasticsearch**
```bash
kubectl apply -f elastic.yml
```- **Descripción**: Este comando define la configuración y despliega un StatefulSet para Elasticsearch.
3. **Servicio para Elasticsearch**
```bash
kubectl apply -f elastic-service.yml
```- **Descripción**: Este comando crea un servicio para exponer Elasticsearch dentro del clúster.
4. **Logstash**
```bash
kubectl apply -f logstash-config.yml
kubectl apply -f logstash-deployment.yml
```- **Descripción**: Estos comandos configuran Logstash para recibir, procesar y enviar logs a Elasticsearch.
5. **Filebeat**
```bash
kubectl apply -f filebeat-daemon-set.yml
```- **Descripción**: Este comando despliega Filebeat como un DaemonSet para enviar logs a Logstash.
6. **Kibana**
```bash
kubectl apply -f kibana.yml
```- **Descripción**: Este comando despliega Kibana para visualizar y analizar los logs almacenados en Elasticsearch.
### Despliegue Conjunto
Si deseas desplegar todos los recursos juntos después de haber corregido y verificado cada archivo por separado:
```bash
kubectl apply -f rbac.yml -f elastic.yml -f elastic-service.yml -f logstash-config.yml -f logstash-deployment.yml -f filebeat-daemon-set.yml -f kibana.yml
```Esto aplicará todos los archivos YAML en secuencia para configurar todo el stack ELK en tu clúster Kubernetes.
### Verificación del Despliegue
Una vez desplegados todos los componentes, verifica que los pods estén en estado `Running`:
```bash
kubectl get pods --namespace kube-system
```Si alguno de los pods no está funcionando correctamente, puedes verificar los eventos relacionados con ese pod específico:
```bash
kubectl describe pod --namespace kube-system
```### Acceso a Kibana
Para acceder a Kibana desde Minikube, obtén la URL utilizando el comando:
```bash
minikube service kibana-logging -n kube-system
```Esto debería proporcionarte una URL donde puedes acceder a Kibana desde tu navegador web.
Si `minikube service` sigue presentando problemas, puedes reenviar manualmente el puerto de Kibana:
```bash
kubectl port-forward service/kibana-logging 5601:5601 --namespace kube-system
```Luego, accede a Kibana en `http://localhost:5601`.
Con estos pasos, deberías poder desplegar y verificar el stack ELK correctamente en tu entorno Kubernetes. Asegúrate de revisar los logs y estados de los recursos para abordar cualquier problema específico que pueda surgir durante el despliegue.
---
## Index Pattern
Pagina oficial de [Elastic](https://www.elastic.co/guide/en/kibana/7.17/index-patterns.html)1. **Iniciar sesión en Kibana**: Accede a tu instancia de Kibana a través de la URL correspondiente en tu navegador.
2. **Ir a la pestaña Management (Gestión)**: En la barra lateral izquierda de Kibana, haz clic en "Management" (Gestión).
3. **Seleccionar "Index Patterns" (Patrones de índice)**: Dentro de la sección de Gestión, selecciona "Index Patterns" (Patrones de índice). Aquí verás una lista de los patrones de índice existentes si los hay.
4. **Crear un nuevo patrón de índice**: Para crear uno nuevo, haz clic en el botón "Create index pattern" (Crear patrón de índice).
5. **Configurar el patrón de índice**:
- **Nombre del patrón de índice**: Ingresa el nombre del patrón de índice. Puedes usar comodines (*) para coincidir con múltiples índices si es necesario.
- **Configuración de tiempo (opcional)**: Si tus datos tienen una marca de tiempo, puedes configurar el campo de tiempo aquí para optimizar las consultas temporales.
6. **Guardar el patrón de índice**: Haz clic en "Next step" (Siguiente paso) para confirmar la configuración del patrón de índice.7. **Explorar el patrón de índice**: Una vez creado el patrón de índice, Kibana te llevará automáticamente al área de descubrimiento de datos donde puedes comenzar a explorar y visualizar tus datos utilizando diferentes herramientas y paneles dentro de Kibana.
Al seguir estos pasos, habrás configurado con éxito un patrón de índice en Kibana para comenzar a trabajar con tus datos desde Elasticsearch.
## Amazon ECR Public Gallery
1. Amazon Elastic Container Registry [ECR](https://gallery.ecr.aws/)
2. Amazon ECR Public Gallery es una solución poderosa para la gestión y distribución pública de imágenes de contenedores, facilitando la colaboración y el uso compartido de aplicaciones contenedorizadas en la comunidad global. Con sus características de escalabilidad, integración con AWS y facilidad de uso, es una herramienta esencial para desarrolladores y organizaciones que trabajan con contenedores Docker.