Установка утилиты он-лайн просмотра лог файлов Log.io на Debian 7 "Wheezy"

Любому web-разработчику часто приходится смотреть логи своего приложения, и они очень часто жалуются, что неудобно это делать через ssh (интересно, почему бы?) и tailf. Наверное именно для них и был написано log.io.

Log.io - это утилита для просмотра логов в реальном времени в веб-браузере. Написана на node.js и socket.io.

Я, если честно, не люблю всякие новомодные написанные на новомодных языка (например, на node.js) приложения, но каких-то более толковых альтернатив log.io не нашёл.

Для начала нам нужно установить node.js и npm. В обычных репозиториях его нет, поэтому добавим wheezy backports:

root@test:~# echo "deb http://ftp.us.debian.org/debian wheezy-backports main" >> /etc/apt/sources.list
root@test:~# apt-get update
root@test:~# apt-get install nodejs-legacy curl
root@test:~# curl https://npmjs.org/install.sh | sh

Теперь создадим пользователя для log.io:

root@test:~# useradd -m -s /bin/bash logio

Установим log.io через npm:

root@test:~# npm install -g log.io --user "logio"

Можете сходить попить чайку\кофейку так как процесс этот довольно продолжительный.
Сменим пользователя на недавно созданного logio:

root@test:~# su - logio

Теперь подредактируем конфигурационные файлы. Для начала стоит включить авторизацию и разрешить подключения к серверу только с localhost. Открываем ~/.log.io/web_server.conf:

// Будем слушать только localhost
host: '127.0.0.1',
port: 28778, // По этому порту будет доступен log.io
// Раскоментируем удалив /* */
// и сменим на что-нибудь более безопасное
auth: {
  user: "superuser",
  pass: "superuser$trololo@superpassword!ololo"
},

Теперь добавим конфиги для наблюдения. Открываем ~/.log.io/harvester.conf:

// Просто название
nodeName: "supertrololo_Logs",
logStreams: {
  // Собственно пути к файлам с логами
  Log: [
    "/var/www/mysupersite.org/log/access.log"
  ],
  error: [
    "/var/www/mysupersite.org/log/error.log"
  ]

На данном этапе у нас уже должен быть рабочий log.io. Запустим от пользователя logio собственно сам log.io:

logio@test:~# log.io-server &
logio@test:~# log.io-harvester &

Запустите браузер, и откройте http://ip-адрес:порт и проверьте, что всё работает. Если работает, то можно продолжить.
Для удобства можно создать домен, и перенаправлять все запросы с этого домена на log.io. Вот, например, как у меня это сделано в nginx:

server {
        listen   80;
        server_name logio.the-bosha.ru www.logio.the-bosha.ru;

        location / {
        proxy_pass http://127.0.0.1:28778;
        }
}

Убьём запущенные процессы log.io:

logio@test:~# pkill -f log.io

Всё, что нам осталось - это организовать нормальное управлением log.io через init систему, и запуск во время старта\перезагрузки системы. К сожалению, init скрипты написанные разрабочиком log.io, не работают, поэтому не желая разбираться в чужих - быстро написал свои. От root пользователя выполняем:

root@test:~# cd /etc/init.d/
root@test:~# wget https://the-bosha.ru/downloads/logio-server-init-script -O logio-server
root@test:~# wget https://the-bosha.ru/downloads/logio-harvester-init-script -O logio-harvester
root@test:~# chmod +x logio*
root@test:~# update-rc.d logio-server defaults
root@test:~# update-rc.d logio-harvester defaults
root@test:~# service logio-server
root@test:~# service logio-harvester

Если кого либо что-то смутит в этих init скриптах то знайте, они такие из-за непонятных особенностей nodejs и log.io. :)

Ссылки:

  • Домашняя страница log.io - logio.org


Понравилась статья? Поделись с друзьями!




Комментарии на этом сайте требуют включенного Javascript в вашем браузере. Вероятно, ваш браузер не поддерживает Javascript, или он был отключен по каким-то причинам. Если вы хотите прокомментировать пост, или просто почитать комментарии, то пожалуйста, включите Javascript или попробуйте открыть эту страницу другим браузером.