Toolkit & Habits for Linux Network & System Administration [cerrado]

20

Tengo la tarea de administrar una red de oficinas pequeñas, así como varias estaciones de trabajo que ejecutan principalmente Debian y Ubuntu. Hay dos servidores: una base de datos y un servidor de impresión, y un servidor de respaldo y archivo.

Siendo relativamente nuevo en este lado de las cosas, sabiendo lo suficiente como para ayudarme hasta cierto punto en Linux, me gustaría saber qué herramientas de software y tareas / hábitos puedo usar / adquirir para aprender este campo y ser efectivo mientras lo hago.

No necesito saber cuál es el mejor, solo lo que un administrador de sistemas novato puede usar como paquete de inicio para aprender y usar como base para convertirse en la administración adecuada del sistema.

Lo que necesito son esas pocas herramientas básicas para comenzar, y el tipo de cosas que necesito hacer regularmente, por ejemplo: qué registros verificar, cuándo y qué monitorear, el tipo de lugar "correcto" para comenzar y en el que puedo anuncio como lo necesito.

slashmais
fuente
Tema subjetivo, en extremo. ¿Cómo sería una respuesta "correcta"?
Bill Weiss el

Respuestas:

16

1

supervisar los procesos críticos del negocio [p. ej., la base de datos se está ejecutando y responde a consultas simples], parámetros básicos del sistema operativo [espacio libre en disco, promedio de carga]. puedes usar nagios o zabbix por ejemplo.

2

Recopilar estadísticas para establecer algunas líneas de base. En el futuro, esto será útil para la planificación de la capacidad. puedes usar munin , zabbix, cactus , etc.

3

ejecute copias de seguridad automáticas programadas, almacene algunas de ellas sin conexión, fuera del sitio. supervise si tuvieron éxito, de vez en cuando verifique manualmente si puede recuperar datos críticos. es posible que desee utilizar backupninja para orquestarlos o Zmanda , pero hay herramientas mucho más útiles ...

4 4

documento. por tu propio bien. No piense que la falta de documentación aumenta la seguridad de su trabajo. el primero que sufrirá por falta de usted es usted, probablemente olvidará las cosas con bastante rapidez.

5 5

de otras cosas al azar:

aprende un lenguaje de secuencias de comandos, ¿tal vez ya conoces uno? perl / python / php se puede usar para automatizar tareas y, en muchos casos, son más adecuados que bash para tareas más complicadas

aprende tus herramientas - es una lista interminable ... ssh viene a la mente probablemente primero. mira esto y aquello .

pQd
fuente
"es una lista interminable ..." - de hecho; Busqué en Google antes de hacer esta pregunta, pero me sentí abrumado. Creo en KISS, y quiero comenzar desde una base simple y fácil e intentar aprender las cosas bien.
slashmais
1
Me gustaría agregar que los puntos 1 y 4 son los más importantes. Recomiendo usar un sistema de gestión de configuración como Puppet. como mínimo, debería usar el control de versiones (git / svn), pero Puppet le permitirá hacer las cosas una vez y luego será repetible si necesita agregar o reconstruir servicios. También creo en la sobre ingeniería. Si construye su infraestructura como si necesitara 100 máquinas, será más fácil administrar sus 10 máquinas y escalar si es necesario.
neoice
44
Supongo que es una cuestión de opinión, pero pondría el punto 3 como el más crítico. Sí, apesta cuando la base de datos de contabilidad está inactiva durante medio día, pero realmente apesta cuando todas las finanzas se han ido por falta de copias de seguridad. YMMV.
Joe Internet
@pQd: también agregaría monitoreo (nagios, opennms, etc.) y un sistema de tickets. No tiene que ser nada sorprendente: solo un lugar para guardar sus artículos de "todo". Eventualmente, se puede expandir a personas que envían los paquetes que necesitan o desarrollan colas para otros equipos.
warren
lea Gestión del tiempo para administradores de sistemas por Thomas Limoncelli. Debería requerirse la lectura para todos los que trabajan por correo electrónico.
warren
10

La práctica de administración de sistemas y redes , de Limoncelli, et al, es donde debe comenzar. Las tecnologías irán y vendrán (y se pueden buscar en Google fácilmente según sea necesario), pero la información en ese libro es atemporal (y no tiene precio).

womble
fuente
2
También Essential System Administration por Frisch.
Jason Antman el
10

Algunas herramientas básicas para comenzar

Google No en serio. Google es el sueño de un administrador de sistemas hecho realidad. No hay una mejor manera de aprovechar la gran cantidad de información en Internet. Y no se limite a solo buscar "Linux para principiantes"; si tiene una tarea específica que está tratando de lograr, busque esa cosa específica en Google. A menudo encontrará mucha más información de la que necesita, y como principiante, mucha de ella parecerá otro idioma, pero aprender haciendo es una buena manera de aprender rápidamente.

