Toolkit & Habits for Linux Network & System Administration [fermé]

20

Je suis chargé de l'administration d'un petit réseau de bureaux ainsi que de plusieurs postes de travail fonctionnant principalement sous Debian et Ubuntu. Il existe deux serveurs: un serveur de base de données et d'impression et un serveur de sauvegarde et de fichiers.

Étant relativement nouveau dans ce domaine, sachant suffisamment pour m'aider dans une certaine mesure sur Linux, je voudrais savoir quels outils logiciels et tâches / habitudes je peux utiliser / acquérir pour apprendre ce domaine et être efficace en le faisant.

Je n'ai pas besoin de savoir ce qui est le meilleur, juste ce qu'un administrateur système débutant peut utiliser comme pack de démarrage pour apprendre et utiliser comme base pour évoluer en une administration système appropriée.

Ce dont j'ai besoin, ce sont ces quelques outils de base pour commencer, et le genre de choses que je dois faire régulièrement, par exemple: quels journaux vérifier, quand et quoi surveiller, le type de «bon» endroit pour commencer et vers lequel je peux annonce comme j'ai besoin.

slashmais
la source
Sujet subjectif, à l'extrême. À quoi ressemblerait une «bonne» réponse?
Bill Weiss

Réponses:

16

1

surveiller les processus critiques de l'entreprise [par exemple - la base de données fonctionne-t-elle et répond-elle aux requêtes simples], les paramètres de base du système d'exploitation [espace disque libre, charge moyenne]. vous pouvez utiliser nagios ou zabbix par exemple.

2

recueillir des statistiques pour établir certaines bases de référence. à l'avenir, cela sera utile pour la planification des capacités. vous pouvez utiliser munin , zabbix, cactus, etc.

3

exécuter des sauvegardes automatiques planifiées, stocker certaines d'entre elles hors ligne, hors site. surveiller s'ils ont réussi, de temps en temps vérifier manuellement si vous pouvez récupérer des données critiques. vous voudrez peut-être utiliser backupninja pour les orchestrer ou Zmanda , mais il existe des outils beaucoup plus utiles.

4

document. pour votre propre bien. ne pensez pas que le manque de documentation augmente votre sécurité d'emploi. le premier qui en souffrira par manque, c'est vous, vous oublierez probablement les choses assez rapidement.

5

d'autres choses aléatoires:

apprendre un langage de script - peut-être en connaissez-vous déjà un? perl / python / php peut être utilisé pour automatiser des tâches et dans de nombreux cas, il est mieux adapté que bash pour des tâches plus compliquées

apprenez vos outils - c'est une liste interminable ... ssh vient probablement à l'esprit en premier. Découvrez ceci et cela .

pQd
la source
"c'est une liste interminable ..." - en effet; Je l'ai recherché sur Google avant de poser cette question, mais j'ai été dépassé. Je crois en KISS, et je veux partir d'une base simple et facile et essayer d'apprendre les choses correctement.
slashmais
1
Je voudrais ajouter que les points 1 et 4 sont les plus importants. Je recommanderais d'utiliser un système de gestion de configuration comme Puppet. à tout le moins, vous devriez utiliser le contrôle de version (git / svn), mais Puppet vous permettra de faire les choses une fois, puis sera répétable si vous avez besoin d'ajouter ou de reconstruire des services. Je crois aussi à la suringénierie. Si vous construisez votre infrastructure comme si vous aviez besoin de 100 machines, il sera plus facile de gérer vos 10 machines et de les faire évoluer si nécessaire.
neoice
4
Je suppose que c'est une question d'opinion, mais je mettrais le point 3 comme le plus critique. Oui, ça craint quand la base de données de comptabilité est en panne pendant une demi-journée, mais ça craint vraiment quand tous les états financiers sont partis à cause de sauvegardes no / pauvres. YMMV.
Joe Internet
@pQd - J'ajouterais également une surveillance (nagios, opennms, etc.) et un système de billetterie. Cela n'a pas à être quelque chose d'incroyable: juste un endroit pour ranger vos objets "à faire". Finalement, il peut être étendu aux personnes soumettant les demandes de renseignements dont elles ont besoin ou développant des files d'attente pour d'autres équipes.
warren
lire Gestion du temps pour les administrateurs système par Thomas Limoncelli. Devrait être une lecture obligatoire pour tous ceux qui travaillent par e-mail.
warren
10

