понедельник, 3 августа 2015 г.

Логи SQIUD'а из нескольких потоков в один лог файл


Потребовалось в свое время на создать несколько потоков сквида на одной машине для повышения отказоустойчивости прокси сервера. Но в процессе эксплуатации возникла проблема, что не все потоки пишут в лог файл.


В конфиге SQUID'a явно указываем, чтобы логи писались в SYSLOG
access_log syslog:local7.* squid
Само собой перезапустим все потоки SQUID'а.

Так как у нас логи писались от пользователя Proxy в группе Proxy. Добывим пользователя syslog в группу Proxy.
usermod -a -G proxy syslog
И добавим прав на каталог с логами прав пользователям состоящим в группе Proxy.
chmod g+rwx /var/log/squid3
 Чтобы старый файл не мешался удалим его.
rm /var/log/squid3/access.log
Так как у меня все это на UBUNTU, используется модифицированный SYSLOG(RSYSLOG).
nano /etc/rsyslog.d/50-default.conf
Добавим в него.
local7.* /var/log/squid3/access.log
И перезапустим сервис.
service rsyslog restart
Проверим создался ли access.log
ls -l /var/log/squid3/access.log
Если ответ такой, значит все хорошо.
 -rw-r----- 1 syslog adm 26021730 авг.   3 10:20 /var/log/squid3/access.log
Если используется LIGHTSQUID, то нужно поправить lightparser.pl, так как у нас добавились новые столбцы в лог файле.

Найдем в нем эту строку
($Ltimestamp,$Lelapsed,$Lhost,$Ltype,$Lsize,$Lmethod,$Lurl,$Luser,$Lhierarchy,$Lconttype,@Lrest)=split;
И заменим ее на эту.
($_1,$_2,$_3,$_4,$_5,$Ltimestamp,$Lelapsed,$Lhost,$Ltype,$Lsize,$Lmethod,$Lurl,$Luser,$Lhierarchy,$Lconttype,@Lrest)=split;


Комментариев нет:

Отправить комментарий