it-swarm-pt.tech

Como gravar alterações no servidor?

Então todos nós provavelmente já tivemos essa situação: você depura algum problema, apenas para perceber que foi causado por uma alteração na configuração que você fez seis meses atrás, e você não consegue se lembrar por que fez isso. Então você desfaz e corrige o problema, e agora outro problema volta. Ah sim, agora eu lembro! Então você o corrige corretamente.

É porque você não tomou notas apropriadas, seu tolo! Mas qual é uma boa maneira de fazer isso?

Na engenharia, temos um monte de software destinado a nos ajudar a detectar e rastrear alterações. Controle de origem, revisões de código e assim por diante. Toda mudança é rastreada, toda mudança requer um comentário sobre o que é. E os departamentos de engenharia típicos exigem bons comentários para que, em seis meses, quando você descobrir por que o quebrou dessa maneira, você possa usar um recurso histórico de "culpa" ou a criação de pesquisas binárias para identificar o problema. Essas ferramentas são ferramentas de comunicação muito eficazes e registros históricos.

Mas na área de servidores, temos 500 serviços diferentes, todos com maneiras diferentes de configurá-los. E eles nem sempre têm um formato de texto (considere definir permissões em uma pasta ou alterar o local do arquivo de paginação), embora possam ter uma representação textual.

Em nosso ambiente, verificamos quais arquivos de configuração podemos acessar no Perforce, mas há muito poucos deles. Não é possível verificar exatamente no banco de dados do Active Directory ... embora talvez um despejo que possa ser dif ...

No passado, eu tentei manter um registro de alterações manual em nosso wiki, mas é super difícil manter a disciplina para fazer isso (eu sei, não é uma boa desculpa, mas é realmente difícil).

MINHA PERGUNTA: Quais estratégias e ferramentas você usa para lidar com esse problema de rastrear alterações de configuração em seus servidores?

- Atualização -

Nota: Não estou procurando ferramentas de anotações compartilhadas (estou familiarizado com o OneNote, etc.), mas sim ferramentas automatizadas especificamente destinadas a ajudar no rastreamento de alterações no servidor. Não existe uma ferramenta abrangente para rastrear alterações na configuração do servidor, mas talvez haja algumas para aplicativos específicos, como os GPOs.

Também estou muito interessado em estratégias específicas que você achou útil. "Compartilhamos anotações no Sharepoint" é bastante vago. Como você mantém a disciplina? Qual formato você usa para rastrear suas alterações? Como você organiza seus dados alterados? Eu realmente gostaria de exemplos e idéias.

52
scobi

No Linux, as pessoas estão adotando algumas estratégias diferentes:

  • Sistemas de restrição de configuração , como cfengine ou fantoche ou chef . Eles são semelhantes aos GPOs do Windows. Aponte que toda a configuração do servidor é intencionalmente documentada em um único local e você sabe em que granularidade (sala do servidor, grupo, servidor específico) a política é promulgada. Isso não vai te salvar de "o que diabos era diferente seis meses atrás?" mas permite alterar a configuração de um servidor e reconstruí-lo do zero. Você pode colocar as políticas cfengine e fantoche sob controle de revisão para responder à pergunta.
  • Controle de revisão/etc . Geralmente, os programas Linux armazenam suas configurações em um único local,/etc. Os mais ousados ​​estão começando a escrever scripts para colocar o/etc no controle de revisão. Um desses programas que conheço é etckeeper :
Descrição: armazene/etc no git, Mercurial, bzr ou darcs 
 O programa etckeeper é uma ferramenta para permitir que o/etc seja armazenado em um repositório git, Mercurial, 
 Bzr ou darcs. Ele se conecta a APT para confirmar automaticamente as alterações 
 Feitas no/etc durante as atualizações do pacote. Ele rastreia os metadados dos arquivos que os sistemas de controle da versão 
 Normalmente não suportam, mas que é importante para o/etc, como 
 como as permissões do/etc/shadow, é bastante modular e configurável, enquanto 
 também é simples de usar, se você entender o básico de como trabalhar com a versão 
 ao controle.
20
jldugger

Um dos problemas nessa situação é que, na verdade, é uma combinação de processo de negócios/problema tecnológico. E é definitivamente maior do que apenas rastrear as alterações feitas por um administrador. Você também deve estar atento a alterações inesperadas e boa coordenação entre administradores ou unidades, para que uma alteração em um controlador do AD não quebre uma configuração de permissões de banco de dados em algum servidor departamental. Ou seja, sua pergunta é uma lata gigante de vermes :)

Na minha organização, levamos cerca de um ano para implantar processos e sistemas para resolver isso. Para o lado do processo de negócios, formamos uma equipe de Gerenciamento de Mudanças. De acordo com SOP, todas as alterações nos ambientes de produção são coordenadas por eles. Eles compilam todas as alterações, juntamente com o escopo, sistemas afetados, serviços afetados, etc.) Aplique boa documentação sobre as mudanças, bem planos de roll-out e rollback.Faça reuniões semanais (abertas) para examinar as próximas mudanças no ambiente e depois envie e-mails detalhando todas essas mudanças.O objetivo final desse processo é que, efetivamente, todos na TI saibam tudo isso ajuda a parar o problema de, por exemplo, um SysAdmin instalar um patch do kernel e reiniciar um sistema que derrubará o banco de dados do relógio de ponto.