La pratique de l'administration système et réseau , par Limoncelli, et al, est par où vous devriez commencer. Les technologies vont et viennent (et peuvent être facilement googlées au besoin), mais les informations contenues dans ce livre sont intemporelles (et inestimables).

womble
la source
2
Aussi Administration système essentielle par Frisch.
Jason Antman
10

Quelques outils de base pour commencer

Google. Non sérieusement. Google est le rêve d'un administrateur système devenu réalité. Il n'y a pas de meilleur moyen d'exploiter la grande quantité d'informations sur Internet. Et ne vous limitez pas à la recherche de "linux pour débutants"; si vous avez une tâche spécifique que vous essayez d'accomplir, Google pour cette chose spécifique. Vous trouverez souvent beaucoup plus d'informations que vous n'en avez besoin, et en tant que débutant, beaucoup d'entre elles ressembleront à une autre langue, mais apprendre à faire est un bon moyen de saisir les choses rapidement.

Compléter la tabulation. La ligne de commande Linux permet de compléter par tabulation toutes les commandes, arborescences de répertoires, noms de répertoires et noms de fichiers.

Pages de manuel. Chaque commande et de nombreux fichiers de configuration système (/ etc / fstab, / etc resolv.conf, etc.) ont des pages de manuel. Tapez simplement "man command_name" ou "man file_name" pour voir si ce que vous cherchez en a un. Oh et "q" quitte une page de manuel.

SSH. L'une des meilleures façons d'accéder à un système Linux. Probablement la meilleure façon si vous n'avez pas d'accès physique au système.

Écran. Screen est une petite application fantastique qui vous permet de transformer un terminal en plusieurs, de sortir les choses de votre chemin / en arrière-plan et de laisser les choses en marche pour pouvoir y revenir plus tard.

Nano. Vous avez mentionné ci-dessus que vous l'utilisez déjà, mais je pensais simplement que je mettrais mes deux cents et que je suis d'accord. Vi et Vim et tout ça va bien et tout, mais c'est la simplicité de Nano que j'aime. C'est comme le Bloc-notes du monde Linux.

Trouvez et Grep. Trouver est idéal pour la recherche de fichiers, Grep est idéal pour la recherche dans les fichiers. Les deux peuvent être utilisés de manière très simple, et les deux peuvent être utilisés de manière très complexe, mais les deux sont très utiles dans les deux cas.

Sudo. Vous permet d'agir comme root, sans être root. Très utile.

Plus quelques autres outils que je mentionnerai dans le contexte de la prochaine section ...

Le genre de choses que vous devez faire régulièrement

Surveillez votre système. Surveillez votre utilisation du disque (df est une commande utile, et du aussi pour des répertoires spécifiques), surveillez vos processus et tâches en cours d'exécution (via la commande ps et les commandes supérieures), surveillez les utilisateurs connectés à vos systèmes (les utilisateurs et les commandes qui seront vous le dire) et surveillez votre utilisation du réseau (des applications comme les cactus sont bonnes pour ça). S'il vous arrive d'avoir accès à un environnement X Windows, j'ai toujours trouvé que GKrellM était un outil de surveillance système tout-en-un très utile.

Sauvegardes. Pour l'amour de Tux, des sauvegardes. Sauvegarde des fichiers de configuration, sauvegarde des répertoires de départ, sauvegarde des données d'application. Sauvegardes. Même si tout ce que vous faites est de copier directement les données du serveur vers un partage CIFS / NFS sur une autre boîte et un disque dur externe. Et oui, vous devez conserver deux copies de chaque sauvegarde, et jamais sur le même support / système. Considérez-le comme des sauvegardes de vos sauvegardes.

Vérifiez vos sauvegardes. Vérifiez régulièrement que vous pouvez restaurer les données de vos sauvegardes sur vos systèmes. Les sauvegardes vides / corrompues / incomplètes sont aussi inutiles que la journée est longue.

