Kit de ferramentas e hábitos para administração de redes e sistemas Linux [fechado]


20

Estou encarregado da administração de uma pequena rede de escritório, bem como de várias estações de trabalho executando principalmente o Debian e o Ubuntu. Existem dois servidores: um banco de dados e servidor de impressão e um servidor de backup e arquivo.

Sendo relativamente novo neste lado das coisas, sabendo o suficiente para me ajudar em algum grau no Linux, gostaria de saber quais ferramentas de software e tarefas / hábitos posso usar / adquirir para aprender este campo e ser eficaz ao fazê-lo.

Não preciso saber o que é melhor, apenas o que um novato sys-admin pode usar como um pacote inicial para aprender e usar como base para crescer na administração adequada do sistema.

O que eu preciso são essas poucas ferramentas básicas para começar e o tipo de coisas que eu preciso fazer regularmente, por exemplo: quais registros devem ser verificados, quando e o que monitorar, o tipo de lugar 'certo' para começar e para o qual eu posso anúncio que eu preciso.


Tópico subjetivo, ao extremo. Como seria uma resposta "certa"?
22310 Bill Weiss

Respostas:


16

1 1

monitorar processos críticos de negócios [por exemplo - o banco de dados está executando e respondendo a consultas simples], parâmetros básicos do sistema operacional [espaço livre em disco, média de carga]. você pode usar o nagios ou o zabbix, por exemplo.

2

reunir estatísticas para estabelecer algumas linhas de base. no futuro, isso será útil para o planejamento da capacidade. você pode usar munin , zabbix, cactos etc.

3

execute backups automáticos agendados, armazene alguns deles offline, fora do local. monitore se eles foram bem-sucedidos, verifique periodicamente manualmente se você pode recuperar dados críticos. convém usar o backupninja para orquestrá-los ou o Zmanda , mas existem ferramentas muito mais úteis.

4

documento. para o seu próprio bem. Não pense que a falta de documentação aumenta a segurança do seu emprego. primeiro que sofrerá por falta dela, você provavelmente esquecerá as coisas rapidamente.

5

de outras coisas aleatórias:

Aprenda alguma linguagem de script - talvez você já conheça uma? O perl / python / php pode ser usado para automatizar tarefas e, em muitos casos, é mais adequado do que o bash para tarefas mais complicadas

aprenda suas ferramentas - é uma lista interminável ... ssh vem à mente provavelmente primeiro. confira isso e aquilo .


"é uma lista interminável ..." - de fato; Pesquisei no Google antes de fazer essa pergunta, mas fiquei impressionado. Acredito no KISS, e quero começar de uma base simples e fácil e tentar aprender as coisas direito.
Slashmais 17/10/09

11
Eu gostaria de acrescentar que os pontos 1 e 4 são os mais importantes. Eu recomendo usar um sistema de gerenciamento de configuração como o Puppet. no mínimo, você deve usar o controle de versão (git / svn), mas o Puppet permitirá que você faça as coisas uma vez e depois seja repetível, caso seja necessário adicionar ou reconstruir serviços. Eu também acredito em excesso de engenharia. se você construir sua infraestrutura como se precisasse de 100 máquinas, será mais fácil gerenciar suas 10 máquinas e aumentar a escala, se necessário.
11559 neoice

4
Eu acho que é uma questão de opinião, mas eu colocaria o ponto 3 como o mais crítico. Sim, é péssimo quando o banco de dados contábil fica inativo por meio dia, mas é realmente péssimo quando todos os recursos financeiros acabam por causa de backups inexistentes / ruins. YMMV.
Joe Internet

@pQd - eu também adicionaria monitoramento (nagios, opennms, etc) e um sistema de emissão de bilhetes. Não precisa ser nada surpreendente: apenas um lugar para guardar seus itens "todo". Eventualmente, pode ser expandido para pessoas que enviam solicitações de que precisam ou desenvolvem filas para outras equipes.
21411 warren

leia Gerenciamento de tempo para administradores de sistema por Thomas Limoncelli. Deve ser leitura obrigatória para todos que trabalham por e-mail.
21911 warren

10

A prática da administração de sistemas e redes , de Limoncelli et al, é onde você deve começar. As tecnologias vão e vêm (e podem ser facilmente pesquisadas no Google, conforme necessário), mas as informações nesse livro são atemporais (e sem preço).


2
Também Administração de Sistema Essencial da Frisch.
21339 Jason Antman

10

Algumas ferramentas básicas para começar

