Processando arquivos de log do Apache no Graphite

Depois de procurar por uma cadeia de ferramentas que nos permitisse importar estatísticas access_log do Apache de um número crescente de máquinas da web para o Graphite, optei por rsyslog e logster de etsy. É realmente muito simples e aplicável a todos os tipos de problemas de registro. Aqui está um resumo rápido de como funciona.

Sua configuração do apache precisa utilizar o utilitário logger . Você pode ler mais sobre isso aqui, mas está disponível em todo lugar. http://linux.die.net/man/1/logger

Em sua configuração do Apache, você precisará editar seu registro para algo assim:

CustomLog /path/to/access_log foobar
CustomLog "|/path/to/logger -t httpd -p local6.info" foobar
CustomLog /path/to/access_log foobar

Em seu /etc/rsyslog.conf, tudo o que você precisa é um encaminhador simples para httpd.

if $programname == 'httpd' then @@logging.meow.com:10512

Se você perceber que / var / log / messages está enchendo com suas mensagens access_log, você precisa incluir ‘local6.none’ na linha rsyslogl.conf definindo / var / log / messages.

Agora você precisa coletar todas as estatísticas em algum lugar. Configure outra máquina executando rsyslog (em logging.meow.com) para receber esses eventos de log.
Cole no final do seu rsyslog.conf:

# process remote messages
# define new ruleset and add rules to it:
$ModLoad imtcp
.so
$RuleSet remote

if $programname == 'httpd' then /path/to/my/unified.log
# bind ruleset to tcp listener
$InputTCPServerBindRuleset remote

# and activate:
$InputTCPServerRun
10512

Legal, isso é basicamente para puxar as toras. Agora você vai querer instalar o logster de etsy na máquina de captura de log de seu repositório github. https://github.com/etsy/logster

E adicione este analisador de log Apache que modifiquei do exemplo deles para analisar seus logs. https://gist.github.com/2997169

Espero que tenha sido fácil de seguir. Se você estiver procurando por mais informações, você pode tentar esta página de wiki loggly: http://wiki.rsyslog.com/index.php/Working_Apache_and_Rsyslog_configuration

ou a documentação rsyslog: http://www.rsyslog.com/doc/manual.html

. Obrigado!