Запись логов в MySQL
Взаимодействие с MySQL в RSyslog осуществляется через загружаемый модуль "ommysql". Прежде чем использовать данный плагин, нужно проверить его наличие в системе:
host# dpkg -l | grep rsyslog
Если его нет, то устанавливаем:
host# apt-get install rsyslog-mysql
Переходим к конфигурации rsyslog-а (/etc/rsyslog.conf).
Указываем rsyslog-у на то что необходимо загрузить нужный нам модуль:
$ModLoad ommysql
Для других баз данных необходимо использовать другие плагины (например, ompgsql для PostgreSQL).
Далее указываем шаблон, который является запросом SQL, о чём мы указываем опцией шаблона "sql":
$template imya_shablona,"insert into db.table(time, host, msg) \ values ('%timestamp%', '%hostname%', '%msg%')",sql
Далее указываем что мы хотим записывать и куда:
. :ommysql:dbserver,dbname,dbuserid,dbpassword;imya_shablona
где:
dbserver IP-адрес, либо доменное имя сервера, на котором запущен MySQL-сервер dbname имя БД, в таблицу(цы) которой будут записываться логи dbuserid имя пользователя БД, от которого будет идти запись dbpassword пароль пользователя "dbuserid"Перезагружаем rsyslog, лезем в MySQL и наслаждаемся результатом:
# /etc/init.d/rsyslog restart
Если вдруг результат оставляет желать лучшего, то лезем в лог rsyslog-а (/var/log/syslog) и смотрим выдаваемые им ошибки:
- не установлен пакет rsyslog-mysql
... rsyslogd: could not load module '/usr/lib/rsyslog/ommysql.so', dlopen: /usr/lib/rsyslog/ommysql.so: cannot open shared object file: No such file or directory
- в шаблоне не указана опция "sql"
... rsyslogd: Action disabled. To use this action, you have to specify the SQL or stdSQL option in your template!
- в селекторе не указан шаблон
Комментарии
Пока комментариев нет.