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\