Quanto ao lado tecnológico, só posso falar do pessoal do Unix/Linux, pois não ligo com o Windows. Eles estão lançando o Puppet, da Reductive Labs, para gerenciamento de configuração de todos esses sistemas. Simplesmente, é um sistema cliente/servidor em que se define uma configuração de máquina no servidor e o cliente realiza essas chances de vez em quando (30 minutos por padrão). Além disso, se houver chances de arquivos gerenciados localmente, eles também serão revertidos naquele momento. Nós o usamos para gerenciar serviços em execução, configurações de firewall, autorização de usuário etc.

Eu também recomendaria procurar algo como o TippingPoint. É um serviço ao cliente que observa a configuração do sistema e envia alertas sobre alterações. Isso nos deixa mais felizes com o pessoal da segurança. É amplamente usado para rastrear alterações maliciosas ou não publicadas.

10
Scott Pack

Eu estive em 4 ou 5 empresas agora, eu realmente não me lembro.

Todos nós tivemos esse problema. Nenhum de nós resolveu 100%, mas na empresa em que estou agora temos o que considero ser a melhor estratégia até hoje.

Sharepoint/Wiki/Evernote/PINs

  • Sharepoint
    • lamentar tudo que você quer ... ele tem alguns recursos de lista muito agradáveis.
    • Listas de endereços IP
    • inventário
    • contas de serviço e uso
    • alterar logs de notificação
  • Wiki
    • Como fazer
    • listas de tarefas de longo alcance
  • Evernote
    • meu parceiro e eu usamos isso para colocar tudo o que não queremos na Wiki
    • mais instruções de natureza técnica
    • notas zero nós dois precisamos ver
    • contabilidade de tarefas para a semana
    • listas de tarefas do contratante
    • o evernote clipper facilita a captura de tela AD/rights settings
    • disponível em qualquer lugar
  • PINs
    • Repositório de senhas
4
Thomas Denton

Provavelmente, existem ferramentas melhores para algumas delas, mas é isso que usamos:

  • Acompanhe as alterações de configuração e atualizações/correções por servidor em um wiki particular
  • Mantenha também os howtos e um registro de problemas/soluções no wiki
  • Use Sharepoint ou Google Docs para manter cópias autorizadas de coisas como listas de IP estáticas
  • use Subversion para rastrear alterações nos arquivos de configuração
2
Brent

Para Windows, consulte a série Microsofts System Center ou qualquer outro concorrente em gerenciamento de configuração e serviço para essa plataforma.

As alterações precisam ser roteadas através de uma rotina decente de gerenciamento de alterações que, por si só, as aprova e registra antes de serem concluídas. Isso pode ser 100% manual para iniciantes. Com algumas das melhores ferramentas integradas, você pode solicitar que a ferramenta faça as alterações reais e faça logon "automático" dele em um banco de dados de configuração central - em vez de ir diretamente ao console de um servidor individual, procurando nas configurações manualmente tente corrigir um problema no estilo cowboy.

2
Oskar Duveborn

Você absolutamente deve ter um processo de gerenciamento de mudanças, especialmente se houver várias pessoas com capacidade/acesso para fazer alterações no nível do sistema em seu ambiente. Isso também fornece uma maneira de o gerenciamento aprovar mudanças em potencial, no entanto, o lado negativo induz a latência no processo de mudança, se você não puder fazer alterações em tempo real.

Algumas maneiras de rastrear alterações podem incluir a validação de eventos no seu SEM (supondo que você tenha um Security Event Manager) ou ferramentas como o Nessus (com muito trabalho, você pode auditar seu ambiente para encontrar alterações).

2
David Yu

Esta é uma resposta mais localizada, baseada em * nix. Não encontrei boas ferramentas para emular no Windows.

Existem algumas maneiras de implementar isso ... e capturá-lo quando você esquecer.

Sistemas de controle de revisão como Subversion, git, cvs ou RCS é uma boa maneira de rastrear o histórico de um arquivo de configuração. Se você não deseja instalar um sistema de controle de revisão em seus servidores de produção, o armazenamento de diretórios de arquivos de configuração local ou remotamente usando algo como rsnapshot fornecerá a maioria dos benefícios de um RCS, mas você perde a possibilidade de auditar ou deixar logs de confirmação (embora isso possa ser contornado com comentários dentro dos próprios arquivos).

Para ajudá-lo a se lembrar de registrar as alterações, o relatório automatizado de alterações de configuração por meio de uma execução noturna, programada tripwire , é um bom começo. Após criar o banco de dados do tripwire do estado atual dos arquivos, qualquer alteração neles resultará em um email durante a próxima execução. Você continuará recebendo este e-mail até que o banco de dados seja atualizado, "redefinindo" o tripwire.

2
Greg Work

Se você está procurando a "solução corporativa" (ou seja, você tem mais dinheiro que Deus e deseja ter uma ferramenta muito interessante), a ferramenta que eu usei para oferecer suporte e fornecer trabalho no local faz isso como um de seus vários recursos.

Não tenho idéia de qual é o preço base, mas antes da HP comprar o Opsware, eram cerca de US $ 350.000 EUA (sem suporte e confie em mim - você queria suporte quando comecei com o Opsware).

Vários clientes que tivemos enquanto eu trabalhava lá usavam os recursos de configuração e instantâneo de aplicativos em conjunto com Tripwire .

Claro, se você não tem orçamento - esta é uma Má Escolha ™ :)

E, fwiw, o anúncio que apareceu no topo desta página para mim quando o recarreguei foi para spiceworks . Parece muito semelhante ao HPSA :)

1
warren

Criamos algo caseiro para fazer o rastreamento do log de alterações em nosso ambiente; não é nada super complicado, e funciona muito bem.

  • Uma política de autopoliciamento é configurada para que qualquer alteração que, em sua avaliação, se desvie de uma configuração pronta para uso ou possa causar problemas, deva ser documentada no sistema de registro de alterações.
    • o lado oposto dessa 'moeda' é se você estiver solucionando um problema, procure entradas recentes ou relacionadas no registro de alterações.
  • Entre no sistema e escolha o servidor, serviço ou componente de hardware que você está alterando
    • os componentes foram inseridos anteriormente no mesmo sistema com informações 'demográficas' básicas (localização, fornecedor, número de série, departamento responsável)
  • Escolha entre uma lista suspensa de categorias básicas
    • Tempo de inatividade não programado
    • Remendo
    • Manutenção de Hardware
    • Instalação de software
  • Coloque em detalhes o que você fez, viu, observou
  • uma cópia é enviada à parte responsável e armazenada como arquivos XML indexados por um appliance.
  • Lucro

Como eu disse, nada extravagante. Ele usa Perl CGI (foi escrito há um bilhão de anos atrás) e um appliance do Google Search para indexação.

Deficiências:

  • É difícil trabalhar em grupos de serviços; por exemplo, você acabou de adicionar o mesmo patch a todos os 25 controladores de domínio; não temos um grupo "Controlador de domínio", por isso temos que selecioná-los manualmente
  • Não se integra aos relatórios de erro de hardware, software ou log de eventos para ajudar na solução de problemas
  • relacionado, entrada manual de dados para todos os dados 'demográficos', como eu disse acima

De qualquer forma, se depois de tudo o que você estiver interessado no código, avise-me e eu provavelmente posso pegá-lo para compartilhar.

1
Guamaniac

Eu usaria um sistema de rastreamento de problemas como flyspray (qualquer um servirá, mas eu gosto de flyspray para coisas que não são de programação). Antes que alguém toque em uma configuração, a melhoria/problema deve ser registrado. Quando você o corrige/implementa, as alterações entram no ticket.

Um wiki pode ser legal para documentar a configuração atual, mas é fácil ficar desatualizado - e parece ser necessário mais esforço para atualizar o IMO.

Você não encontrará algo automatizado para fazer isso - embora você provavelmente possa configurá-lo para que as alterações em determinados arquivos de configuração sejam automaticamente enviadas por e-mail ao rastreador de problemas, se você quiser.

Eu acho que é apenas uma questão de boa política, ferramentas de baixa barreira e disciplina.

1
Draemon

Se tudo o que você deseja fazer é faixa muda e não gerencia todo o processo (por exemplo, via Chef ou Puppet), apenas rsync seu diretório etc (onde quer que isso possa be) em um repositório Git local.

for Host in alpha bravo charlie delta ...; do

    rsync -avz --exclude-from=exclusions -e ssh [email protected]$Host:/opt/local/etc/ ./$Host

done

Obviamente, você pode adicionar outras fontes, conforme necessário.

1
PartialOrder

Como já foi dito, muitas vezes é uma questão cultural - afinal, algumas lojas de desenvolvimento não se preocupam mais com comentários (o código de auto-documentação é hoje um chavão na moda!) E algumas usam um sistema de controle de versão como um santo graal dos registros históricos. Obviamente, estes não são perfeitos.

Portanto, a única maneira verdadeira de corrigi-lo é torná-lo uma solução cultural. Assegure-se de que todos os motivos da mudança sejam registrados em um rastreador de erros (ou base de conhecimento ou wiki) e garanta que todas as alterações sejam registradas em um sistema de controle de alterações.

Temos clientes de serviços de emergência, todas as alterações que acontecem no sistema são registradas e toda vez que fazemos logon no sistema, precisamos registrá-lo. Para alguns deles, primeiro precisamos telefonar para obter permissão (e acho que eles também registram isso!). Toda a alteração é registrada e será uma ofensa disciplinar alterar o sistema do cliente sem registrá-lo.

Parece oneroso, mas não é. Você rapidamente adquire o hábito de se adicionar ao registro de acesso e ao registro de alterações - não é pior do que escrever um comentário ao fazer o check-in de uma alteração de código.

Eu recomendo um rastreador de erros como o log do motivo do controle de alterações, pois eles geralmente são fáceis de atualizar (eu uso o Mantis).

1
gbjbaanb