Я использую Piwik Analytics на сайте, на котором не запущен какой-либо javascript, и я бы предпочел, чтобы данные создавались из журналов доступа, а не из средства отслеживания изображений - результаты из журналов на самом деле лучше, потому что они могут включать статические загрузки файлов.
Это LEMP-сервер с Ubuntu 12.04 и nginx 1.4.5.
Скрипт python находится по адресу /var/www/example1.com/public/piwik/misc/log-analytics/import-logs.py
и потребуется запустить несколько вариантов. Журнал доступа находится по адресу /var/www/example2.com/logs/access.log.1
.
Соответствующая часть /etc/logrotate.d/nginx
содержит:
/var/www/*/logs/*.log {
daily
missingok
rotate 36500
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi; \
endscript
postrotate
[ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
endscript
}
Я не знаю, как интегрировать скрипт python, чтобы он запускался в конце этого (после завершения ротации).
Редактировать:
Еще одна проблема, которую я изначально не рассматривал, заключается в том, что этот сценарий нужно запускать только для одного домена - остальные домены на сервере не требуют этого сценария. Файл выше, который я создал, чтобы он автоматически чередовал журналы для всех доменов, добавленных на сервер, без необходимости редактировать /etc/logrotate.d/nginx
.
Вы можете поместить команду, которую хотите выполнить, между postrotate
и endscript
строки (убедитесь, что строка уже там):
postrotate
[ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
/usr/bin/python /var/www/example1.com/public/piwik/misc/log-analytics/import-logs.py somearguments
endscript