Tabulación completada. La línea de comandos de Linux permite completar tabulaciones de todos los comandos, árboles de directorios, nombres de directorios y nombres de archivos.

Páginas man. Cada comando y muchos archivos de configuración del sistema (/ etc / fstab, / etc resolv.conf, etc.) tienen páginas Man. Simplemente escriba "man command_name" o "man file_name" para ver si lo que está buscando tiene uno. Ah y "q" sale de una página de manual.

SSH Una de las mejores formas de acceder a un sistema Linux. Probablemente la mejor manera si no tiene acceso físico al sistema.

Pantalla. Screen es una pequeña aplicación fantástica que te permite convertir un terminal en muchos, te permite sacar cosas de tu camino / en segundo plano, y te permite dejar las cosas en funcionamiento para que puedas volver a ellas más tarde.

Nano Usted mencionó anteriormente que ya usa esto, pero solo pensé en tirar mis dos centavos y decir que estoy de acuerdo. Vi y Vim y todo eso está bien y todo, pero es la simplicidad de Nano lo que amo. Es como el Bloc de notas del mundo Linux.

Encuentra y Grep. Hallazgo es ideal para la búsqueda de archivos, Grep es ideal para la búsqueda de archivos. Ambos pueden usarse de maneras muy simples, y ambos pueden usarse de maneras muy complejas, pero ambos son bastante útiles de cualquier manera.

Sudo Te permite actuar como root, sin ser root. Muy útil.

Además de algunas otras herramientas que mencionaré en el contexto de la siguiente sección ...

Las clases de cosas que debes hacer regularmente

Monitoree su sistema. Supervise el uso de su disco (df es un comando útil, y también para directorios específicos), supervise sus procesos y tareas en ejecución (a través del comando ps y los comandos principales), supervise a los usuarios conectados a sus sistemas (los usuarios y los comandos que decirte esto) y supervisa el uso de tu red (aplicaciones como cactus son buenas para eso). Si tiene acceso a un entorno X Windows, siempre encontré que GKrellM es una herramienta de monitoreo de sistema todo en uno muy útil.

Copias de seguridad. Por el amor de Tux, copias de seguridad. Copia de seguridad de archivos de configuración, copias de seguridad de directorios de inicio, datos de aplicaciones de copia de seguridad Copias de seguridad. Incluso si todo lo que está haciendo es copiar directamente los datos del servidor a un recurso compartido CIFS / NFS en otra caja y un disco duro externo. Y sí, debe conservar dos copias de cada copia de seguridad, y nunca en el mismo medio / sistema. Piense en ello como copias de seguridad de sus copias de seguridad.

Revisa tus copias de seguridad. Verifique rutinariamente para asegurarse de que puede restaurar los datos de sus copias de seguridad en sus sistemas. Las copias de seguridad vacías / corruptas / incompletas son tan inútiles como el día es largo.

Usa tus archivos de registro. Dmesg, / var / log / messages, y realmente casi cualquier cosa en / var / log period. Si algo no funciona bien y no sabe por qué, los registros pueden no tener la respuesta, pero definitivamente pueden ayudarlo a encontrarlo. Y los registros y directorios en / var / log tienen un nombre sensato, por lo que encontrar el registro correcto no debería ser difícil. No necesitará monitorear constantemente cada archivo de registro, pero vigilarlos lo ayudará a mantener su sistema saludable y seguro.

Mantenga su sistema actualizado. No deje que su software funcione durante meses y meses sin ser actualizado, ya que puede provocar muchos dolores de cabeza y romper cosas cuando la sintaxis del archivo de configuración o las dependencias cambian. Las diferentes distribuciones tienen diferentes programas de actualización (apt-get, yum, etc.) pero cualquiera que use, apréndalo y úselo regularmente.

Mantenga su sistema seguro. Use cosas como iptables, PAM, hosts.allow / hosts.deny y similares para evitar el acceso no deseado y el uso de su sistema.

Nunca dejes de aprender. Para continuar con algo que dije antes (aprender a hacer), algo que debes considerar son las máquinas virtuales. Descargue VirtualBox (o si tiene licencias VMWare aún mejores) y conviértase en una máquina virtual Linux. Puede elegir cualquier distribución que desee realmente, pero obviamente tiene más sentido ir con una que esté utilizando en su entorno. Juega en la máquina virtual ... úsala como un sandbox. Prepara cosas, rompe cosas, investiga, aprende. La belleza de una máquina virtual de sandbox es que no importa lo que le pase. Si lo manguera por completo, simplemente haga uno nuevo. O guarde una copia de seguridad del original después de configurarlo y reutilícelo siempre que lo necesite.