Google. Não seriamente. O Google é o sonho de um administrador de sistemas. Não há maneira mais adequada de aproveitar a grande quantidade de informações na internet. E não se limite apenas a procurar "linux para iniciantes"; se você tem uma tarefa específica que está tentando realizar, pesquise no Google por essa coisa específica. Você encontrará muitas vezes mais informações do que precisa e, para iniciantes, muitas delas parecerão outro idioma, mas aprender fazendo é uma boa maneira de aprender rapidamente.

Conclusão de tabulação. A linha de comando do Linux permite o preenchimento de guias de todos os comandos, árvores de diretórios, nomes de diretórios e nomes de arquivos.

Páginas de manual. Todo comando e muitos arquivos de configuração do sistema (/ etc / fstab, / etc resolv.conf, etc.) têm páginas de manual. Basta digitar "man command_name" ou "man file_name" para ver se o que você está procurando tem um. Ah e "q" sai de uma página de manual.

SSH. Uma das melhores maneiras de acessar um sistema Linux. Provavelmente, a melhor maneira, se você não tiver acesso físico ao sistema.

Tela. Screen é um pequeno aplicativo fantástico que permite transformar um terminal em muitos, deixar as coisas fora do seu caminho / em segundo plano e deixar as coisas funcionando para que você possa voltar mais tarde.

Nano. Você mencionou acima que já usa isso, mas eu pensei em colocar meus dois centavos e dizer que concordo. Vi e Vim e tudo isso é bom e tudo, mas é a simplicidade do Nano que eu amo. É como o bloco de notas do mundo Linux.

Encontre e Grep. Find é ótimo para pesquisar por arquivos, Grep é grande para a pesquisa em arquivos. Ambos podem ser usados ​​de maneiras muito simples, e ambos podem ser usados ​​de maneiras muito complexas, mas ambos são bastante úteis de qualquer maneira.

Sudo. Permite que você aja como raiz, sem ser raiz. Muito útil.

Além disso, algumas outras ferramentas que mencionarei no contexto da próxima seção ...

Os tipos de coisas que você precisa fazer regularmente

Monitore seu sistema. Monitore o uso do disco (df é um comando útil e também para diretórios específicos), monitore seus processos e tarefas em execução (através do comando ps e dos comandos top), monitore os usuários conectados aos seus sistemas (os usuários e quem diga isso) e monitore o uso da sua rede (aplicativos como cactos são bons para isso). Se você tem acesso a um ambiente X Windows, sempre achei o GKrellM uma ferramenta de monitoramento do sistema tudo-em-um muito útil.

Backups. Pelo amor ao Tux, backups. Arquivos de configuração de backup, diretórios pessoais de backup, dados do aplicativo de backup. Backups. Mesmo se tudo o que você está fazendo é copiar os dados do servidor para um compartilhamento CIFS / NFS em outra caixa e em um disco rígido externo. E sim, você deve manter duas cópias de cada backup e nunca na mesma mídia / sistema. Pense nisso como backups de seus backups.

Verifique seus backups. Verifique regularmente se você pode restaurar os dados dos seus backups nos seus sistemas. Backups vazios / corrompidos / incompletos são tão inúteis quanto o dia é longo.

Use seus arquivos de log. Dmesg, / var / log / messages e praticamente qualquer coisa no período / var / log. Se algo não estiver funcionando corretamente e você não souber o porquê, os logs podem não ter a resposta, mas podem definitivamente ajudá-lo a encontrá-la. E os logs e diretórios em / var / log são sensivelmente nomeados, portanto, encontrar o log correto não deve ser difícil. Você não precisará monitorar constantemente todos os arquivos de log, mas ficar de olho neles ajudará a manter seu sistema saudável e seguro.

Mantenha seu sistema atualizado. Não deixe seu software passar meses e meses sem ser atualizado, pois isso pode resultar em muitas dores de cabeça e problemas quando a sintaxe do arquivo de configuração ou as dependências mudarem. Distros diferentes têm programas de atualização diferentes (apt-get, yum etc.), mas o que você usar, aprenda e use regularmente.

Mantenha seu sistema seguro. Use coisas como iptables, PAM, hosts.allow / hosts.deny e similares para impedir o acesso e o uso indesejados do seu sistema.

Nunca pare de aprender. Para continuar com algo que eu disse anteriormente (aprendendo fazendo), algo que você deve analisar são as máquinas virtuais. Faça o download do VirtualBox (ou se você possui licenças VMWare ainda melhores) e torne-se uma máquina virtual Linux. Você pode escolher qualquer distro que deseja realmente, mas, obviamente, provavelmente faz mais sentido escolher uma que você esteja usando em seu ambiente. Brinque na VM .. use-a como uma caixa de areia. Prepare coisas, quebre coisas, investigue, aprenda. A beleza de uma VM sandbox é que não importa o que acontece com ela. Se você mangueira totalmente, basta fazer um novo. Ou mantenha uma cópia de backup do original depois de configurá-lo e reutilize-a sempre que precisar.

