Как стать автором
Обновить

Комментарии 35

Мне нравится идея. Давно думал, что чего-то такого не хватает. Только немного боязно публиковать логи без пароля. Ведь можно случайно или-перебором открыть что-нибудь чужое. А ставить такую связку серверной части не каждый захочет.
Если будет пользоваться популярностью, прикручу https и запароливание.
Хотелось бы какое-нибудь криптование без участия сервера: один ключ указываем в tailme, другой вбиваем в браузере.
Эх… Версию для Windows бы… Вот как раз для nginx нужно =)
Попробуйте вот это завести. Только понадобится cygwin, чтобы tail был в Windows.
Можно отредактировать 2 строчки в tailme и заработает в винде)
Дико круто!
Надо покопаться в исходниках :) Прям сразу настроение поднял, у меня как раз такая долгоиграющая пластинка запущена =)
Пример (лог nginx) пустой. Chrome 20.0.1132.47
Пробовали подождать секунд 5?
Пару минут ждал.
Спасибо вам за человеческий подход — и под убунты пакет не поленились собрать, и для пипа, и на гитхабе все разложили по полочкам.
Просьба — впишите argparse в пип-зависимости. А то мне пришлось отдельно ставить.
Спасибо. Отличный сервис. Бывало использовал следующий метод для получения итоговых логов:
some_app | sendmail -v email@gmail.com
Но этот способ, конечно, ни в какое сравнение с вашим сервисом не идет.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Этот способ пару раз использовал, но тут есть косяк. Если лог стримится минут 10, браузер обрывает соединение.
Ну и это менее юзерфрендли и без модных вебсокетов =)
Наверное tail -F иначе после ротейта лога tail останется на старом файле.
Я вот на днях сделал pupergrep как замену supergrep от etsy. В браузере мониторит столько логов, сколько скажете (у нас овер 100).
Прикольно, но сложнее. А почему полинг? Для ноды sockjs как-то даже роднее, чем для торнадо.
Для ноды да, но всё забирается за nginx, чтобы тот следил за доступом ко всему добру, а он не умеет иначе, насколько я понял. Сам я только за ws без костылей.

Насчет сложнее — возможно, просто у нас логи весьма подробные и зачастую нужно что-то подстветить, что-то убрать и т.д. В ясную погоду трейсы смотреть не приходится и они фильтруются, например.
Новый nginx умеет, но там настройка совсем не тривиальное, и вроде оно не особо стабильно.
И пробовали заменить на haproxy с acl'ами?
На haproxy менять не хочется, всё будет только сложнее. Те же acl проще в node.js держать, раз уж статику ей тоже придётся раздавать за haproxy.

Проже дождаться стабильный nginx с поддержкой ws. Вообще в планах есть раздача статики через ноду, но как-то не сейчас :)
Нее, совсем не стоит. Пробовали, нода совсем не очень держит статику. Самый рабочий вариант деплоя haproxy + nginx / lighttpd / sinatra (если ruby).
И даже версии nginx с поддержкой http 1.1 ведут себя совсем не очень в продакшене. Называется пробовали-проходили =)
Логи — вещь для весьма ограниченного числа людей. Тут не будет 3k+ запросов в секунду, как на балансерах. К тому же, статика сразу укладывается в кеш, а при нормальной работе ws будут потреблять 90% запросов.

Так что раздачу статики из ноды можно потерпеть для простоты деплоя и увеличения участия пользователей в разработке проекта :)
ws не делает запросов как таковых, а отправить данные с сервера на клиент очень «лёгкая» операция. На «мнини-продакшене» проводил тест, веб-сокеты оказываются легче для сервера, чем статика с лайти =)
В dist.py (local.py) для сервера отсутствует переменная «TORNADO_PORT», с ней заработало, но не совсем, как понимаю.

root@debi /home/prowl/cantailme-server # ./manage.py runpush
WARNING:root:Connect error on fd 10: ECONNREFUSED
ERROR:stormed-amqp:ERROR in on_disconnect() callback
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/stormed/connection.py", line 142, in on_closed_stream
    self.on_disconnect()
TypeError: on_closed() takes exactly 2 arguments (1 given)


Страница создается, но логи не приходят, с cantail.me все ok.
tornado из git?
И от рута не стоит запускать.
Да, устанавливал по инструкции с помощью pip и requirements.txt, лишь «stormed» на «stormed-amqp» заменил, иначе не находил.
А дистрибутив какой? Я тестил только в ubuntu 10.04 и 12.04
Debian Squeeze, завтра попробую на 12.04.
Кстати говоря, при установке в virtualenv сбоит:

(trna)gamma:trna mktums$ pip install -e git+https://github.com/nvbn/cantailme-client.git#egg=tailme
Obtaining tailme from git+https://github.com/nvbn/cantailme-client.git#egg=tailme
  Cloning https://github.com/nvbn/cantailme-client.git to /Users/mktums/.virtualenvs/trna/src/tailme
Unpacking objects: 100% (26/26), done.
  Running setup.py egg_info for package tailme
    
Installing collected packages: tailme
  Running setup.py develop for tailme
    
    Creating /Users/mktums/.virtualenvs/trna/lib/python2.7/site-packages/cantailme-client.egg-link (link to .)
    Adding cantailme-client 0.1dev to easy-install.pth file
    Installing tailme script to /Users/mktums/.virtualenvs/trna/bin
    
    Installed /Users/mktums/.virtualenvs/trna/src/tailme
Successfully installed tailme
Cleaning up...
  Exception:
Traceback (most recent call last):
  File "/Users/mktums/.virtualenvs/trna/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 104, in main
    status = self.run(options, args)
  File "/Users/mktums/.virtualenvs/trna/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/install.py", line 265, in run
    requirement_set.cleanup_files(bundle=self.bundle)
  File "/Users/mktums/.virtualenvs/trna/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/req.py", line 1081, in cleanup_files
    rmtree(dir)
  File "/Users/mktums/.virtualenvs/trna/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/util.py", line 29, in rmtree
    onerror=rmtree_errorhandler)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 249, in rmtree
    onerror(os.remove, fullname, sys.exc_info())
  File "/Users/mktums/.virtualenvs/trna/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/util.py", line 46, in rmtree_errorhandler
    os.chmod(path, stat.S_IWRITE)
OSError: [Errno 1] Operation not permitted: '/Users/mktums/.virtualenvs/trna/build/pip-delete-this-directory.txt'

  Storing complete log in /Users/mktums/.pip/pip.log
Traceback (most recent call last):
  File "/Users/mktums/.virtualenvs/trna/bin/pip", line 8, in <module>
    load_entry_point('pip==1.1', 'console_scripts', 'pip')()
  File "/Users/mktums/.virtualenvs/trna/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/__init__.py", line 116, in main
    return command.main(args[1:], options)
  File "/Users/mktums/.virtualenvs/trna/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 141, in main
    log_fp = open_logfile(log_fn, 'w')
  File "/Users/mktums/.virtualenvs/trna/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 168, in open_logfile
    log_fp = open(filename, mode)
IOError: [Errno 13] Permission denied: '/Users/mktums/.pip/pip.log'
Оно расчитано на linux'ы, судя по логам там что0то другое.
OS X
Сегодня проверял — должно работать
И тут видно по Operation not permitted, что что-то с правами у вас не то.
Хм, и впрямь… На голом виртэнве все ок…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории