You may need to watch different log files on automated test runs. With log.io you can simply monitoring log files via browser! This tutorial shows how easy it is.
Preconditions
Preparation
Create new project with following structure and files.
# create new project LogIO
$ mkdir -p ~/Projects/LogIO/data
# go into new Project
$ cd ~/Projects/LogIO
# create needed files in data
$ touch data/{harvester.conf,log_server.conf,web_server.conf,log.io}
# create Vagrantfile
$ touch Vagrantfile
# show files
$ tree .
.
├── Vagrantfile
└── data
├── harvester.conf
├── log.io
├── log_server.conf
└── web_server.conf
File contents
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.require_version ">= 1.8.1"
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "centos/7"
config.vm.network "public_network"
config.vm.synced_folder "./data", "/vagrant", disabled: false
config.vm.provider "virtualbox" do |vb|
vb.name = "LogIO"
vb.cpus = "2"
vb.memory = "2048"
vb.gui = false
end
config.vm.provision "shell", inline: <<-SHELL
# install needed packages
sudo yum update -y && sudo yum install -y epel-release
sudo yum install -y vim net-tools npm nodejs
sudo yum clean all
# install log.io for user <root>
sudo npm install -g log.io --user "root"
# provide custom files for user <root>
sudo rm -f /root/.log.io/*
sudo cp /vagrant/*.conf /root/.log.io/
sudo chown root:root /root/.log.io/*.conf
# provide init.d for log.io
sudo cp /vagrant/log.io /usr/local/bin/log.io
sudo chmod +x /usr/local/bin/log.io
sudo chown root:root /usr/local/bin/log.io
SHELL
end
Configure your Harvesters…
exports.config = {
nodeName: "application_server",
logStreams: {
apache: [
"/var/log/apache2/access.log",
"/var/log/apache2/error.log"
]
},
server: {
// connect to log.io server
host: '127.0.0.1',
port: 28777
}
}
Configure your log server…
exports.config = {
host: '0.0.0.0',
port: 28777
}
Configure your web server…
exports.config = {
host: '0.0.0.0',
port: 28778,
/*
// Enable HTTP Basic Authentication
auth: {
user: "admin",
pass: "1234"
},
*/
/*
// Enable HTTPS/SSL
ssl: {
key: '/path/to/privatekey.pem',
cert: '/path/to/certificate.pem'
},
*/
/*
// Restrict access to websocket (socket.io)
// Uses socket.io 'origins' syntax
restrictSocket: '*:*',
*/
/*
// Restrict access to http server (express)
restrictHTTP: [
"192.168.29.39",
"10.0.*"
]
*/
}
Create simple init script…
#!/bin/bash
start() {
echo "Starting log.io process..."
/usr/bin/log.io-server &
/usr/bin/log.io-harvester &
}
stop() {
echo "Stopping io-log process..."
pkill node
}
status() {
echo "Status io-log process..."
netstat -tlp | grep node
}
case "$1" in
start) start;;
stop) stop;;
status) status;;
*) echo "Usage: start|stop|status";;
esac
Usage
# start VM via vagrant
$ vagrant up
# SSH into VM
$ vagrant ssh
# become root
$ sudo su -
# start log.io
$ log.io start
# get ip
$ ip addr
Now open your browser with URL http://<ip>:28778