Pull to refresh

Comments 35

Мне нравится идея. Давно думал, что чего-то такого не хватает. Только немного боязно публиковать логи без пароля. Ведь можно случайно или-перебором открыть что-нибудь чужое. А ставить такую связку серверной части не каждый захочет.
Если будет пользоваться популярностью, прикручу https и запароливание.
Хотелось бы какое-нибудь криптование без участия сервера: один ключ указываем в tailme, другой вбиваем в браузере.
Эх… Версию для Windows бы… Вот как раз для nginx нужно =)
Попробуйте вот это завести. Только понадобится cygwin, чтобы tail был в Windows.
Можно отредактировать 2 строчки в tailme и заработает в винде)
Дико круто!
Надо покопаться в исходниках :) Прям сразу настроение поднял, у меня как раз такая долгоиграющая пластинка запущена =)
Пробовали подождать секунд 5?
Спасибо вам за человеческий подход — и под убунты пакет не поленились собрать, и для пипа, и на гитхабе все разложили по полочкам.
Просьба — впишите argparse в пип-зависимости. А то мне пришлось отдельно ставить.
Спасибо. Отличный сервис. Бывало использовал следующий метод для получения итоговых логов:
some_app | sendmail -v email@gmail.com
Но этот способ, конечно, ни в какое сравнение с вашим сервисом не идет.
UFO just landed and posted this here
UFO just landed and posted this here
Этот способ пару раз использовал, но тут есть косяк. Если лог стримится минут 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то другое.
Сегодня проверял — должно работать
И тут видно по Operation not permitted, что что-то с правами у вас не то.
Хм, и впрямь… На голом виртэнве все ок…
Sign up to leave a comment.

Articles

Change theme settings