def __init__(self, connection): self.module_name = "monitor" self.connection = connection self.timestamp = -1 self.prefix_tree = None self.process_ids = [] self.rules = None self.prefixes = set() self.prefix_file = "/root/monitor_prefixes.json" self.monitors = None self.flag = True self.redis = redis.Redis(host=REDIS_HOST, port=REDIS_PORT) ping_redis(self.redis) self.correlation_id = None # EXCHANGES self.config_exchange = create_exchange("config", connection) # QUEUES self.config_queue = create_queue( self.module_name, exchange=self.config_exchange, routing_key="notify", priority=2, ) signal_loading(self.module_name, True) self.config_request_rpc() # setup Redis monitor listeners self.setup_redis_mon_listeners() log.info("started") signal_loading(self.module_name, False)
def __init__(self, connection): self.module_name = "mitigation" self.connection = connection self.timestamp = -1 self.rules = None self.prefix_tree = None self.correlation_id = None # EXCHANGES self.mitigation_exchange = create_exchange("mitigation", connection, declare=True) self.config_exchange = create_exchange("config", connection) # QUEUES self.config_queue = create_queue( self.module_name, exchange=self.config_exchange, routing_key="notify", priority=3, ) self.mitigate_queue = create_queue( self.module_name, exchange=self.mitigation_exchange, routing_key="mitigate", priority=2, ) signal_loading(self.module_name, True) self.config_request_rpc() signal_loading(self.module_name, False)
def handle_config_request_reply(self, message): message.ack() signal_loading(self.module_name, True) log.debug("message: {}\npayload: {}".format(message, message.payload)) if self.correlation_id == message.properties["correlation_id"]: config = message.payload if config["timestamp"] > self.timestamp: self.timestamp = config["timestamp"] self.autoignore_rules = config.get("autoignore", []) self.build_prefix_tree() self.set_rule_timers() signal_loading(self.module_name, False)
def __init__(self, d, fn, connection): super().__init__() self.connection = connection self.correlation_id = None signal_loading("observer", True) self.response = None self.path = "{}/{}".format(d, fn) try: with open(self.path, "r") as f: self.content = f.readlines() except Exception: log.exception("exception") finally: signal_loading("observer", False)
def __init__(self, connection): self.module_name = "autoignore" self.connection = connection self.prefix_tree = None self.autoignore_rules = None # https: // docs.celeryproject.org / projects / kombu / en / stable / reference / kombu.asynchronous.timer.html # https://docs.celeryproject.org/projects/kombu/en/stable/_modules/kombu/asynchronous/timer.html#Timer self.rule_timer_threads = {} self.timestamp = -1 # DB variables self.ro_db = DB( application_name="autoignore-readonly", user=DB_USER, password=DB_PASS, host=DB_HOST, port=DB_PORT, database=DB_NAME, reconnect=True, autocommit=True, readonly=True, ) self.wo_db = DB( application_name="autoignore-write", user=DB_USER, password=DB_PASS, host=DB_HOST, port=DB_PORT, database=DB_NAME, ) # EXCHANGES self.config_exchange = create_exchange("config", connection) # QUEUES self.config_queue = create_queue( self.module_name, exchange=self.config_exchange, routing_key="notify", priority=3, ) # redis db self.redis = redis.Redis(host=REDIS_HOST, port=REDIS_PORT) ping_redis(self.redis) signal_loading(self.module_name, True) self.config_request_rpc() signal_loading(self.module_name, False)
def handle_config_notify(self, message): message.ack() log.debug("message: {}\npayload: {}".format(message, message.payload)) signal_loading(self.module_name, True) try: raw = message.payload if raw["timestamp"] > self.timestamp: self.timestamp = raw["timestamp"] self.rules = raw.get("rules", []) self.monitors = raw.get("monitors", {}) self.start_monitors() except Exception: log.exception("Exception") finally: signal_loading(self.module_name, False)
def handle_config_notify(self, message): message.ack() log.debug("message: {}\npayload: {}".format(message, message.payload)) signal_loading(self.module_name, True) try: config = message.payload if config["timestamp"] > self.timestamp: self.timestamp = config["timestamp"] self.autoignore_rules = config.get("autoignore", {}) self.build_prefix_tree() self.set_rule_timers() except Exception: log.exception("Exception") finally: signal_loading(self.module_name, False)
def __init__(self, connection): self.module_name = "clock" self.clock = 0.0 self.connection = connection # Time in secs to gather entries to perform a bulk operation self.time_to_wait_bulk = BULK_TIMER self.correlation_id = None self.db_clock_exchange = create_exchange("db-clock", connection, declare=True) signal_loading(self.module_name, True) log.info("started") signal_loading(self.module_name, False) self._db_clock_send()