def start(self): """ Start monitor. Connect to database is local """ (success, system_id) = get_system_id_from_local() if not success: api_log.error("Can't get local system_id") return False self.remove_monitor_data() # OSSIM must not tell to migrate the DB rc, pro = system_is_professional(system_id) if not pro: return True (success, result) = check_any_innodb_tables() mresult = False if success: if len(result) > 0: # I need the component ID # (success, result) = insert_current_status_message("00000000-0000-0000-0000-000000010017", # system_id, "system", str(result)) self.save_data( system_id, ComponentTypes.SYSTEM, self.get_json_message({ "has_innodb": True, "innodb_tables": result })) if not success: api_log.error("Can't insert notification into system: %s" % str(result)) mresult = False else: mresult = True else: mresult = True # No messages to insert else: api_log.error("Can't check current database engine") mresult = False return mresult
def start(self): """ Start monitor. Connect to database is local """ (success, system_id) = get_system_id_from_local() if not success: api_log.error("Can't get local system_id") return False self.remove_monitor_data() # OSSIM must not tell to migrate the DB rc, pro = system_is_professional(system_id) if not pro: return True (success, result) = check_any_innodb_tables() mresult = False if success: if len(result) > 0: # I need the component ID # (success, result) = insert_current_status_message("00000000-0000-0000-0000-000000010017", # system_id, "system", str(result)) self.save_data(system_id, ComponentTypes.SYSTEM, self.get_json_message({"has_innodb": True, "innodb_tables": result})) if not success: api_log.error("Can't insert notification into system: %s" % str(result)) mresult = False else: mresult = True else: mresult = True # No messages to insert else: api_log.error("Can't check current database engine") mresult = False return mresult
def start(self): """ Starts the monitor activity """ try: # Remove the previous monitor data. self.remove_monitor_data() monitor_data = {} success, system_id = get_system_id_from_local() if not success: return False # Now now = int(time.time()) # Firstly, wizard data! wizard_dict = {} success, start_welcome_wizard, welcome_wizard_date = get_wizard_data( ) if not success: api_log.error("There was an error retrieving the wizard data") wizard_shown = True if start_welcome_wizard == 2: # if difference between now and welcome_wizard_date is less # than a week, display message if (now - welcome_wizard_date) < 420: wizard_shown = False wizard_dict['wizard_shown'] = wizard_shown monitor_data[ self.__WEB_MESSAGES['MESSAGE_WIZARD_SHOWN']] = wizard_dict # Time to look for orphan sensors orphan_sensors_dict = {} success, message = check_any_orphan_sensor() orphan_sensors = False if not success: api_log.error(message) orphan_sensors = True orphan_sensors_dict['orphan_sensors'] = orphan_sensors monitor_data[self.__WEB_MESSAGES[ 'MESSAGE_SENSOR_NOT_INSERTED']] = orphan_sensors_dict # Has the trial version expired? success, expires, message = get_trial_expiration_date() trial_expired = False trial_expires_7days = False trial_expires_2days = False if not success: rc, pro = system_is_professional() if rc: if pro: # OK, we have an error here api_log.error(message) else: pass else: # expire=9999-12-31 expiration_date = expires.split('=')[1] if expiration_date: mktime_expression = datetime.datetime.strptime( expiration_date, "%Y-%m-%d").timetuple() expires = int(time.mktime(mktime_expression)) one_week_left = now - 604800 two_days_left = now - 172800 if expires < one_week_left: trial_expires_7days = True elif expires < two_days_left: trial_expires_2days = True elif expires < now: trial_expired = True else: pass else: if os.path.isfile("/etc/ossim/ossim.lic"): api_log.warning( "Valid license but no web admin user found!") else: api_log.debug( "Expiration date can't be determined: License file not found" ) monitor_data[self.__WEB_MESSAGES["MESSAGE_TRIAL_EXPIRED"]] = { 'trial_checked': success, 'trial_expired': trial_expired } monitor_data[ self.__WEB_MESSAGES["MESSAGE_TRIAL_EXPIRES_7DAYS"]] = { 'trial_checked': success, 'trial_expired': trial_expires_7days } monitor_data[ self.__WEB_MESSAGES["MESSAGE_TRIAL_EXPIRES_2DAYS"]] = { 'trial_checked': success, 'trial_expired': trial_expires_2days } # Check max number of assets assets = len(get_asset_list()) contracted_devices = get_license_devices() over_assets = False exceeding_assets = 0 #if assets > contracted_devices: # exceeding_assets = assets - contracted_devices # over_assets = True monitor_data[self.__WEB_MESSAGES["MESSAGE_LICENSE_VIOLATION"]] = { 'over_assets': over_assets, 'exceeding_assets': exceeding_assets } # OTX contribution otx_enabled = apimethod_is_otx_enabled() monitor_data[self.__WEB_MESSAGES["MESSAGE_OTX_CONNECTION"]] = { 'otx_enabled': otx_enabled } # Backup in progress? success, running, message = check_backup_process_running() if not success: api_log.error(message) monitor_data[self.__WEB_MESSAGES["MESSAGE_BACKUP_RUNNING"]] = { 'backup_check': success, 'backup_running': running } # Save monitor data self.save_data(system_id, ComponentTypes.SYSTEM, self.get_json_message(monitor_data)) except Exception as err: api_log.error( "Error processing WebUIData monitor information: %s" % str(err)) return False return True
def start(self): """ Starts the monitor activity """ try: # Remove the previous monitor data. self.remove_monitor_data() monitor_data = {} success, system_id = get_system_id_from_local() if not success: return False # Now now = int(time.time()) # Firstly, wizard data! wizard_dict = {} success, start_welcome_wizard, welcome_wizard_date = get_wizard_data() if not success: api_log.error("There was an error retrieving the wizard data") wizard_shown = True if start_welcome_wizard == 2: # if difference between now and welcome_wizard_date is less # than a week, display message if (now - welcome_wizard_date) < 420: wizard_shown = False wizard_dict['wizard_shown'] = wizard_shown monitor_data[self.__WEB_MESSAGES['MESSAGE_WIZARD_SHOWN']] = wizard_dict # Time to look for orphan sensors orphan_sensors_dict = {} success, message = check_any_orphan_sensor() orphan_sensors = False if not success: api_log.error(message) orphan_sensors = True orphan_sensors_dict['orphan_sensors'] = orphan_sensors monitor_data[self.__WEB_MESSAGES['MESSAGE_SENSOR_NOT_INSERTED']] = orphan_sensors_dict # Has the trial version expired? success, expires, message = get_trial_expiration_date() trial_expired = False trial_expires_7days = False trial_expires_2days = False if not success: rc, pro = system_is_professional() if rc: if pro: # OK, we have an error here api_log.error(message) else: pass else: # expire=9999-12-31 expiration_date = expires.split('=')[1] if expiration_date: mktime_expression = datetime.datetime.strptime(expiration_date, "%Y-%m-%d").timetuple() expires = int(time.mktime(mktime_expression)) one_week_left = now - 604800 two_days_left = now - 172800 if expires < one_week_left: trial_expires_7days = True elif expires < two_days_left: trial_expires_2days = True elif expires < now: trial_expired = True else: pass else: if os.path.isfile("/etc/ossim/ossim.lic"): api_log.warning("Valid license but no web admin user found!") else: api_log.debug("Expiration date can't be determined: License file not found") monitor_data[self.__WEB_MESSAGES["MESSAGE_TRIAL_EXPIRED"]] = {'trial_checked': success, 'trial_expired': trial_expired} monitor_data[self.__WEB_MESSAGES["MESSAGE_TRIAL_EXPIRES_7DAYS"]] = {'trial_checked': success, 'trial_expired': trial_expires_7days} monitor_data[self.__WEB_MESSAGES["MESSAGE_TRIAL_EXPIRES_2DAYS"]] = {'trial_checked': success, 'trial_expired': trial_expires_2days} # Check max number of assets assets = len(get_asset_list()) contracted_devices = get_license_devices() over_assets = False exceeding_assets = 0 #if assets > contracted_devices: # exceeding_assets = assets - contracted_devices # over_assets = True monitor_data[self.__WEB_MESSAGES["MESSAGE_LICENSE_VIOLATION"]] = {'over_assets': over_assets, 'exceeding_assets': exceeding_assets} # OTX contribution otx_enabled = apimethod_is_otx_enabled() monitor_data[self.__WEB_MESSAGES["MESSAGE_OTX_CONNECTION"]] = {'otx_enabled': otx_enabled} # Backup in progress? success, running, message = check_backup_process_running() if not success: api_log.error(message) monitor_data[self.__WEB_MESSAGES["MESSAGE_BACKUP_RUNNING"]] = {'backup_check': success, 'backup_running': running} # Save monitor data self.save_data(system_id, ComponentTypes.SYSTEM, self.get_json_message(monitor_data)) except Exception as err: api_log.error("Error processing WebUIData monitor information: %s" % str(err)) return False return True