Como algumas das outras postagens deste tópico mencionaram e mencionaram, essas listas podem realmente ser quase infinitas, mas espero que isso o leve a um bom começo.


Ele retirou a sintaxe dos meus comandos "man" de exemplo, então os ajustei um pouco. Você acabou de substituir "command_name" e "file_name" pelo comando ou arquivo adequado.
22610 kingfish

Às vezes, no bloco de notas e me vejo digitando ESC,: wq o problema é que não é um caso raro. Pergunto-me porquê ...
Mircea Vutcovici

8

Se você está apenas começando, e especialmente porque você tem alguns sistemas Debian (o Ubuntu é o Debian em sua essência), eu recomendo a Referência Debian . É uma ótima visão geral de quase todos os aspectos da administração do sistema e deve cobrir quase tudo o que você precisa saber sobre a manutenção de um pequeno conjunto de sistemas como esses.

Também concordo com todos os pontos que o pQd fez e, mais especificamente, acho que seria uma boa ideia você configurar um wiki para documentar todos os seus processos e configurações. Na minha organização, usamos o Trac, mas qualquer mecanismo wiki deve fazê-lo, apenas certifique-se de que ele tenha uma boa maneira de exibir o código-fonte, pois isso é útil para pequenos scripts e listagens de comandos.


3

Honestamente, a Administração do sistema Linux não é um campo em que você pode simplesmente 'pular'.

Se você precisar , existem alguns bons livros sobre o assunto. O'Reilly possui dois livros (Administração de Rede Linux e Administração de Sistema Linux) que devem dar os primeiros passos.

Pessoalmente, se eu fosse você, passaria alguns dias brincando com diferentes distribuições, instalando software, configurando coisas do tipo Nagios / Cacti / Apache2 / SSH / NFS e talvez aprendendo algum tipo de linguagem de script (eu uso Perl, eu mesmo, mas muitos dos meus colegas administradores preferem usar o Python. Mas você decide o que você quer aprender).

E definitivamente aprenda a linha de comando. Não use ferramentas gráficas como muleta.

Aprenda vi. Mesmo se você aprender apenas o suficiente para fazer edições básicas, tudo bem - mas é importante aprender o vi, porque às vezes você está preso em um sistema sem o Vim / Nano / Emacs. Quando estiver nessa situação, você ficará feliz por ter passado um ou dois dias aprendendo vi.

Se você precisar de ajuda, sinta-se à vontade para me enviar um e-mail (meu e-mail é [removido por razões de segurança]) - ficarei feliz em ajudá-lo fora do ServerFault.


