Online video hd

Смотреть крупно видео

Официальный сайт медиатэк 24/7/365

Смотреть видео бесплатно

10.03.11 00:50 depeche

Есть вопрос!Nginx+Syslog (mb syslog-ng)

Всем привет!

Есть проблемка. Имеется Cent OS сервер с Nginx. Нужно отсылать логи nginx-а на удаленный сервер (на удаленке стоит syslog-ng). Используя гугл выяснил, что напрямую он с syslog-ом не умеет работать, именно потому попробовал это http://www.grid.net.ru/nginx/udplog.ru.html . Но, как выяснилось, с тем плагином нджинкс вообще не хотел стартовать и сразу слал ероры в ерор-лог, но сервер в процесах висел. Пробовал также logger (shell command interface to the syslog), норм работает, но проблема в том, что он только при запуске пересылает лог, а не постоянно опрашивает их на предмет изменения. Впринципе можно было бы все реализовать с помощью крона и переодически запускать комманду типа logger -p local0.notice -f /адрес/файла/которого/нужно/переслать/в/лог но это как по мне довольно костыльно.

Так вот вопрос в том, как это все реализовать лучшим образом? В данном случае можно спользовать и что-то альтернативное, не только syslog или syslog-ng. Поделитесь опытом!


Теги:

stas_v 10.03.11 06:21 # +2
У нас работает как-то так (syslog-ng):


source s_acces_log { file("/var/log/access.log"); };
destination d_stats { tcp("1.2.3.4" port(5678)); };
log { source(s_acces_log); destination(d_stats); };

Ротейшны воспринимает адекватно.
# syslog-ng -V
syslog-ng 3.1.1

depeche 10.03.11 12:27 # +0
а файл /var/log/access.lo на локальной машине мониторится постоянно? вплане любые его изменения будут зарегистрированы и сразу отосланы сислогом-нг куда надо?
stas_v 10.03.11 12:33 # +1
Да. syslog-ng поддерживает ряд типов source, среди которых есть и такой - читать из файла. Частота проверки изменения файла настраивается в опциях.

Читать тут. Ну и вообще рекомендую по нему доки почитать, syslog-ng очень мощный.
depeche 10.03.11 16:09 # +0
можно ли использовать такой синтаксис

file("tail -f /var/log/nginx/error.log | logger -p local4.info")

т.е. выполнение комманды вместо конкретного файла. тут прочитал http://belgorod.lug.ru/wiki/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_syslog-ng
stas_v 11.03.11 01:09 # +1
Если это - кусок конфига syslog-ng, то нельзя. Если надо читать "из stdin", то есть program() (или pipe(), если через FIFO).
depeche 10.03.11 16:10 # +0
по поводу ссылки только что прочитал. ) сейчас попробую.
depeche 14.03.11 14:54 # +0
не приходилось настраивать логи Solr-сервера?
stas_v 14.03.11 15:19 # +1
Самое смешное, что приходилось. Сейчас уже не помню деталей, но вот результат:

1. Ставили Solr/jetty в /opt/jetty
2. Развернули solr.war в /opt/jetty/webapps/solr (сам solr.war припрятали)
3. Заменили slf4j-jdk14-1.5.5.jar на slf4j-log4j12-1.5.5.jar в /opt/jetty/webapps/solr/WEB-INF/lib
4. Сам log4j-1.2.16.jar положили в /opt/jetty/lib/ext
5. jetty/solr запускается с параметром Dlog4j.configuration=file:etc/log4j.properties
6. Содержимое /opt/jetty/etc/log4j.properties:

log4j.rootLogger=INFO, SYSLOG, STDOUT

log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.conversionPattern=%d{dd MMM yyyy HH:mm:ss} %-5p [%t] %c{2} %x - %m%n

log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.syslogHost=127.0.0.1
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.conversionPattern=jetty: [%t] %c{2} %x %m
log4j.appender.SYSLOG.Facility=LOCAL0
log4j.appender.SYSLOG.filter.WARN=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.SYSLOG.filter.WARN.LevelMin=WARN
log4j.appender.SYSLOG.filter.WARN.LevelMax=FATAL

7. Содержимое /etc/rsyslogd.d/central.conf (у нас Debian, в нём штутно rsyslogd, ничего ломать не хотели):

*.info;local1,local2,local3,local4,local5,local6,local7.none @1.2.3.4

(где 1.2.3.4 - наш центральный лог-сервер).

Я потратил где-то два рабочих дня, чтоб настроить solr для нормального логирования (java немного "неродная" для меня технология). Потребовалось почитать про сам Solr/Lucene, Jetty и log4j.
depeche 14.03.11 15:32 # +0
>Ставили Solr/jetty в /opt/jetty

Я так понимаю устанавливать надо только Solr? Или как понимать Solr/jetty?
stas_v 14.03.11 16:06 # +0
Ну как. Сам solr - это просто solr.war (сервлет). Но его надо запускать чем-то. В комплекте с solr'ом идёт jetty. Мы не стали париться с Apache Tomcat и взяли, что дают. На самом деле, самый простой способ запуска solr - это cd /opt/jetty; java -jar start.jar - запустится "встроенный jetty".

Разумеется, не всё так просто и с сайта jetty мы утащили дебиановский стартовый скрипт, приспособили под себя и пускем им. У нас вообще кластер из четырёх солров : один мастер и три слейва.
depeche 14.03.11 16:05 # +0
я вот нашел в книге http://www.wowebook.com/web-development/solr-1-4-enterprise-search-server.html

203 страница.

как тебе?
stas_v 14.03.11 16:14 # +1
А, это примерно то, что я и написал. SLF4J пишет только в файл. Мы могли "поднимать" этот файл при помощи syslog-ng file(), но тогда таймстэмпы добавлялись бы к каждой строчке, а у солра вывод многострочный. Для "красоты" хотелось, чтоб эти сообщения уходили одной записью. Поэтому и перешли на log4j.

Ну а вообще всё правильно написано, годная книжка. Её и читал :)
depeche 14.03.11 18:12 # +0
Просто проблема в том, что я доделую работу, которую начали другие.

И тут я иследовал, что в папке init.d уже создали запусковые скрипты solr. Выглядит он так:

#!/bin/sh -e
# chkconfig: 2345 95 20
# description: Solr Indexing Server
SOLR_DIR="/opt/solr1/example"
JAVA_OPTIONS=" -Xms800m -Xmx1200m -Djetty.port=8983 -DSTOP.PORT=8071 -DSTOP.KEY=ftasolrstop -Dsolr.solr.home=multicore -jar start.jar"
LOG_FILE="/var/log/solr1.log"
JAVA="/usr/bin/java"
PKILL="/usr/bin/pkill"

case $1 in
start)
echo "Starting Solr"
cd $SOLR_DIR
$JAVA $JAVA_OPTIONS 2> $LOG_FILE &
;;
stop)
echo "Stopping Solr"
cd $SOLR_DIR
$JAVA $JAVA_OPTIONS --stop
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}" >&2
exit 1
;;
esac

т.е я это понимаю, как запуск сервлета джавой с параметром логирования в /var/log/solr1.log. Так ведь?
stas_v 15.03.11 01:03 # +0
Ага, оно.
depeche 15.03.11 20:32 # +0
Наверное тебе приходилось также работать с memcached. В принципе ясно, но имею некоторые вопросы:

1) http://www.quora.com/How-can-I-enable-memcached-logging-to-disk Типа редактирование скрипта запуска в /etc/init.d с выводом в определенный лог. Это нормально? Или есть какие то другие варианты?

2) Заметил, что обьем файла логов (на примере с solr) быстро растет. Как эту проблему можно устранить?
depeche 10.03.11 16:41 # +0
все вроде ок, получилось. спасибо.

Вопрос #2. Кто-то пробовал какие-то плагины для работы сислога с нджинксом? Ну типа такого
stas_v 11.03.11 01:18 # +1
Я бы не стал. Скорее всего, вывод в syslog скорее всего является блокирующим и если что-то с сислогом произойдёт - nginx просто встанет колом. Я бы делал через файл, потому что в этом случае он (файл) выступит в качестве почти бесконечного буфера.

Есть ещё вариант с выводом лога в именованый канал(pipe), syslog-ng умеет и из него читать. Но опять же: если "читатель" (syslog-ng) отвалится, nginx быстро заполнит буфер fifo и остановится. Вот тут Сысоев (автор nginx) про это пишет.
depeche 10.03.11 16:43 # +0
http://www.grid.net.ru/nginx/udplog.ru.html

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 164)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3408 из 238 городов)
            Топ пользователей Топ блогов

            Новенькие: Partisan, vhlopunov, Stamm, Robotex, naaby
            welinux.ru

            Смотреть видео онлайн

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн