@version: 4.5
@include "scl.conf"
options {
  chain_hostnames(off);
  flush_lines(0);
  use_dns(no);
  use_fqdn(no);
  owner("root"); group("adm"); perm(0640);
  stats(freq(0));
  keep_timestamp(no);
  bad_hostname("^gconfd$");
};
source s_dgram {
  unix-dgram("/dev/log");
  internal();
};
destination d_stdout { pipe("/dev/stdout"); };
destination d_redis_ui_log {
  redis(
    host("redis-mailcow")
    persist-name("redis1")
    port(6379)
    auth("`REDISPASS`")
    command("LPUSH" "DOVECOT_MAILLOG" "$(format-json time=\"$S_UNIXTIME\" priority=\"$PRIORITY\" program=\"$PROGRAM\" message=\"$MESSAGE\")\n")
  );
};
destination d_redis_f2b_channel {
  redis(
    host("redis-mailcow")
    persist-name("redis2")
    port(6379)
    auth("`REDISPASS`")
    command("PUBLISH" "F2B_CHANNEL" "$(sanitize $MESSAGE)")
  );
};
filter f_mail { facility(mail); };
filter f_replica {
  not match("User has no mail_replica in userdb" value("MESSAGE"));
  not match("Error: sync: Unknown user in remote" value("MESSAGE"));
};
filter f_dovecot_auth_try {
  not match("- trying the next passdb" value("MESSAGE")) and
  not match("- trying the next userdb" value("MESSAGE"));
};
log {
  source(s_dgram);
  filter(f_dovecot_auth_try);
  filter(f_replica);
  destination(d_stdout);
  filter(f_mail);
  destination(d_redis_ui_log);
  destination(d_redis_f2b_channel);
};