Utilisez vos fichiers journaux. Dmesg, / var / log / messages, et à peu près n'importe quoi dans la période / var / log. Si quelque chose ne fonctionne pas correctement et que vous ne savez pas pourquoi, les journaux peuvent ne pas avoir la réponse, mais ils peuvent certainement vous aider à le trouver. Et les journaux et répertoires dans / var / log sont judicieusement nommés, donc trouver le bon journal ne devrait pas être difficile. Vous n'aurez pas besoin de surveiller constamment chaque fichier journal, mais en gardant un œil sur eux vous aidera à garder votre système sain et sécurisé.

Gardez votre système à jour. Ne laissez pas votre logiciel disparaître pendant des mois et des mois sans être mis à jour, car cela peut entraîner de nombreux maux de tête et casser des choses lorsque la syntaxe du fichier de configuration ou les dépendances changent. Différentes distributions ont des programmes de mise à jour différents (apt-get, yum, etc.) mais celui que vous utilisez, apprenez-le et utilisez-le régulièrement.

Gardez votre système en sécurité. Utilisez des choses comme iptables, PAM, hosts.allow / hosts.deny et similaires pour empêcher l'accès et l'utilisation indésirables de votre système.

N'arrêtez jamais d'apprendre. Pour continuer avec quelque chose que j'ai dit plus tôt (apprendre en faisant), vous devez vous pencher sur les machines virtuelles. Téléchargez VirtualBox (ou si vous avez des licences VMWare encore meilleures) et faites-vous une machine virtuelle Linux. Vous pouvez vraiment choisir la distribution que vous voulez, mais il est évidemment plus judicieux de choisir celle que vous utilisez dans votre environnement. Jouez dans la VM .. utilisez-le comme un bac à sable. Préparez des choses, cassez des choses, enquêtez, apprenez. La beauté d'une machine virtuelle sandbox est qu'elle n'a pas d'importance ce qui lui arrive. Si vous l'arrosez totalement, faites-en un nouveau. Vous pouvez également conserver une copie de sauvegarde de l'original après l'avoir configurée et la réutiliser à tout moment.

Comme certains des autres articles de ce fil l'ont mentionné et fait allusion, ces listes pourraient vraiment être presque infinies, mais j'espère que cela vous permettra de bien démarrer.

poisson-roi
la source
Il a supprimé la syntaxe de mon exemple de commandes "man", je les ai donc légèrement ajustées. Vous devez simplement remplacer "nom_commande" et "nom_fichier" par la commande ou le fichier approprié.
kingfish
Parfois, dans le Bloc-notes et je me retrouve à taper ESC,: wq le problème est que ce n'est pas un cas rare. Je me demande pourquoi ...
Mircea Vutcovici
8

Si vous ne faites que commencer, et surtout depuis que vous avez des systèmes Debian (Ubuntu est Debian à la base), je recommande fortement la référence Debian . C'est un excellent aperçu de presque tous les aspects de l'administration système et devrait couvrir presque tout ce que vous devez savoir sur la maintenance d'un petit ensemble de systèmes comme ceux-ci.

Je suis également d'accord avec tous les points soulevés par pQd, et plus précisément, je pense que ce serait une bonne idée pour vous de mettre en place un wiki pour documenter tous vos processus et configurations. Dans mon organisation, nous utilisons Trac, mais tout moteur wiki devrait le faire, assurez-vous simplement qu'il a un bon moyen d'afficher le code source car c'est utile pour les petits scripts et les listes de commandes.

Kamil Kisiel
la source
3

Honnêtement, l'administration système Linux n'est pas un domaine dans lequel vous pouvez simplement «sauter».

Si vous devez , cependant, il y a quelques bons livres sur le sujet. O'Reilly a deux livres (Linux Network Administration et Linux System Administration) qui devraient vous aider à démarrer.

