Site is under maintenance mode. Please wait few min!
Saltar al contenido

Cómo instalar Git en Ubuntu 16.04

marzo 4, 2020

 

Introducción

Los archivos de registro generados por los servidores y las aplicaciones están llenos de información que es potencialmente útil para depurar el software, la investigación de los incidentes de seguridad, y la generación de métricas y estadísticas interesantes.

Una estrategia tala típica hoy en día es centralizar toda esta información a través de un servicio de agregación de registro tal como la pila elástico o Graylog. Esto es ideal para el análisis en tiempo real y de corto a investigaciones históricas a mediano plazo, pero a menudo no es posible conservar los datos a largo plazo en estos sistemas debido a la limitada capacidad de almacenamiento u otros problemas de recursos del servidor.

Una solución común para estas necesidades de almacenamiento a largo plazo está archivando registros con un servicio de almacenamiento de objetos. Los registros pueden permanecer indefinidamente disponibles para su posterior análisis, los requisitos legales de retención, o con fines de copia de seguridad.

En este tutorial, vamos a utilizar Logrotate en un servidor de Ubuntu 16.04 para enviar registros de registro del sistema a un servicio de almacenamiento de objetos. Esta técnica se podría aplicar a cualquier registro manejados por Logrotate.

Requisitos previos

Para completar este tutorial, necesitará lo siguiente:

  • Una Ubuntu 16.04 servidor, con un usuario sudo habilitados no root, como se describe en Configuración inicial del servidor con Ubuntu 16.04. Las configuraciones de este tutorial deberían funcionar de manera más amplia en muchas diferentes distribuciones de Linux, pero pueden requerir cierta adaptación.
  • Debe estar familiarizado con Logrotate y cómo la configuración por defecto está configurado en Ubuntu 16.04. Por favor, lea Cómo administrar Logfiles con Logrotate en Ubuntu 16.04 para más información.
  • Usted necesita saber los siguientes detalles acerca de su servicio de almacenamiento de objetos: Acceso KeySecret KeyServer (o “punto final”) URLBucket nameif está utilizando espacios digitalocean, se puede leer cómo crear un espacio y la clave de API digitalocean para crear un nuevo cubo y recuperar la información anterior.
  • clave de acceso
  • clave secreta
  • servidor (o “punto final”) URL
  • Cubo Nombre

Usted necesita saber los siguientes detalles acerca de su servicio de almacenamiento de objetos: Acceso

  • clave
  • clave secreta
  • servidor (o “punto final”) URL
  • cubo Nombre

Si está utilizando espacios digitalocean, se puede leer cómo crear un espacio digitalocean y clave de API para crear un nuevo cubo y recuperar la información anterior.

Cuando haya completado los requisitos previos, SSH en el servidor para comenzar.

Paso 1 – Instalación de S3cmd

Vamos a utilizar una herramienta llamada S3cmd para enviar nuestros registros a cualquier servicio de almacenamiento de objetos compatibles con S3. Antes de instalar S3cmd , necesitamos instalar algunas herramientas para ayudarnos a instalar programas Python ( S3cmd está escrito en Python):

sudo apt-get update
sudo apt-get install python-setuptools

  • sudo apt-get update
  • sudo apt-get install python-setuptools

a continuación, vaya a un directorio se puede escribir en, a continuación, descargue el archivo .tar.gz S3cmd:

cd mp
curl -LO https://github.com/s3tools/s3cmd/releases/download/v2.0.1/s3cmd-2.0.1.tar.gz

  • cd / tmp
  • rizo -LO https://github.com/s3tools/s3cmd/releases/download/v2 .0.1 / s3cmd-2.0.1.tar.gz

Nota: Usted puede comprobar para ver si hay una versión más reciente de S3cmd está disponible visitando su página de prensa en Github. Si encuentra una nueva versión, copiar la URL .tar.gz y sustituirlo en el comando curl arriba.

Cuando haya completado la descarga, descomprimir y desempaquetar el archivo usando la utilidad tar:

tar xf s3cmd-*.tar.gz

  • tar xf s3cmd – * tar.gz.

Entonces, el cambio en el directorio resultante e instalar el software usando sudo:.

cd s3cmd-*
sudo python setup.py install

  • cd s3cmd- *
  • sudo python setup.py instalar

Prueba de la instalación preguntando s3cmd por su información de la versión:

s3cmd --version

  • s3cmd –version

Outputs3cmd version 2.0.1

Si ve una salida similar, S3cmd ha sido exitosamente instalada. A continuación, vamos a configurar S3cmd para conectarse a nuestro servicio de almacenamiento de objetos.

Paso 2 – Configuración S3cmd

S3cmd tiene un proceso de configuración interactiva que puede crear el archivo de configuración que necesitamos para conectarse a nuestro servidor de almacenamiento de objetos. La raíz usuario tendrá acceso a este archivo de configuración, así que vamos a empezar el proceso de configuración usando sudo y colocar el archivo de configuración en el directorio raíz del del usuario:

sudo s3cmd --configure --config=/root/logrotate-s3cmd.config

  • sudo s3cmd –configure –config = / root / logrotate-s3cmd.config

comenzará la instalación interactiva. Cuando sea apropiado, es posible aceptar las respuestas por defecto (entre paréntesis) pulsando ENTER. Vamos a caminar a través de las siguientes opciones, con respuestas sugeridas para un espacio en la región de nyc3 digitalocean. Sustituir el punto final y el cubo plantilla S3 según sea necesario para otros centros de datos digitalocean u otros proveedores de almacenamiento de objetos:

  • Clave de acceso: teclas de su acceso
  • clave secreta: el secreto de clave por defecto
  • Región [Estados Unidos]: ENTER
  • S3 de punto final [s3.amazonaws.com]: nyc3.digitaloceanspaces.com
  • cubo + nombre de host DNS-style: plantilla puerto de acceso a un cubo [% (cubo) s.s3.amazonaws.com]:% (cubo) s .nyc3.digitaloceanspaces.com contraseña
  • cifrado: ENTER, o especificar una contraseña para cifrar
  • Ruta al programa GPG [/ usr / bin / gpg]: ENTER protocolo
  • uso de HTTPS [Sí]: ENTER servidor proxy HTTP
  • nombre: ENTER, o llena la información del proxy

en este punto, s3cmd resumirá sus respuestas, a continuación, pedir que para probar la conexión. Pulse y luego ENTER para iniciar la prueba:

OutputTest access with supplied credentials? [Y
] y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)

Después de la prueba se le preguntará si desea guardar la configuración. Una vez más, el tipo y luego ENTER para hacerlo. El archivo de configuración se escribe en el lugar que previamente especificado usando la opción de línea de comandos –config.

En el siguiente paso, vamos a configurar Logrotate utilizar S3cmd para cargar nuestros registros.

Paso 3 – Configuración Logrotate para enviar girada a los registros de almacenamiento de objetos

Logrotate es un sistema potente y flexible para gestionar la rotación y la compresión de archivos de registro. Ubuntu utiliza por defecto para mantener todos los registros del sistema se encuentran en / var / log.

Para este tutorial, vamos a actualizar la configuración para enviar el registro syslog para almacenamiento de objetos cada vez que se gira.

En primer lugar, abra el archivo de configuración para Logrotate rsyslog, el procesador de registro del sistema:

sudo nano /etc/logrotate.d/rsyslog

  • sudo nano /etc/logrotate.d/rsyslog

Habrá dos bloques de configuración. Estamos interesados ​​en el primero, que se ocupa de / var / log / syslog:

/var/log/syslog
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog rotate > /dev
ull
endscript
}
. . .

Esta configuración especifica que / var / log / syslog será girado al día (todos los días), con siete registros antiguos se mantienen (girar 7) . No producirá un error si el archivo de registro no se encuentra (missingok) y no va a girar el registro si está vacío (notifempty). logs rotada se comprimen (compresa), pero no el reciente más (delaycompress). Por último, el guión postrotate dice rsyslog a cambio al nuevo archivo de registro después de que el anterior ha sido girado de distancia.

Antes de añadir las nuevas directivas de configuración, elimine la línea delaycompress, destacó anteriormente. Queremos que todos nuestros registros antiguos a comprimir inmediatamente antes de enviarlos al almacenamiento de objetos.

A continuación, añadir las siguientes líneas al final del bloque de configuración (fuera del bloque postrotate … endscript pero en el interior de la llave de cierre}):

. . .
dateext
dateformat -%Y-%m-%d-%s
lastaction
HOSTNAME=`hostname`
/usr/local/bin/s3cmd sync --config=/root/logrotate-s3cmd.config /var/log/syslog*.gz "s3://your-bucket-name/$HOSTNAME/"
endscript
. . .

Asegúrese de sustituir el nombre de depósito correcto para la parte resaltada anteriormente. Estas opciones se encenderán las extensiones de archivos basados ​​en fecha (dateext) para que podamos marca de tiempo nuestros archivos de registro. A continuación, establecemos el formato de estas extensiones con dateformat. Los archivos terminarán con nombres de archivo como syslog-2017-11-07-1510091490.gz: año, mes, fecha, a continuación, una marca de tiempo. La marca de tiempo asegura que podemos enviar dos archivos de registro en el mismo día sin los nombres de archivo en conflicto. Esto es necesario en caso de que tenga que forzar una rotación de registros por alguna razón (más sobre esto en el siguiente paso).

Las carreras de guión lastaction después de todos los archivos de registro se han comprimido. Se establece una variable con el nombre de host del servidor, a continuación, utiliza s3cmd Sync para sincronizar todos los archivos de registro del sistema hasta su cubo de almacenamiento de objetos, colocándolos en una carpeta con el nombre con el nombre de host. Tenga en cuenta que la barra final en «s3: // tu-cubo-Nombre / $ HOSTNAME /» es significativo. Sin ella, s3cmd trataría / $ HOSTNAME como un solo archivo, no un directorio completo de archivos de registro.

guardar y cerrar el archivo de configuración. La próxima vez Logrotate hace su recorrido diario, / var / log / syslog se moverán a un nombre de archivo basado en la fecha, comprimidos, y archivos.

nos puede obligar a que esto suceda de inmediato a prueba de que está funcionando correctamente:

sudo logrotate /etc/logrotate.conf --verbose --force

  • sudo logrotate /etc/logrotate.conf –verbose –force

Outputrotating pattern: /var/log/syslog
. . .
considering log /var/log/syslog
log needs rotating
. . .
running last action script
switching euid to 0 and egid to 0
upload: '/var/log/syslog-2017-11-08-1510175806.gz' -> 's3://example-bucket/example-hostname/syslog-2017-11-08-1510175806.gz' [1 of 1]
36236 of 36236 100% in 0s 361.16 kB/s done
Done. Uploaded 36236 bytes in 1.0 seconds, 35.39 kB/s.

Esta es la salida de una gran cantidad de información para muchos archivos de registro. Las partes pertinentes en el registro syslog y nuestra carga se ha extraído anteriormente. El resultado debe ser similar, con alguna evidencia de una carga correcta. Es posible que tenga más archivos están cargando si el servidor no es nuevo.

A continuación, vamos a configurar opcionalmente un servicio para ayudarnos a cargar los registros antes de los cierres del sistema.

Paso 4 – Envío de registros en el cierre

Este paso es opcional, y sólo es necesario si está configurando servidores efímeros que están siendo frecuentemente cerrada y destruido. Si este es el caso, usted podría perder hasta un día de registros cada vez que se destruye un servidor.

Para solucionar este problema, es necesario forzar Logrotate para ejecutar una última vez antes de que se cierre el sistema hacia abajo. Haremos esto mediante la creación de un servicio de systemd que se ejecuta el comando logrotate cuando se detiene.

En primer lugar, abrir un nuevo archivo de servicio en un editor de texto:

sudo nano /etc/systemd/system/logrotate-shutdown.service

  • sudo nano /etc/systemd/system/logrotate-shutdown.service

pegar en la siguiente definición de servicio:

[Unit]
Description=Archive logs before shutdown
After=network.target

[Service]
RemainAfterExit=yes
ExecStop=/usr/sbin/logrotate /etc/logrotate.conf --force

[Install]
WantedBy=multi-user.target

Este archivo define una servicio que no hace nada cuando se inicia (que carece de una declaración ExecStart), y se ejecuta logrotate (con la opción –force) cuando se detuvo. Que se llevará a cabo antes de que se cierre la conexión de red hacia abajo debido a la Después = network.target línea.

Guarde el archivo y salga del editor de texto, a continuación, iniciar y activar el servicio utilizando systemctl:

sudo systemctl start logrotate-shutdown.service
sudo systemctl enable logrotate-shutdown.service

  • sudo inicio systemctl logrotate-shutdown.service
  • sudo systemctl permiten logrotate-shutdown.service

Compruebe el estado de la nuevo servicio:

sudo systemctl status logrotate-shutdown.service

  • sudo estado systemctl logrotate-shutdown.service

Output● logrotate-shutdown.service - Archive logs before shutdown
Loaded: loaded (/etc/systemd/system/logrotate-shutdown.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2017-11-08 20:00:05 UTC; 8s ago

Nov 08 20:00:05 example-host systemd[1]: Started Archive logs before shutdown.

queremos ver que está activo. El hecho de que haya salido está bien, eso es debido a tener ningún comando ExecStart.

Se puede probar que el nuevo servicio está funcionando, ya sea deteniendo de forma manual:

sudo systemctl stop logrotate-shutdown.service

  • sudo parada systemctl logrotate-shutdown.service

o reiniciando el sistema:

sudo reboot

  • sudo reinicio método

De cualquier voluntad desencadenar el comando Logrotate y cargar un nuevo archivo de registro. Ahora, salvo un apagado sin gracia, si no se pierden ningún registro al destruir un servidor.

Nota: plataformas muchos nube no realiza un cierre cuando un servidor está siendo destruido o terminado. Usted tendrá que probar esta funcionalidad con su configuración particular, y, o bien configurarlo para el apagado ordenado o encontrar otra solución para desencadenar una rotación de registro final.

Conclusión

En este tutorial instalamos S3cmd, configurado para conectarse a nuestro servicio de almacenamiento de objetos, y configurado Logrotate para cargar archivos de registro cuando gira / var / log / syslog. A continuación, establecemos un servicio systemd para funcionar –force logrotate en el apagado, para asegurarse de que no se pierde ningún registro al destruir los servidores efímeras.

Para obtener más información sobre las configuraciones disponibles para Logrotate, se refiere a su página de manual mediante la introducción de hombre logrotate en la línea de comandos. Más información sobre S3cmd se puede encontrar en su página web.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *