Couchbase Server crea un número de diferentes archivos de registro dependiendo de los componentes del sistema que producen el error, y el nivel y el problema que se informa. Estos archivos de registro individuales pueden ayudarle a reducir a la causa raíz del problema mucho más rápido. En este blog, hablaremos sobre los logs de Couchbase Server y cómo puedes usar estos logs para obtener más información sobre tu cluster de Couchbase. En función de tu plataforma (Linux, Windows o Mac OSX), la ubicación de los archivos de registro puede variar.
Couchbase Server tiene diferentes archivos de registro para diferentes componentes de la base de datos. Para cada nodo, cada ubicación de archivo de registro, contiene una lista de diferentes archivos de registro.
Los archivos de registro individuales se numeran automáticamente, con un sufijo numérico para cada nuevo registro. Hay un máximo de 20 archivos de registro por registro y cada archivo de registro tiene un tamaño máximo de 10 MB por defecto. Cuando se alcanza el número máximo de archivos de registro, el archivo de registro más antiguo se sobrescribe con el contenido del nuevo archivo.
Ahora, veamos dos escenarios de ejemplo donde los logs de Couchbase Server pueden ser útiles -
1. Cuando tu función map reduce de javascript no emite ningún resultado
Cuando trabaje con vistas, si define una vista con un campo que no está definido, no verá ningún resultado. Esto puede ocurrir especialmente en el caso de que emita un atributo pero el padre no exista. Por ejemplo: emit(doc.foo.bar, null) cuando sus documentos no incluyan el atributo "foo". He aquí un ejemplo más sencillo.
emit(doc1.foo, null);
}
En la figura 1, el campo javascript "doc1" no existe. La vista se puede guardar, pero no encontrará ningún resultado.
Figura 1 : Ejemplo de función map en javascript con objeto indefinido doc1
Pero para diagnosticar el problema puedes mirar el mapreduce_errors.1 archivo de registro. Observará que se registra el error de referencia.
Figura 2: Error de referencia indefinida en el archivo mapreduce_errors
Actualmente, si un documento se omite debido a un error en tiempo de ejecución como se ve arriba al construir una vista, se omitirá de todas las vistas en ese documento de diseño. Este es otro escenario, en el que puede que desee echar un vistazo al archivo de registro de cerca.
En general, una de las mejores prácticas que debe seguir al escribir vistas es comprobar si el campo padre al que se hace referencia existe. En nuestro ejemplo, podemos reescribir la función map como se indica a continuación:
función (doc, meta) {
si(doc.foo)
{
emit(doc1.foo, null);
}
}
2. Errores XDCR cuando el bucket de destino se elimina repentinamente
La replicación entre centros de datos en Couchbase Server 2.0 soporta replicación activa-activa unidireccional y bidireccional entre dos clusters de Couchbase Server. Supongamos que la replicación unidireccional entre centros de datos está configurada desde el módulo muestra de cerveza del clúster de origen al testBucket en el clúster de destino.
Si el testBucket bucket en el cluster de destino es cluster de destino se elimina repentinamente cuando XDCR está en progreso, XDCR no puede continuar y se registra un error en el archivo de registro xdcr_error en el nodo del cluster de origen como se muestra en la Figura 4 a continuación. La consola de administración del servidor couchbase (mostrada en la Figura 5) también muestra los últimos 10 errores relacionados con XDCR.
Figura 3 : Cubo no encontrado en el archivo xdcr_error
Figura 4: Últimos 10 errores mostrados en la interfaz de la consola de administración de Couchbase
¿Ha encontrado un error?
Al ser un producto de código abierto, nos encantaría recibir tus comentarios mientras juegas con Couchbase Server. Si encuentras un comportamiento inesperado, registra un error.
Por suerte, disponemos de herramientas que recopilan todos los registros necesarios que nuestro equipo de desarrollo necesita investigar. Encontrarás el cbcollect_info en /opt/couchbase/bin en Linux y en /Applications/Couchbase
Server.app/Contents/Resources/couchbase-core/bin en MacOS. Esta herramienta recoge todos los registros de un nodo del servidor Couchbase y los empaqueta en un archivo.
No olvides adjuntarlo a tu informe de errores.
¡Feliz pirateo!
—
ejemplo correcto en la primera sección debe ser
function (doc, meta) {
si(doc.foo)
{
emitir(doc.foo.barnull);
}
}
El enlace de ubicación del registro ha cambiado a http://docs.couchbase.com/couc…
[...] Couchbase es una base de datos distribuida, de alto rendimiento, Cache y NoSQL en una arquitectura de clúster único. A pesar de un nombre similar y una herencia compartida, Couchbase es un producto muy diferente a CouchDB o cualquier otra oferta NoSQL. Es fundamental poder monitorizar y perfilar el rendimiento de Couchbase junto con las métricas de la aplicación. Con el tiempo, la monitorización es el elemento para un despliegue exitoso de cualquier sistema de misión crítica. Esto es cierto en general y aún más importante en entornos de computación distribuida en particular. Es la única forma de garantizar el éxito a largo plazo. Para esta discusión, queremos centrarnos en la monitorización, pero es importante tener en cuenta que proporcionamos registros verbose de Couchbase para facilitar la solución de problemas de la aplicación. Estos registros se almacenan en '/opt/couchbase/var/lib/couchbase/logs'. Para obtener más información sobre estos registros por favor revise el registrador de vuelo Couchbase (https://www.couchbase.com/couchbase-server-recorder). […]