Personnellement, si j'étais vous, je passerais quelques jours à jouer avec différentes distributions, à installer des logiciels, à configurer des choses de type Nagios / Cacti / Apache2 / SSH / NFS et peut-être à apprendre une sorte de langage de script (j'utilise Perl, moi-même, mais beaucoup de mes confrères préfèrent utiliser Python. C'est vraiment à vous de décider ce que vous voulez apprendre).

Et certainement apprendre la ligne de commande. Ne vous rabattez pas sur des outils graphiques comme une béquille.

Apprenez vi. Même si vous ne l'apprenez que suffisamment bien pour effectuer des modifications de base, c'est bien - mais il est important d'apprendre vi car parfois vous êtes coincé sur un système sans Vim / Nano / Emacs. Dans cette situation, vous serez heureux d'avoir passé un jour ou deux à apprendre vi.

Si vous avez besoin d'aide, n'hésitez pas à m'envoyer un e-mail (mon e-mail est [supprimé pour des raisons de sécurité]) - Je serais heureux de vous aider en dehors de ServerFault.

Michael Pobega
la source
Je connais Perl; Je connais / certains / vi (comment insérer et enregistrer et quitter - préférez nano). Ma situation est heureusement `` basse pression '', donc je n'ai pas besoin de devenir un gourou administrateur système tout de suite, je peux y grandir (et avoir des défauts de serveur et vous (merci pour la confiance) me demander quand je vraiment coincé (appartiennent également à un LUG très utile). J'ai besoin de ces quelques outils de base pour commencer et du genre de choses que je dois faire régulièrement, par exemple: quels journaux vérifier, quand et quoi surveiller, le sorte de "bon" endroit pour commencer et auquel je peux faire de la publicité selon mes besoins.
slashmais
Ensuite, je vous recommande d'examiner la configuration de Cacti, Nagios, Snort et Postfix. Ce seront probablement les quatre outils que vous utilisez le plus pour surveiller votre système. Leur configuration vous fera également gagner beaucoup de temps en vérifiant manuellement les fichiers journaux. Quant à la vérification manuelle des journaux, tout dans / var / log / est probablement un bon pari. Il n'y a pas de fichiers spécifiques sur lesquels je peux vous pointer, mais si quelque chose ne fonctionne pas correctement avec quelque chose, cela peut être un bon pari pour archiver / var / log
Michael Pobega
Il était une fois, je préférais aussi le nano, le slashmais. Une fois que vous aurez commencé à éditer des fichiers tout le temps, vous voudrez apprendre vi plus en détail. Je ne peux pas en avoir assez maintenant ...
Kyle Smith
3

Si vous êtes à l'aise d'installer une application sur les serveurs, pensez à webmin car il fournit un "guichet unique" pour la plupart de la journalisation et de la configuration. Configurez-le pour qu'il s'exécute sur un port d'ordre élevé en utilisant SSL et il se paie facilement en vérifiant.

OldTroll
la source
2

Je vais vous dire le plus grand secret de l'administration système et réseau. Tu es prêt? Ok, le voici:

Apprenez les principes fondamentaux. Permettez-moi de développer.

N'importe qui (ou presque) peut apprendre ce que fait tel ou tel logiciel particulier, et comment appuyer sur ce bouton sur cet outil pour faire fonctionner x, y ou z. Ce n'est rien de spécial.

Si vous voulez être un bon administrateur sys / net, apprenez les trucs sous le capot. Quelle est la séquence d'événements dans une connexion réseau typique? Quelle est la différence entre une trame et un paquet? Que signifie vraiment la charge moyenne sur un système Unix? Quel est le processus de démarrage typique d'une machine (celle-ci seule, si vous la suivez du début à la fin, vous apportera une richesse de connaissances).

Une fois que vous comprenez les principes fondamentaux et que vous les comprenez très bien, il est beaucoup plus facile de poser des connaissances sur une bonne base. Mais si vous commencez par le haut et essayez d'apprendre des morceaux spécifiques de logiciel sans savoir ce qui se passe en dessous, cela fera de vous ... juste un autre concierge de haute technologie, en gros.

DictatorBob
la source
2

