예제 #1
0
    def run(self):
        while not self.stopper.is_set() and self.running:
            logger.debug("[Master ] [{}] Checking workers statuses.".format(self.thread_tag))

            for worker, worker_info in self.master.get_connected_workers().items():
                if time.time() - worker_info['status']['last_keep_alive'] > get_cluster_items_master_intervals()['max_allowed_time_without_keepalive']:
                    logger.critical("[Master ] [{}] [{}]: Last keep alive is higher than allowed maximum. Disconnecting.".format(self.thread_tag, worker))
                    self.master.remove_worker(worker)

            self.sleep(self.interval)
예제 #2
0
    def __init__(self, cluster_config):
        Server.__init__(self, cluster_config['bind_addr'], cluster_config['port'], MasterManagerHandler)

        logger.info("[Master] Listening '{0}:{1}'.".format(cluster_config['bind_addr'], cluster_config['port']))

        # Intervals
        self.interval_recalculate_integrity = get_cluster_items_master_intervals()['recalculate_integrity']

        self.config = cluster_config
        self.handler = MasterManagerHandler
        self._integrity_control = {}
        self._integrity_control_lock = threading.Lock()

        # Threads
        self.stopper = threading.Event()  # Event to stop threads
        self.threads = {}
        self._initiate_master_threads()
예제 #3
0
파일: master.py 프로젝트: sqills/wazuh
 def __init__(self, master, stopper):
     ClusterThread.__init__(self, stopper)
     self.master = master
     self.interval = get_cluster_items_master_intervals(
     )['check_worker_lastkeepalive']
     self.thread_tag = "WorkerChecks"