HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
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);
};