Como algunas de las otras publicaciones en este hilo han mencionado y aludido, estas listas realmente podrían ser casi infinitas, pero espero que esto lo lleve a un buen comienzo.

pez real
fuente
Quitó la sintaxis de mis comandos "man" de ejemplo, así que los ajusté un poco. Simplemente debe reemplazar "command_name" y "file_name" con el comando o archivo adecuado.
pez rey
A veces en el Bloc de notas y me encuentro escribiendo ESC: wq el problema es que no es un caso raro. Me pregunto por qué ...
Mircea Vutcovici
8

Si recién está comenzando, y especialmente porque tiene algunos sistemas Debian (Ubuntu es Debian en su núcleo), le recomiendo la Referencia de Debian . Es una excelente descripción general de casi todos los aspectos de la administración del sistema y debe cubrir casi todo lo que necesita saber sobre el mantenimiento de un pequeño conjunto de sistemas como estos.

También estoy de acuerdo con todos los puntos que pQd hizo, y más específicamente, creo que sería una buena idea configurar un wiki para documentar todos sus procesos y configuraciones. En mi organización usamos Trac, pero cualquier motor wiki debería hacerlo, solo asegúrese de que tenga una buena manera de mostrar el código fuente, ya que es útil para pequeños scripts y listas de comandos.

Kamil Kisiel
fuente
3

Honestamente, la Administración del sistema Linux no es un campo en el que puedas simplemente 'saltar'.

Sin embargo, si tiene que hacerlo , hay algunos buenos libros sobre el tema. O'Reilly tiene dos libros (Administración de redes de Linux y Administración de sistemas de Linux) que deberían ayudarlo a comenzar.

Personalmente, si fuera usted, solo pasaría unos días jugando con diferentes distribuciones, instalando software, configurando cosas de tipo Nagios / Cacti / Apache2 / SSH / NFS, y tal vez aprendiendo algún tipo de lenguaje de script (uso Perl, yo mismo; pero muchos de mis colegas administradores prefieren usar Python. Sin embargo, depende de ti lo que quieras aprender).

Y definitivamente aprende la línea de comando. No recurra a las herramientas gráficas como una muleta.

Aprender vi. Incluso si solo lo aprende lo suficientemente bien como para hacer ediciones básicas, entonces está bien, pero es importante aprender vi porque a veces estás atrapado en un sistema sin Vim / Nano / Emacs. Cuando esté en esa situación, estará feliz de haber pasado un día o dos aprendiendo vi.

Si necesita ayuda, no dude en enviarme un correo electrónico (mi correo electrónico se elimina [por razones de seguridad]). Estaré encantado de ayudarle fuera de ServerFault.