Eu conheço Perl; Eu sei / some / vi (como inserir, salvar e sair - prefiro o nano). Felizmente, minha situação é de 'baixa pressão'; portanto, não preciso me tornar um guru de administrador de sistemas imediatamente; posso me aprofundar nisso (e ter falhas no servidor e você (obrigado pela confiança) para perguntar quando eu realmente fico preso (também pertence a um LUG muito útil). O que eu preciso são essas poucas ferramentas básicas para começar e o tipo de coisas que eu preciso fazer regularmente, por exemplo: quais logs para verificar, quando e o que monitorar, o tipo de lugar 'certo' para começar e para o qual eu posso anúncio como eu preciso.
slashmais

Então eu recomendo que você verifique a configuração do Cacti, Nagios, Snort e Postfix. Essas provavelmente serão as quatro ferramentas que você mais usa para monitorar seu sistema. A configuração também poupará muito tempo verificando manualmente os arquivos de log. Quanto à verificação manual de logs, qualquer coisa em / var / log / é provavelmente uma boa aposta. Não existem arquivos específicos I você pode apontar para, mas se algo não está funcionando corretamente com algo que pode ser uma boa aposta para o check-in / var / log
Michael Pobega

Era uma vez eu também preferia o nano, slashmais. Depois de começar a editar arquivos o tempo todo, você precisará aprender o vi com mais detalhes. Não é possível obter o suficiente dele agora ...
Kyle Smith

3

Se você se sente à vontade para instalar um aplicativo nos servidores, considere o webmin, pois ele oferece um "balcão único" para a maioria dos logs e configurações. Configure-o para rodar em uma porta de alta ordem usando SSL e se paga com facilidade na verificação.


2

Vou lhe contar o maior segredo da administração de sistemas e redes. Esta pronto? Ok, aqui está:

Aprenda os fundamentos. Deixe-me elaborar.

Qualquer pessoa (ou quase) pode aprender o que esse ou aquele software em particular faz e como pressionar esse botão nessa ferramenta para fazer x, y ou z funcionarem. Isso não é nada de especial.

Se você quer ser um bom administrador de sistemas / rede, aprenda as coisas básicas. Qual é a sequência de eventos em uma conexão de rede típica? Qual é a diferença entre um quadro e um pacote? O que a média de carga realmente significa em um sistema Unix? Qual é o processo típico de inicialização de uma máquina (somente essa, se você a seguir do início ao fim, fornecerá uma riqueza de conhecimentos).

Depois de entender os fundamentos e compreendê-los muito bem, colocar o conhecimento sobre uma boa base é muito mais fácil. Mas se você começar do topo e tentar aprender partes específicas de software sem saber o que está acontecendo por baixo, isso fará de você ... apenas mais um zelador de alta tecnologia, basicamente.


2

Primeiro, encontre seus registros. A maioria das distros do Linux faz logon em / var / log / messages, embora eu tenha visto alguns registros em / var / log / syslog. Se algo estiver errado, provavelmente haverá algumas informações relevantes nos logs. Além disso, se você estiver lidando com e-mail, não esqueça / var / log / mail. Verifique suas aplicações e descubra se alguma delas faz logon em algum lugar ridículo, fora do syslog.

Atualize suas habilidades de vi. Nano pode ser o que todas as crianças legais estão usando hoje em dia, mas a experiência me ensinou que o vi é o único editor de texto que está garantido no sistema. Depois de se acostumar com os atalhos do teclado e começar a criar seus próprios gatilhos, o vi será uma segunda natureza para você.

Leia a página do manual, execute os seguintes comandos em cada máquina e copie os resultados na sua documentação:

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

Isso servirá como o início da sua documentação. Esses comandos informam seu ambiente e podem ajudar a diminuir problemas mais tarde.

Verifique seus logs e procure por "erro" ou "falha". Isso lhe dará uma idéia do que não está funcionando como deveria. Seus usuários darão sua opinião sobre o que está errado, ouvirão atentamente o que eles têm a dizer. Eles não entendem o sistema, mas o veem de uma maneira diferente da sua.

Quando você tiver um problema, verifique as coisas nesta ordem:

  1. Espaço em disco (df -h): o Linux e alguns aplicativos executados no Linux fazem coisas muito estranhas quando o espaço em disco acaba. Pode parecer não relacionado, até que você verifique e encontre um sistema de arquivos 100% cheio.

  2. Superior: Superior informará se você tem algum processo que está por aí consumindo todos os ciclos de CPU disponíveis. Nada deve consumir 99% da CPU por um longo período de tempo. Se for um processo legítimo, provavelmente deve flutuar para cima e para baixo. Enquanto estiver no topo, verifique ...

  3. Carga do sistema: a carga do sistema normalmente deve estar abaixo de 3 em um servidor ou estação de trabalho padrão. A carga do sistema é baseada na CPU, memória e E / S.

  4. Memória (free -m): o uso da RAM no Linux é um pouco diferente. Não é incomum ver um servidor com quase toda a sua RAM usada. Não entre em pânico, se você ver isso, é principalmente apenas cache e será limpo conforme necessário. No entanto, preste muita atenção à quantidade de swap em uso. Se possível, mantenha-o o mais próximo possível de zero. Memória insuficiente pode levar a todos os tipos de problemas de desempenho.

  5.  Logs: Volte aos seus logs, execute tail -500 / var / log / messages | mais e comece a ler e ver o que está acontecendo. Felizmente, os logs poderão apontar você na direção em que você precisa seguir.

Um servidor Linux bem mantido pode funcionar por anos sem problemas. Acabamos de desligar um que estava em execução há 748 dias e o desligamos porque migramos o aplicativo para um novo hardware. Felizmente, isso ajudará você a molhar os pés e a começar bem.

Uma última coisa, sempre faça uma cópia de um arquivo de configuração que você deseja alterar e sempre copie a linha que você está alterando e comente o original, adicionando o motivo para alterá-lo. Isso fará com que você tenha o hábito de documentar à medida que avança e poderá salvar sua pele em nove meses.


1

boa pergunta.

Meu conselho. Aprenda a usar seu shell.

Padrão é festança. Você pode apenas digitar help, para entrar na documentação.

aprender tubos "|" para obter a saída de um comando para a entrada de um segundo comando.

Uma última coisa, me ajudou há muito tempo: Linux One Page Manual

trabalhe duro, nunca desista.

Em 3-4 anos, você terá conhecimento suficiente e muitas coisas vêm de si :)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.