def __init__(self): threading_tools.icswProcessPool.__init__(self, "main") self.CC.init(icswServiceEnum.logcheck_server, global_config) self.CC.check_config() self.CC.read_config_from_db([ ("SYSLOG_DIR", configfile.StringConfigVar("/var/log/hosts")), ("KEEP_LOGS_UNCOMPRESSED", configfile.IntegerConfigVar(2)), ("KEEP_LOGS_TOTAL", configfile.IntegerConfigVar(30)), ("KEEP_LOGS_TOTDDAL", configfile.IntegerConfigVar(30)), # maximum time in days to track logs ("LOGS_TRACKING_DAYS", configfile.IntegerConfigVar( 4, help_string="time to track logs in days")), # cachesize for lineinfo (per file) ("LINECACHE_ENTRIES_PER_FILE", configfile.IntegerConfigVar(50, help_string="line cache per file")), ]) # close connection (daemonizing) db_tools.close_connection() self.srv_helper = service_tools.ServiceHelper(self.log) self.CC.re_insert_config() self.register_exception("hup_error", self._hup_error) self.register_exception("int_error", self._int_error) self.register_exception("term_error", self._int_error) # log config self.CC.log_config() # prepare directories self._prepare_directories() # enable syslog_config self._enable_syslog_config() # network bind self._init_network_sockets() Machine.setup(self) self.my_scanner = LogcheckScanner(self) self.register_poller(Machine.get_watcher()._fd, zmq.POLLIN, Machine.inotify_event) self.register_timer(self.sync_machines, 3600, instant=True) self.register_timer(self.rotate_logs, 3600 * 12, instant=True)
def get_syslog(self, srv_com, **kwargs): Machine.get_syslog(srv_com) return srv_com
def loop_end(self): self._disable_syslog_config() Machine.shutdown()
def rotate_logs(self): db_tools.close_connection() Machine.g_rotate_logs()
def sync_machines(self): db_tools.close_connection() Machine.db_sync()