File: /volume1/@appstore/WebStation/misc/syslog.conf
# suphp
destination d_suphp {
file("/var/packages/WebStation/var/log/suphp.log");
};
source s_suphp {
pipe("/run/suphp_log");
};
log{ source(s_suphp);
destination(d_suphp);
};
# nginx portal
source s_webstation_nginx {
file("/var/packages/WebStation/var/log/nginx_access_log"
follow-freq(1)
flags(no-parse)
);
};
parser p_webstation_nginx {
csv-parser(
columns("id", "time", "client", "request", "status", "bytes_sent", "referer")
flags(escape-double-char, strip-whitespace)
delimiters(";")
quote-pairs('""[]')
);
};
destination d_webstation_nginx {
sql(type(sqlite3)
database("/var/packages/WebStation/var/log/nginx_access.db")
table("log")
columns("id text", "time int", "level text", "client text", "message text")
values("${id}", "${S_UNIXTIME}", "info", "${client}", "[${status}] ${request} from ${referer} [bytes sent : ${bytes_sent}]")
indexes("id", "time", "client")
);
};
log{
source(s_webstation_nginx);
parser(p_webstation_nginx);
destination(d_webstation_nginx);
};
source s_webstation_nginx_error {
file("/var/packages/WebStation/var/log/nginx_error_log"
follow-freq(1)
multi-line-mode('prefix-suffix')
multi-line-prefix('^[0-9]{4}\/[0-9]{2}\/[0-9]{2}')
flags(no-parse)
);
};
parser p_webstation_nginx_error {
csv-parser(
columns("date", "time", "level", "process", "connection", "message")
flags(greedy)
delimiters(" ")
quote-pairs('""[]')
);
};
parser p_webstation_nginx_error_message {
csv-parser(
columns("event", "kv_message")
flags(greedy)
delimiters(",")
quote-pairs('""[]')
template("${message}")
);
};
parser p_webstation-nginx_error_kv {
kv-parser (value-separator(":") prefix(".error."));
};
parser p_webstation_nginx_error_host {
csv-parser(
columns("fqdn", "port")
delimiters(":")
quote-pairs('""[]')
template("${.error.host}")
);
};
destination d_webstation_nginx_error {
sql(type(sqlite3)
database("/var/packages/WebStation/var/log/nginx_error.db")
table("log")
columns("time int", "level text", "message text", "client text", "fqdn text", "port int")
values("${S_UNIXTIME}", "${level}", "${event}", "${.error.client}", "${fqdn}", "${port}")
indexes("time", "client", "fqdn", "port")
);
};
log{
source(s_webstation_nginx_error);
parser(p_webstation_nginx_error);
parser(p_webstation_nginx_error_message);
parser(p_webstation-nginx_error_kv);
parser(p_webstation_nginx_error_host);
destination(d_webstation_nginx_error);
};
# apache portal
# access log
parser p_webstation_apache {
csv-parser(
columns("id", "time", "client", "request", "status", "bytes_sent", "referer")
flags(escape-double-char, strip-whitespace)
delimiters(";")
quote-pairs('""[]')
);
};
source s_webstation_apache22 {
file("/var/packages/WebStation/var/log/apache22_access_log"
follow-freq(1)
flags(no-parse)
);
};
destination d_webstation_apache22 {
sql(type(sqlite3)
database("/var/packages/WebStation/var/log/apache22_access.db")
table("log")
columns("id text", "time int", "level text", "client text", "message text")
values("${id}", "${S_UNIXTIME}", "info", "${client}", "[${status}] ${request} from ${referer} [bytes sent : ${bytes_sent}]")
indexes("id", "time", "client")
);
};
log{
source(s_webstation_apache22);
parser(p_webstation_apache);
destination(d_webstation_apache22);
};
# error log
source s_webstation_apache24_error {
file("/var/packages/WebStation/var/log/apache24_error_log"
follow-freq(1)
flags(no-parse)
);
};
parser p_webstation_apache24_error {
csv-parser(
columns("id", "time", "client", "level", "message")
flags(escape-double-char, strip-whitespace)
delimiters(";")
quote-pairs('""[]')
);
};
destination d_webstation_apache24_error {
sql(type(sqlite3)
database("/var/packages/WebStation/var/log/apache24_error.db")
table("log")
columns("id text", "time int", "client text", "level text", "message text")
values("${id}", "${S_UNIXTIME}", "${client}", "${level}", "${message}")
indexes("id", "time", "client")
);
};
log{
source(s_webstation_apache24_error);
parser(p_webstation_apache24_error);
destination(d_webstation_apache24_error);
};