a diferença entre produtos medíocres e grandes produtos é o registro. Aprender porque é assim, e como amarrar tudo junto.
assim como a segurança, o registro é outro componente chave de aplicações web (ou aplicações em geral) que fica afastado por causa de velhos hábitos e da incapacidade de ver adiante. O que muitos vêem como resmas inúteis de fita digital são ferramentas poderosas para olhar dentro de suas aplicações, erros corretos, melhorar as áreas fracas e deleitar os clientes.,
Antes de passarmos ao registo centralizado, vamos primeiro ver porque é que o registo é tão importante.
dois tipos (níveis) de Registo
computadores são sistemas determinísticos, excepto quando não são.
Como desenvolvedor profissional, deparei-me com muitos casos em que o comportamento observado do aplicativo desconcertou toda a gente durante dias a fio, mas a chave estava sempre nos logs. Cada pedaço de software que executamos produz (ou pelo menos deve gerar) logs, que nos dizem o que estava passando quando a situação problemática ocorreu.,
agora, o registro, como eu vejo, é de dois tipos: logs auto-gerados e logs gerados pelo programador. Por favor, note que isto não é uma diferenciação de manual, e citando-me nesta terminologia vai colocá-lo em apuros. 😉
A imagem acima mostra o que pode ser denominado como um log gerado automaticamente.
neste caso específico, é um sistema WordPress registrando uma condição inesperada (um aviso) ao executar algum código PHP., Logs como estes estão sendo gerados o tempo todo incansavelmente — por ferramentas de banco de dados como MySQL, servidores web como Apache, linguagens de programação e ambientes, dispositivos móveis e até mesmo sistemas operacionais.
estes raramente contêm muito valor, e os programadores nem se dão ao trabalho de olhar para eles, exceto quando algo corre mal. Em tais momentos, eles cavam fundo nos troncos, tentando entender o que correu mal.
mas os logs auto-gerados só podem ajudar muito., Se várias pessoas têm acesso administrativo a um site, por exemplo, e um deles acontece para excluir uma parte essencial de informação, é impossível detectar o culpado com o uso de logs auto-gerados. Do ponto de vista dos sistemas ligados como a aplicação, foi apenas mais um dia no trabalho — alguém tinha a autoridade necessária para executar uma tarefa, e assim o sistema realizou-a.
O que é necessário aqui é uma camada adicional de registro explícito e extenso que cria trilhas para o lado humano das coisas., Estes são o que eu chamo de registros gerados por programadores, e eles formam a espinha dorsal de indústrias sensíveis como a banca. Aqui está um exemplo do que um registro de esquema pode parecer com:
o Log é o poder
Assim, dado que estes dois tipos de logs em um sistema, aqui está como você pode aproveitá-los e aumentar o impacto.
ficar à frente do cliente
“deleite do cliente” passou a ser conhecido como um truque de marketing inútil, mas graças ao registro, ele pode ser feito muito real., Eu conheço produtos digitais que monitoram seus registros como um falcão, e assim que um cliente quebra alguma coisa na página, eles podem ligar para o cliente e se oferecer para ajudar.
apenas pense sobre isso — dentro de segundos de obter um erro feio, você recebe uma chamada da empresa que diz, “Hey, eu entendo que você estava tentando adicionar este item ao carrinho, mas ele continuou morrendo. Posso acrescentar desta vez e completar a encomenda para ti?cliente Encantado? Podes crer!,
a moral da equipe e a produtividade
Como eu disse antes, quando os bugs ficam sem rastro por um longo tempo, os desenvolvedores em sua equipe ficam frustrados e perdem mais e mais tempo perseguindo suas caudas. E aqui está a coisa com depuração-requer uma mente nova e curiosa desde o início. Se um pensamento WTF entra no seu cérebro, todo o processo vai para um arremesso.e o que torna difícil a depuração? Pela minha experiência, falta de exploração madeireira ou falta de Conhecimento da exploração madeireira., Para começar, você pode não perceber que seu banco de dados favorito também é apenas outro pedaço de software que gera logs, ou você não está registrando extensivamente em sua aplicação (veja registros gerados por programadores acima).lembro-me particularmente de um caso em que o pedido não respondia, e ninguém sabia porquê. Alguns dias depois, o culpado foi o limite de disco I / O atingido devido ao tráfego excessivo. Porque ninguém se deu ao trabalho de procurar lá, ninguém conseguiu descobrir porquê.,e se dois anos depois o seu cliente disser que todas essas encomendas não foram feitas por eles, mas por algum hacker?que argumento teria para considerar ou rejeitar o seu pedido? Se você tem registro extensivo (endereço IP, data e hora, cartão de crédito, etc.), então você será capaz de analisar tudo isso e chegar a uma decisão. Bom ou mau, terá pelo menos alguma base objectiva, em vez de se assemelhar a um tiro no escuro.
o mesmo é verdade se você estiver sob alguma lente Regulatória ou for obrigado a submeter-se a uma auditoria de terceiros como parte de um novo projeto importante. Não ter um sistema de Registo robusto mostrar-lhe-á sob uma luz má.como melhorar o sistema actual?
Você deve simplesmente jogar mais tópicos de RAM e CPU nele? E se o seu aplicativo é lento, apesar de recursos suficientes? Onde está o gargalo? Mais frequentemente do que não, o registo é a resposta.,
Por exemplo, todos os principais sistemas de banco de dados têm uma característica para registrar consultas lentas.
Se você visitar o log de consultas lentas regularmente, você vai saber de quais operações e tomando a maior parte do tempo, e, portanto, descobrir pequenas, mas importantes áreas que precisam de trabalho. Muitas vezes, uma pequena mudança como esta funciona melhor do que dobrar a capacidade de hardware.
não há como contar de quantas maneiras um bom sistema de registro ajuda você., Talvez o melhor argumento seja que é uma atividade automatizada que uma vez estabelecida, não precisa de nenhum monitoramento, e vai salvá-lo da ruína algum dia.
com isso fora do caminho, vamos olhar para alguns dos incríveis colecionadores de logs de código aberto (unified loging tools) lá fora. Só para o caso de estares a pensar, nós cobrimos ferramentas comerciais de Registo baseadas em nuvens num post anterior.
Graylog
Graylog é um dos principais nomes na indústria quando se trata de capacidade de registro e visualização., Também é único na medida em que verifica os seus registos recolhidos por sinais de vulnerabilidades de segurança e notifica-o instantaneamente.
enquanto Graylog é um sistema de registro centralizado, ele tem a flexibilidade que você precisa, permitindo que você Personalize alertas, painéis, e muito mais.
Greylog é de código aberto, mas há um plano empresarial se as suas necessidades são complexas.
com clientes como SAP, Cisco e LinkedIn em sua lista, Graylog é uma ferramenta que você pode confiar com seus olhos fechados.,
Logstash
Se você é um fã ou usuário da pilha elástica, Logstash vale a pena verificar (a pilha ELK já é uma coisa, no caso de você não saber). Como outras ferramentas de registro nesta lista, Logstash se totalmente de código aberto, permitindo-lhe a liberdade de implantar e usar como desejar.
mas não seja enganado: Logstash é uma nave-mãe com capacidades muito superiores a qualquer ferramenta de registro humilde. Ele é capaz de coletar grandes quantidades de dados de várias plataformas, permite que você defina e execute seus próprios oleodutos de dados, fazer sentido de lixeiras de log não estruturadas, e muito mais.,
claro, a única limitação é que ele funciona apenas com o suíte elástico de produtos, mas se você está começando e olhando para a escala em breve, Logstash é o caminho a seguir!
Fluentd
entre as ferramentas de registro centralizadas que funcionam como uma camada média para a ingestão de dados, Flutend é a primeira entre iguais. Com uma excelente biblioteca de plugins, Fluentd é capaz de capturar dados a partir de praticamente qualquer sistema de produção, a amassá-la para a estrutura desejada, construir um pipeline personalizado, e alimentá-lo para o seu favorito plataforma de análise, seja o MongoDB ou Elasticsearch.,
Fluentd é construído em Ruby, é inteiramente de código aberto, e é extensivamente popular por causa de sua flexibilidade e modularidade.com grandes empresas como Microsoft, Atlassian e Twilio usando a plataforma, Fluentd não tem nada a provar. 🙂
Flume
Se realmente, conjuntos de dados realmente grandes são o seu desafio, e você eventualmente quer alimentar tudo em algo como Hadoop, Flume é uma das melhores escolhas ao redor. É um projecto” puro ” de código aberto, no sentido em que é mantido pela nossa amada Fundação Apache, o que significa que não há plano empresarial.,isto pode ser ou não o que está exactamente à procura. 🙂
Escrito em Java (que continua a surpreender-me quando vem a inovadora tecnologia), o Canal do código-fonte está totalmente aberta. Flume é melhor para você se você está procurando uma plataforma de ingestão de dados distribuída, tolerante a falhas para coisas pesadas.,
Octopussy
i give it zero out of ten for product naming, but Octopussy can be a good choice if your needs are simple, and you’re wondering about what all the fuss related to pipelines, ingestion, aggregation, etc., é tudo sobre.
Na minha opinião, Octopussy cobre as necessidades da maioria dos produtos lá fora (estimado estatísticas são inúteis, mas se eu tivesse que adivinhar, eu diria que cuida de 80% de casos de uso no mundo real).
Octopussy não tem um grande UI (veja aqui) em tudo, mas compensa-o em relação à velocidade e falta de inchaço., A fonte está disponível no GitHub, como esperado, e eu acho que vale a pena um olhar sério.
Rsyslog
Rsyslog significa um sistema rápido de foguete para processamento de log.
é um utilitário para sistemas operacionais Unix-like. Em termos técnicos, é um roteador de mensagens com Entradas e Saídas dinamicamente carregáveis e é altamente configurável.
ele pode receber a entrada de várias fontes de dados, transformá-lo, e enviar a saída para vários destinos. Com o Rsyslog, você pode entregar 1 milhão de mensagens por segundo sobre destinos locais.,
Rsyslog também fornece um agente do Windows que trabalha muito de perto com o agente Linux Rsyslog. É usado para a integração entre os dois ambientes. Este agente do windows é usado para encaminhar os logs de eventos do windows e configurar o serviço de monitor de arquivos.
abaixo estão outras características oferecidas pelo Rsyslog:
- configurações flexíveis
- oferece capacidades de multi-threading
- protecção de manipulação de ficheiros Log usando assinaturas de registo e encriptação.,
- Suporta Grandes plataformas de Dados
- Fornece conteúdo baseado em capacidades de filtragem
LOGalyze
LOGalyze foi um produto comercial que foi feito recentemente open source. Embora eu não pudesse fazer o projeto no GitHub, eles fazem um instalador do Windows e todos os códigos fonte podem ser baixados.
Se você está com a intenção em uma comunidade, você pode encontrar detalhes de uma lista de discussão aqui.
LOGalyze é uma oferta relativamente flexível e poderosa que funcionará bem para implementações de Sistema Único que procuram combinar o registro de fontes conhecidas como Postfix, Apache, etc.,, e produzir a saída em CSV, PDF, HTML ou formatos semelhantes. Sim, não faz tudo, mas como era um produto comercial de uma vez, faz muito bem.
LogPacker
Quando se trata de escolher uma ferramenta para o trabalho, eu tenho dois critérios: ele tem que ser focado, e tem de ser apoiada por um modelo de negócio. O problema do software de código aberto, em geral, é que alguns meses / anos depois, as chances de estagnação ou morte são altas. Não há Contagem de quantas ferramentas de registro foram lançadas com gosto, apenas para ser encontrado agora no cemitério de GitHub.,
medido por esta bitola, o LogPacker é um favorito para mim.
Como você pode dizer a partir da imagem, LogPacker é tudo sobre logs, e nada mais. Seu impulso é definitivamente para as suas ofertas na nuvem, mas você é mais do que bem-vindo para baixar e instalá-lo em seus servidores (GitHub page aqui).
Clustering and aggregation are available for those wanting to use it on a non-trivial scale, and enterprise plans are available who want to work with the API or need larger deployments., Uma refrescante minimalista (focada, embora não característica-pobre) assumir a gestão da exploração madeireira, na minha opinião!
Logwatch
estou certo de que existem entre nós aqueles que não querem toda a cerimônia associada com um sistema de Registro “unificado”, “centralizado”. Seus negócios vêm de servidores únicos, e eles estão procurando algo rápido e eficiente para assistir seus arquivos de log. Diz olá ao Logwatch.
uma vez instalado, o LogWatch pode analisar os registos do seu sistema e criar um relatório do tipo que deseja., É um software um pouco datado (leia “confiável”), porém, e foi escrito em Perl. Então, vai precisar do Perl 5.6+ no seu servidor para o executar. Eu não tenho nenhuma imagem para compartilhar como é uma linha de comando puramente, processo daemonizado.se você é um viciado em CLI e tem um amor pela maneira antiga de fazer as coisas, você vai adorar o Logwatch!
Syslog-ng
a ferramenta Syslog-ng foi desenvolvida como uma forma de processar os ficheiros de dados Syslog (um protocolo cliente-servidor estabelecido para o registo do sistema) em tempo real., Ao longo do tempo, porém, veio a suportar outros formatos de dados: não estruturado, SQL, e NoSQL. Como o protocolo Syslog funciona são resumidos na ilustração a seguir.
syslog-ng é uma ferramenta de recolha de logs de qualidade, confiável e de classificação que foi escrito em C e tem sido um nome estabelecido na indústria por muito tempo. A melhor parte é sua extensibilidade, permitindo que você escreva plugins Em C, Python, Java, Lua, ou Perl.
lnav
diminutivo de (Log Navigator), lnav é uma ferramenta de terminal pura que trabalha numa única máquina, numa única pasta., É para aqueles que têm seu registro unificado em um único diretório ou querem filtrar e exibir registros em tempo real de uma única fonte.se achasse que o lnav não era mais do que glorificado tailf |
grep
estaria errado. Existem várias características que o farão apaixonar-se por ele: visão de série cronológica, impressão bonita (para JSON e outros formatos), fontes de log codificadas por cores, filtros poderosos, capacidade de entender vários protocolos de registro, e muito mais.,
é que às vezes você quer um zero-aborrecimento, zero configuração, talvez-camada de registro temporário, e lnav se encaixa perfeitamente na conta!conclusão e pronto!
foi uma lista difícil de compilar, para ser franco, já que o registro não é tão popular como, por exemplo, a gestão de Conteúdo, e todo o mindshare parece ter sido agarrado por três ou quatro ferramentas. Ainda assim, as necessidades de todos são diferentes, e eu tentei cobri-las extensivamente.
de uma linha de comando tola, ferramentas sem configuração para dados completos, está tudo aqui! Perdi alguma coisa? Claro que sim!
Deixe uma resposta