Syslog-ng MySQL

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску

Запись логов в MySQL

В syslog-ng есть возможность передавать логи на обработку внешним программам. Соответвенно, запись в БД на самом деле - передача данных на вход sql-клиента (pipe нужно создать предварительно)

# mkfifo /etc/syslog-ng/mysql.pipe


# Log to aradia  SQL
destination d_mysql_aradia_table_switch_log {
              program("/usr/bin/mysql -h my.host.net  --user=syslog_user --password='syslog_password' syslog < /etc/syslog-ng/mysql.pipe");
              pipe ("/etc/syslog-ng/mysql.pipe"
              template("INSERT INTO switch_log  (host, facility, priority, level, tag, date, time, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL','$TAG','$YEAR-$MONTH-$DAY', '$HOUR:$MIN
")
              template-escape(yes));
};

Обратить внимание на перенос строки в темплейте. Без него работать не будет.

Note: Из проблем можно отметить, что в случае краша удаленного MySQL