Tout d'abord, trouvez vos journaux. La plupart des distributions Linux se connectent à / var / log / messages, bien que j'en ai vu quelques-unes se connecter à / var / log / syslog. Si quelque chose ne va pas, il y aura très probablement des informations pertinentes dans les journaux. De plus, si vous traitez du courrier électronique, n'oubliez pas / var / log / mail. Vérifiez à nouveau vos applications, découvrez si l'une d'entre elles se connecte dans un endroit ridicule, en dehors de syslog.

Mettez à jour vos compétences vi. Nano est peut-être ce que tous les enfants cool utilisent de nos jours, mais l'expérience m'a appris que vi est le seul éditeur de texte qui soit garanti sur le système. Une fois que vous vous serez habitué aux raccourcis clavier et commencerez à créer vos propres déclencheurs, vi sera comme une seconde nature pour vous.

Lisez la page de manuel, puis exécutez les commandes suivantes sur chaque machine et copiez les résultats dans votre documentation:

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

Cela servira de début à votre documentation. Ces commandes vous permettent de connaître votre environnement et peuvent aider à réduire les problèmes ultérieurement.

Grep dans vos journaux et recherchez "erreur" ou "échec". Cela vous donnera une idée de ce qui ne fonctionne pas comme il se doit. Vos utilisateurs vous donneront leur avis sur ce qui ne va pas, écoutez attentivement ce qu'ils ont à dire. Ils ne comprennent pas le système, mais ils le voient différemment que vous.

En cas de problème, vérifiez les choses dans cet ordre:

  1. Espace disque (df -h): Linux et certaines applications qui s'exécutent sur Linux font des choses très étranges lorsque l'espace disque est épuisé. Cela peut sembler sans rapport, jusqu'à ce que vous vérifiiez et trouviez un système de fichiers 100% plein.

  2. Top: Top vous indiquera si vous avez un processus bloqué qui consomme tous vos cycles de processeur disponibles. Rien ne devrait consommer 99% de CPU pendant une période prolongée. Si c'est un processus légitime, il devrait probablement fluctuer de haut en bas. Pendant que vous êtes en haut, vérifiez ...

  3. Charge système: la charge système doit normalement être inférieure à 3 sur un serveur ou un poste de travail standard. La charge système est basée sur le processeur, la mémoire et les E / S.

  4. Mémoire (libre -m): l'utilisation de la RAM sous Linux est un peu différente. Il n'est pas rare de voir un serveur avec presque toute sa RAM utilisée. Ne paniquez pas, si vous voyez cela, c'est principalement du cache et sera effacé au besoin. Cependant, faites très attention à la quantité de swap utilisée. Si possible, gardez cela aussi près de zéro que possible. Une mémoire insuffisante peut entraîner toutes sortes de problèmes de performances.

  5.  Journaux: revenez à vos journaux, exécutez tail -500 / var / log / messages | plus et commencer à lire et à voir ce qui se passe. Espérons que les journaux pourront vous indiquer la direction à suivre.

Un serveur Linux bien entretenu peut fonctionner pendant des années sans problème. Nous venons d'en fermer un qui fonctionnait depuis 748 jours, et nous ne l'avons arrêté que parce que nous avions migré l'application vers un nouveau matériel. Avec un peu de chance, cela vous aidera à vous mouiller les pieds et à prendre un bon départ.

Une dernière chose, faites toujours une copie d'un fichier de configuration que vous avez l'intention de modifier, copiez toujours la ligne que vous modifiez et commentez l'original, en ajoutant la raison de ce changement. Cela vous donnera l'habitude de documenter au fur et à mesure et peut vous épargner 9 mois de peau.

ibuys
la source
1

bonne question.

Mon conseil. Apprenez à utiliser votre coque.

La norme est bash. Vous pouvez simplement taper help, pour accéder à la documentaion.

apprendre les tuyaux "|" pour obtenir la sortie d'une commande à l'entrée d'une deuxième commande.

Une dernière chose, m'a aidé il y a très longtemps: Linux One Page Manual

travailler dur, ne jamais abandonner.

En 3-4 ans, vous aurez suffisamment de connaissances et beaucoup de choses viennent de lui-même :)

Evil Dead
la source