
У меня есть этот dusty syslog-ng 3.1.3
, который пишет в базу данных, и все работает хорошо, однако, похоже, он хранит только 30 дней журналов (последняя таблица logs20150826
). Как мне увеличить это количество? Я не вижу ничего ясного в документации.
В каталогах logrotate есть некоторые ссылки, но, похоже, нет ничего, что управляло бы местом назначения MySQL, и ничего, /etc/syslog-ng/syslog-ng.conf
поэтому это 30-дневное хранение должно быть своего рода значением по умолчанию.
решение1
Проверьте, установлен ли у вас php-syslog-ng, syslog-ng за это не отвечает.
Вращение журнала
Ротация журналов должна быть частью большинства установок, где вы используете php-syslog-ng. Лучше использовать ротацию журналов, чем удалять строки в основной таблице, поскольку удаление строк может привести к проблемам с производительностью. Ротация старых журналов из основной таблицы также обычно приводит к повышению производительности, поскольку таблицы со старыми журналами являются статическими и могут быть оптимизированы. В каталоге скриптов есть скрипт logrotate.php. Возможно, вам придется отредактировать его, чтобы ввести правильный путь к вашей установке php-syslog-ng, но после этого он должен быть готов к использованию. Если вы включите таблицы слияния в файле config.php, то в конце скрипта будет создана таблица слияния всех таблиц журналов. Таблица слияния позволит вам выполнять поиск по всем таблицам вместо того, чтобы выполнять поиск по одной таблице за раз. Таблица слияния действительно приводит к небольшому снижению производительности в форме поиска, поскольку поля заполняются на основе всех таблиц, а не одной конкретной таблицы.
Вы также можете включить настройку LOGRETENTION в config.php. Если вы включите ее, то журналы старше этой настройки будут удаляться при каждом запуске logrotate.php.
Если вы решили использовать скрипт logrotate.php, то просто добавьте его в свой crontab и запустите его так часто, как вам нужно (в настоящее время максимальное значение — один раз в день).