Michael Pobega
fuente
Yo se Perl; Sé / some / vi (cómo insertar y guardar y salir, prefiero nano). Afortunadamente, mi situación es de 'baja presión', por lo que no necesito convertirme en un gurú del administrador del sistema de inmediato, puedo crecer en ella (y tener una falla en el servidor y usted (gracias por la confianza) para preguntar cuándo realmente se atascan (también pertenecen a un LUG muy útil). Lo que necesito es esas pocas herramientas básicas para comenzar, y el tipo de cosas que necesito hacer regularmente, por ejemplo: qué registros verificar, cuándo y qué monitorear, el tipo de lugar "correcto" para comenzar y al que puedo
publicar
Entonces te recomiendo que consideres configurar Cacti, Nagios, Snort y Postfix. Es probable que sean las cuatro herramientas que más usa para monitorear su sistema. La configuración de estos también le ahorrará mucho tiempo comprobando manualmente los archivos de registro. En cuanto a la verificación manual de registros, cualquier cosa en / var / log / es probablemente una buena apuesta. No hay archivos específicos que se puede apuntar a, pero si algo no está funcionando adecuadamente con algo que puede ser una buena apuesta para comprobar en / var / log
Michael Pobega
Había una vez que también prefería nano, slashmais. Una vez que comience a editar archivos todo el tiempo, querrá aprender vi con más detalle. No puedo tener suficiente ahora ...
Kyle Smith
3

Si se siente cómodo instalando una aplicación en los servidores, considere webmin, ya que proporciona una "ventanilla única" para la mayor parte del registro y la configuración. Configúrelo para que se ejecute en un puerto de alto orden utilizando SSL y se amortiza fácilmente en la comprobación.

OldTroll
fuente
2

Te diré el mejor no secreto de la administración del sistema y la red. ¿Estás listo? Ok, aquí está:

Aprende los fundamentos. Déjame elaborar.

Cualquiera (o casi) puede aprender qué hace este o aquel software en particular y cómo presionar este botón en esa herramienta para hacer que x, y, o z funcionen. Eso no es nada especial.

Si quieres ser un buen administrador del sistema / red, aprende las cosas ocultas. ¿Cuál es la secuencia de eventos en una conexión de red típica? ¿Cuál es la diferencia entre un marco y un paquete? ¿Qué significa realmente el promedio de carga en un sistema Unix? ¿Cuál es el proceso de arranque típico para una máquina? Solo eso, si lo sigue de principio a fin, proporcionará una gran cantidad de conocimiento.

Una vez que comprenda los fundamentos y los comprenda realmente bien, es mucho más fácil colocar el conocimiento sobre una buena base. Pero si comienzas desde arriba y tratas de aprender partes específicas de software sin saber lo que sucede debajo, eso te hará ... simplemente otro conserje de alta tecnología, básicamente.

DictatorBob
fuente
2

En primer lugar, encuentre sus registros. La mayoría de las distribuciones de Linux se registran en / var / log / messages, aunque he visto un par de registros en / var / log / syslog. Si algo está mal, lo más probable es que haya información relevante en los registros. Además, si se trata de correo electrónico, no olvide / var / log / mail. Vuelva a verificar sus aplicaciones, descubra si alguna de ellas se registra en un lugar ridículo, fuera de syslog.

Mejora tus habilidades vi. Nano podría ser lo que todos los niños geniales están usando en estos días, pero la experiencia me ha enseñado que vi es el único editor de texto que está garantizado para estar en el sistema. Una vez que te acostumbres a los atajos de teclado y comiences a crear tus propios disparadores, vi será como una segunda naturaleza para ti.

Lea la página de manual, ejecute los siguientes comandos en cada máquina y copie los resultados en su documentación:

hostname
cat /etc/*release*
cat /etc/hosts
cat /etc/resolv.conf
cat /etc/nsswitch
df -h
ifconfig -a
free -m
crontab -l
ls /etc/cron.d
echo $SHELL

Eso servirá como el comienzo de su documentación. Esos comandos le permiten conocer su entorno y pueden ayudarlo a reducir problemas más adelante.

Hojee sus registros y busque "error" o "error". Eso te dará una idea de lo que no funciona como debería. Sus usuarios le darán su opinión sobre lo que está mal, escuche atentamente lo que tienen que decir. No entienden el sistema, pero lo ven de una manera diferente a la suya.

Cuando tenga un problema, verifique las cosas en este orden:

  1. Espacio en disco (df -h): Linux, y algunas aplicaciones que se ejecutan en Linux, hacen cosas muy extrañas cuando se agota el espacio en disco. Puede parecer no relacionado, hasta que verifique y encuentre un sistema de archivos 100% lleno.

  2. Arriba: Top le informará si tiene algún proceso que está atascado y consume todos sus ciclos de CPU disponibles. Nada debe consumir el 99% de la CPU durante un período prolongado de tiempo. Si es un proceso legítimo, probablemente debería fluctuar hacia arriba y hacia abajo. Mientras estás en la cima, verifica ...

  3. Carga del sistema: la carga del sistema normalmente debería ser inferior a 3 en un servidor o estación de trabajo estándar. La carga del sistema se basa en la CPU, la memoria y las E / S.

  4. Memoria (free -m): el uso de RAM en Linux es un poco diferente. No es raro ver un servidor con casi toda su RAM gastada. No entre en pánico, si ve esto, es principalmente caché, y se borrará según sea necesario. Sin embargo, preste mucha atención a la cantidad de intercambio en uso. Si es posible, manténgalo lo más cerca posible de cero. La memoria insuficiente puede conducir a todo tipo de problemas de rendimiento.

  5.  Registros: regrese a sus registros, ejecute tail -500 / var / log / messages | más y comenzar a leer y ver lo que está sucediendo. Con suerte, los registros podrán apuntarlo en la dirección que debe seguir a continuación.

Un servidor Linux bien mantenido puede funcionar durante años sin problemas. Simplemente cerramos uno que había estado funcionando durante 748 días, y solo lo cerramos porque habíamos migrado la aplicación a un nuevo hardware. Con suerte, esto le ayudará a mojarse los pies y comenzar bien.

Una última cosa, siempre haga una copia de un archivo de configuración que desee cambiar, y siempre copie la línea que está cambiando y comente el original, agregando su razón para cambiarlo. Esto lo llevará a la costumbre de documentar a medida que avanza y puede salvar su piel 9 meses más adelante.

ibuys
fuente
1

buena pregunta.

Mi consejo. Aprende a usar tu caparazón.

El estándar es bash. Puedes escribir ayuda para entrar en la documentación.

aprender tuberías "|" para obtener la salida de un comando a la entrada de un segundo comando.

Una última cosa, me ayudó mucho tiempo atrás: Linux One Page Manual

trabaja duro, nunca te rindas.

En 3-4 años tendrás suficiente conocimiento y muchas cosas vienen de sí mismas :)

mal muerto
fuente