Configuração do Log.io (Aplicação para monitoramento de logs)

Posted . Visible to the public.

Pré-requisitos\
O node.js e o npm devem estar instalados

Instalação do Log.io
#instale o modulo do logio com escopo global
npm install -g log.io
#ou instale com escopo global para um usuário específico
npm install -g log.io --user "ubuntu"

#Configure os arquivos que serão monitorados
nano ~/.log.io/harvester.conf

Exemplo de uma configuração do harvester:

exports.config = {
  nodeName: "my_stream",
  logStreams: {
    errors_log: ["/var/log/tomcat7/errors.log"],
    app_logs: ["/var/log/tomcat7/app_1.log", "/var/log/tomcat7/app_2.log"],
    server_logs: ["/var/log/tomcat7/stacktrace.log"]
 },
  server: {
    host: '0.0.0.0',
    port: 28777
  }
}

A instalação foi concluída, agora vamos configurar os scripts para manutenção da aplicação:\
Crie o arquivo abaixo:
sudo nano /etc/init/log.io-server.conf

Adicione o seguinte conteúdo, onde ubuntu é o nome do usuário que deverá ser alterado caso seu usuário seja diferente:

description "start log.io server"

start on runlevel [2345]
stop on runlevel [016]
respawn

exec su -s /bin/sh -c 'exec "$0" "$@"' ubuntu -- /usr/local/bin/log.io-server

Agora vamos configurar o harvester (utilizado para monitorar arquivos).\
Crie o arquivo abaixo:
sudo nano /etc/init/log.io-harvester.conf

Adicione o seguinte conteúdo, onde ubuntu é o nome do usuário que deverá ser alterado caso seu usuário seja diferente:

description "start log.io harvester"
start on runlevel [2345]
stop on runlevel [016]
respawn

exec su -s /bin/sh -c 'exec "$0" "$@"' ubuntu -- /usr/local/bin/log.io-harvester

Para rodar os scripts:
sudo start log.io-server
sudo start log.io-harvester

sudo stop log.io-server
sudo stop log.io-harvester

Os logs estarão disponíveis aqui:
/var/log/upstart/log.io-server.log
/var/log/upstart/log.io-harvester.log

Ao reiniciar o computador a aplicação iniciará automaticamente.

Habilitar autenticação via basic_auth\
Na documentação do log.io diz que há a possibilidade de habilitar autenticação via basic_auth através de arquivos de configuração, mas não funcionou para mim. Há algumas issues cadastradas no repositório do projeto mas parece que já tem um bom tempo que ninguém da manutenção.
A solução que encontrei foi alterar o código.
Para habilitar edite o arquivo server.js:
sudo nano /usr/lib/node_modules/log.io/lib/server.js
E adicione a linha abaixo na função buildServer do objeto WebServer:

WebServer.prototype._buildServer = function(config) {
      var app, ips, staticPath, _ref,
        _this = this;
      app = express();
      
      //Adicione esta linha
      app.use(express.basicAuth("meu_usuario", "minha_senha"));
      
      if (config.restrictHTTP) {
        ips = new RegExp(config.restrictHTTP.join('|'));
        app.all('/', function(req, res, next) {
          if (!req.ip.match(ips)) {
            return res.send(403, "Your IP (" + req.ip + ") is not allowed.");
          }
          return next();
        });
      }
      staticPath = (_ref = config.staticPath) != null ? _ref : __dirname + '/../';
      return app.use(express["static"](staticPath));
    };

\
Referências\

  1. http://logio.org/ Show archive.org snapshot \
  2. https://github.com/NarrativeScience/Log.io Show archive.org snapshot
Victor Carvalho
Last edit
Tags
Posted by Victor Carvalho to ZeroGlosa (2014-04-11 15:02)