Tengo una configuración de Raspberry Pi 2 (última versión de Raspbian a partir de abril de 2015) que la semana pasada ejecutaba ElasticSearch y Logstash en una red de prueba (no es una configuración sencilla, ¡pero fue estable durante más de una semana!). Reinicié mi máquina hoy y me ha costado mucho hacer que las cosas vuelvan a funcionar; ES y LS se ejecutarán de forma independiente, pero cuando intento insertar la salida de LS en ES, la instancia de ES muere sin explicación. Mi objetivo es hacer que los datos de LS y de bombeo se ejecuten en ES a través del complemento de salida estándar.
ElasticSearch [v1.5.0]
Creo que aquí es donde está el problema central. ES puede iniciarse a través de service elasticsearch start
y sigue ejecutándose, es accesible a través de solicitudes HTTP al puerto 9200 y todos los signos de vida parecen saludables. Tan pronto como algo (cualquier cosa, por lo que puedo decir) intenta escribir datos en un índice, el proceso muere y los registros de depuración @ / var / log / elasticsearch / * no contienen nada relacionado con la falla del servicio. He intentado insertar a través de logstash (ver más abajo), así como con curl, los cuales terminan el proceso de ES. El comando curl que estoy ejecutando es curl -XPOST "http://localhost:9200/logstash-2015.04.05/records/" -d "{ \"type\" : \"specialRecord\" }"
.
Logstash [v1.4.2]
Actualmente estoy ejecutando con esta configuración simple:
input {
stdin { }
}
output {
stdout { codec => rubydebug }
elasticsearch {
host => '127.0.0.1'
cluster => 'elasticsearch'
}
}
Otras notas
Algunas cosas que he probado:
He intentado aumentar los niveles de registro de ElasticSearch para DEPURAR / RASTREAR y la salida es notablemente poco interesante. Feliz de proporcionar registros si sería útil.
Intenté darle ES 256MB y 512MB de espacio de almacenamiento dinámico, lo que no parece afectar nada. También he visto la utilización de la memoria durante todo esto y la falta de memoria no parece ser un problema.
Intenté deshabilitar la multidifusión para tratar de eliminar un montón de variables de red, pero eso no pareció marcar la diferencia.
Me he asegurado de que el directorio de datos para ES tenga mucho espacio, permisos de escritura, etc. ES crea subdirectorios en el
path.data
directorio cuando está cargado, pero no creo que se agregue nada, ya que cuando reinicio el proceso de ES, las estadísticas del índice sugieren que El número total de documentos es cero.
Ahora estoy bastante perplejo y decepcionado de que no se registre nada de lo que necesito (o al menos puedo encontrar). ¿Alguna idea de lo que podría estar pasando aquí?
fuente
hs_err_PID.log
)? ES 1.5 utiliza una biblioteca nativa llamada Sigar para el monitoreo, puede tener problemas con el ARM de Raspberry. ¿Podrías intentar ejecutar Sigar solo? Intentaría actualizar a ES 1.5.2 o ES 2.0 que ya no usa Sigar.Respuestas:
Necesitas más hardware
Su raspi puede estar (considerablemente) con poca potencia para su carga de trabajo.
De ninguna manera soy un experto en Elasticstack, pero lo configuré en varios escenarios de prueba y para un uso limitado / de producción ligera. En mi experiencia, aunque la configuración inicial requiere relativamente pocos recursos, a medida que crece el número de índices, el sistema genera significativamente más carga de CPU y E / S de disco.
Esto es especialmente evidente después de un reinicio mientras el sistema está recuperando los fragmentos. Si sus índices no son demasiado grandes, podría considerar los depósitos mensuales en lugar de los depósitos diarios predeterminados, lo que parece ayudar a este respecto.
fuente