class gis(ConfigSection): ellipsoid = StringParameter(default="PZ-90") enable_osm = BooleanParameter(default=True) enable_google_sat = BooleanParameter(default=False) enable_google_roadmap = BooleanParameter(default=False) tile_size = IntParameter(default=256, help="Tile size 256x256") tilecache_padding = IntParameter(default=0)
class bi(ConfigSection): language = StringParameter(default="en", help="Language BI interface") query_threads = IntParameter(default=10) extract_delay_alarms = SecondsParameter(default="1h") clean_delay_alarms = SecondsParameter(default="1d") reboot_interval = SecondsParameter(default="1M") extract_delay_reboots = SecondsParameter(default="1h") clean_delay_reboots = SecondsParameter(default="1d") chunk_size = IntParameter(default=500) extract_window = SecondsParameter(default="1d") enable_alarms = BooleanParameter(default=False) enable_reboots = BooleanParameter(default=False) enable_managedobjects = BooleanParameter(default=False) enable_alarms_archive = BooleanParameter(default=False) alarms_archive_policy = MapParameter( default="weekly", mappings={ "weekly": '{{doc["clear_timestamp"].strftime("y%Yw%W")}}', "monthly": '{{doc["clear_timestamp"].strftime("y%Ym%m")}}', "quarterly": '{{doc["clear_timestamp"].strftime("y%Y")}}' '_quarter{{(doc["clear_timestamp"].month-1)//3 + 1}}', "yearly": '{{doc["clear_timestamp"].strftime("y%Y")}}', }, ) alarms_archive_batch_limit = IntParameter(default=10000)
class peer(ConfigSection): enable_ripe = BooleanParameter(default=True) enable_arin = BooleanParameter(default=True) enable_radb = BooleanParameter(default=True) prefix_list_optimization = BooleanParameter(default=True) prefix_list_optimization_threshold = IntParameter(default=1000) max_prefix_length = IntParameter(default=24) rpsl_inverse_pref_style = BooleanParameter(default=False)
class selfmon(ConfigSection): enable_managedobject = BooleanParameter(default=True) managedobject_ttl = IntParameter(default=30) enable_task = BooleanParameter(default=False) task_ttl = IntParameter(default=30) enable_inventory = BooleanParameter(default=False) inventory_ttl = IntParameter(default=30) enable_fm = BooleanParameter(default=False) fm_ttl = IntParameter(default=30)
class web(ConfigSection): theme = StringParameter(default="gray") api_row_limit = IntParameter(default=0) api_arch_alarm_limit = IntParameter(default=4 * 86400) max_upload_size = IntParameter(default=16777216) language = StringParameter(default="en") install_collection = BooleanParameter(default=False) max_threads = IntParameter(default=10) macdb_window = IntParameter(default=4 * 86400) enable_remote_system_last_extract_info = BooleanParameter(default=False)
class features(ConfigSection): use_uvlib = BooleanParameter(default=False) cp = BooleanParameter(default=True) sentry = BooleanParameter(default=False) traefik = BooleanParameter(default=False) cpclient = BooleanParameter(default=False) telemetry = BooleanParameter(default=False, help="Enable internal telemetry export to Clickhouse") consul_healthchecks = BooleanParameter(default=True, help="While registering serive in consul also register health check") service_registration = BooleanParameter(default=True, help="Permit consul self registration") pypy = BooleanParameter(default=False) forensic = BooleanParameter(default=False)
class clickhouse(ConfigSection): rw_addresses = ServiceParameter(service="clickhouse", wait=True) db = StringParameter(default="noc") rw_user = StringParameter(default="default") rw_password = SecretParameter() ro_addresses = ServiceParameter(service="clickhouse", wait=True) ro_user = StringParameter(default="readonly") ro_password = SecretParameter() request_timeout = SecondsParameter(default="1h") connect_timeout = SecondsParameter(default="10s") default_merge_tree_granularity = IntParameter(default=8192) encoding = StringParameter(default="", choices=["", "deflate", "gzip"]) # Enable LowCardinality fileds enable_low_cardinality = BooleanParameter(default=False) # Cluster name for sharded/replicated configuration # Matches appropriative <remote_servers> part cluster = StringParameter() # Cluster topology # Expression in form # <topology> ::= <shard> | <shard>,<topology> # <shard> ::= [<weight>]<replicas> # <weight> := <DIGITS> # <replicas> := <DIGITS> # Examples: # 1 - non-replicated, non-sharded configuration # 1,1 - 2 shards, non-replicated # 2,2 - 2 shards, 2 replicas in each # 3:2,2 - first shard has 2 replicas an weight 3, # second shard has 2 replicas and weight 1 cluster_topology = StringParameter(default="1")
class mailsender(ConfigSection): smtp_server = StringParameter() smtp_port = IntParameter(default=25) use_tls = BooleanParameter(default=False) helo_hostname = StringParameter(default="noc") from_address = StringParameter(default="*****@*****.**") smtp_user = StringParameter() smtp_password = SecretParameter()
class fm(ConfigSection): active_window = SecondsParameter(default="1d") keep_events_wo_alarm = IntParameter(default=0) keep_events_with_alarm = IntParameter(default=-1) alarm_close_retries = IntParameter(default=5) outage_refresh = SecondsParameter(default="60s") total_outage_refresh = SecondsParameter(default="60s") enable_rca_neighbor_cache = BooleanParameter(default=False)
class web(ConfigSection): theme = StringParameter(default="gray") api_row_limit = IntParameter(default=0) api_unlimited_row_limit = IntParameter(default=1000) api_arch_alarm_limit = IntParameter(default=4 * 86400) api_alarm_comments_limit = IntParameter( default=10, help="Max Alarm comment count on UI Popup") max_upload_size = IntParameter(default=16777216) language = StringParameter(default="en") install_collection = BooleanParameter(default=False) max_threads = IntParameter(default=10) macdb_window = IntParameter(default=4 * 86400) enable_remote_system_last_extract_info = BooleanParameter( default=False) heatmap_lon = StringParameter(default="108.567849") heatmap_lat = StringParameter(default="66.050063") heatmap_zoom = StringParameter(default="4")
class web(ConfigSection): theme = StringParameter(default="gray") api_row_limit = IntParameter(default=0) api_arch_alarm_limit = IntParameter(default=4 * 86400) language = StringParameter(default="en") install_collection = BooleanParameter(default=False) max_threads = IntParameter(default=10) macdb_window = IntParameter(default=4 * 86400)
class activator(ConfigSection): tos = IntParameter(min=0, max=255, default=0) script_threads = IntParameter(default=10) buffer_size = IntParameter(default=1048576) connect_retries = IntParameter(default=3, help="retries on immediate disconnect") connect_timeout = IntParameter(default=3, help="timeout after immediate disconnect") http_connect_timeout = IntParameter(default=20) http_request_timeout = IntParameter(default=30) http_validate_cert = BooleanParameter(default=False)
class metrics(ConfigSection): default_hist = ListParameter( item=FloatParameter(), default=[0.001, 0.005, 0.01, 0.05, 0.5, 1.0, 5.0, 10.0] ) enable_mongo_hist = BooleanParameter(default=False) mongo_hist = ListParameter( item=FloatParameter(), default=[0.001, 0.005, 0.01, 0.05, 0.5, 1.0, 5.0, 10.0] ) enable_postgres_hist = BooleanParameter(default=False) postgres_hist = ListParameter( item=FloatParameter(), default=[0.001, 0.005, 0.01, 0.05, 0.5, 1.0, 5.0, 10.0] ) default_quantiles = ListParameter(item=FloatParameter(), default=[0.5, 0.9, 0.95]) default_quantiles_epsilon = 0.01 default_quantiles_window = 60 default_quantiles_buffer = 100 enable_mongo_quantiles = BooleanParameter(default=False) enable_postgres_quantiles = BooleanParameter(default=False)
class correlator(ConfigSection): max_threads = IntParameter(default=20) topology_rca_window = IntParameter(default=0) discovery_delay = SecondsParameter(default="10M") auto_escalation = BooleanParameter(default=True) rca_lock_initial_timeout = FloatParameter(default=0.1) rca_lock_max_timeout = FloatParameter(default=3.0) rca_lock_rate = FloatParameter(default=1.61) rca_lock_dev = FloatParameter(default=0.1) rca_lock_expiry = SecondsParameter(default="10s")
class mongo(ConfigSection): addresses = ServiceParameter(service="mongo", wait=True) db = StringParameter(default="noc") user = StringParameter() password = SecretParameter() rs = StringParameter() retries = IntParameter(default=20) timeout = SecondsParameter(default="3s") retry_writes = BooleanParameter(default=False) app_name = StringParameter() max_idle_time = SecondsParameter(default="60s")
class http_client(ConfigSection): connect_timeout = SecondsParameter(default="10s") request_timeout = SecondsParameter(default="1h") user_agent = StringParameter(default="noc") buffer_size = IntParameter(default=128 * 1024) max_redirects = IntParameter(default=5) ns_cache_size = IntParameter(default=1000) resolver_ttl = SecondsParameter(default="3s") http_port = IntParameter(default=80) https_port = IntParameter(default=443) validate_certs = BooleanParameter(default=False, help="Have to be set as True")
class login(ConfigSection): methods = StringParameter(default="local") session_ttl = SecondsParameter(default="7d") language = StringParameter(default="en") restrict_to_group = StringParameter(default="") single_session_group = StringParameter(default="") mutual_exclusive_group = StringParameter(default="") idle_timeout = SecondsParameter(default="1w") pam_service = StringParameter(default="noc") radius_secret = SecretParameter(default="noc") radius_server = StringParameter() user_cookie_ttl = IntParameter(default=1) register_last_login = BooleanParameter(default=True)
class login(ConfigSection): methods = StringParameter(default="local") session_ttl = SecondsParameter(default="7d") language = StringParameter(default="en") restrict_to_group = StringParameter(default="") single_session_group = StringParameter(default="") mutual_exclusive_group = StringParameter(default="") idle_timeout = SecondsParameter(default="1w") pam_service = StringParameter(default="noc") radius_secret = SecretParameter(default="noc") radius_server = StringParameter() register_last_login = BooleanParameter(default=True) jwt_cookie_name = StringParameter(default="noc_jwt") jwt_algorithm = StringParameter(default="HS256", choices=["HS256", "HS384", "HS512"])
class trapcollector(ConfigSection): listen = StringParameter(default="0.0.0.0:162") enable_reuseport = BooleanParameter(default=True) enable_freebind = BooleanParameter(default=False) # DataStream request limit ds_limit = IntParameter(default=1000)
class tgsender(ConfigSection): token = SecretParameter() retry_timeout = IntParameter(default=2) use_proxy = BooleanParameter(default=False)
class traceback(ConfigSection): reverse = BooleanParameter(default=True)
class sentry(ConfigSection): url = StringParameter(default="") shutdown_timeout = IntParameter(min=1, max=10, default=2) default_integrations = BooleanParameter(default=False) debug = BooleanParameter(default=False) max_breadcrumbs = IntParameter(min=1, max=100, default=10)
class mrt(ConfigSection): max_concurrency = IntParameter(default=50) enable_command_logging = BooleanParameter(default=False)
class collections(ConfigSection): allow_sharing = BooleanParameter(default=True)
class Config(BaseConfig): str_list = ListParameter(item=StringParameter()) default_str_list = ListParameter(item=StringParameter(), default=[1, "2"]) bool_list = ListParameter(item=BooleanParameter())
class logging(ConfigSection): log_api_calls = BooleanParameter(default=False) log_sql_statements = BooleanParameter(default=False)
class datastream(ConfigSection): enable_administrativedomain = BooleanParameter(default=False) enable_administrativedomain_wait = BooleanParameter( default=True, help= "Activate Wait Mode for Adm. Domain datastream (Mongo greater 3.6 needed)", ) administrativedomain_ttl = SecondsParameter( default="0", help="Removing datastream administrativedomain records older days", ) enable_alarm = BooleanParameter(default=False) enable_alarm_wait = BooleanParameter( default=True, help= "Activate Wait Mode for Alarm datastream (Mongo greater 3.6 needed)" ) alarm_ttl = SecondsParameter( default="14d", help="Removing datastream alarm records older days", ) enable_cfgping = BooleanParameter(default=True) enable_cfgping_wait = BooleanParameter( default=True, help= "Activate Wait Mode for CfgPing datastream (Mongo greater 3.6 needed)", ) cfgping_ttl = SecondsParameter( default="0", help="Removing datastream cfgping records older days", ) enable_cfgsyslog = BooleanParameter(default=True) enable_cfgsyslog_wait = BooleanParameter( default=True, help= "Activate Wait Mode for CfgSyslog datastream (Mongo greater 3.6 needed)", ) cfgsyslog_ttl = SecondsParameter( default="0", help="Removing datastream cfgsyslog records older days", ) enable_cfgtrap = BooleanParameter(default=True) enable_cfgtrap_wait = BooleanParameter( default=True, help= "Activate Wait Mode for CfgTrap datastream (Mongo greater 3.6 needed)", ) cfgtrap_ttl = SecondsParameter( default="0", help="Removing datastream cfgtrap records older days", ) enable_dnszone = BooleanParameter(default=False) enable_dnszone_wait = BooleanParameter( default=True, help= "Activate Wait Mode for DNS Zone datastream (Mongo greater 3.6 needed)", ) dnszone_ttl = SecondsParameter( default="0", help="Removing datastream dnszone records older days", ) enable_managedobject = BooleanParameter(default=False) enable_managedobject_wait = BooleanParameter( default=True, help= "Activate Wait Mode for ManagedObject datastream (Mongo greater 3.6 needed)", ) managedobject_ttl = SecondsParameter( default="0", help="Removing datastream managedobject records older days", ) enable_resourcegroup = BooleanParameter(default=False) enable_resourcegroup_wait = BooleanParameter( default=True, help= "Activate Wait Mode for ResourceGroup datastream (Mongo greater 3.6 needed)", ) resourcegroup_ttl = SecondsParameter( default="0", help="Removing datastream resourcegroup records older days", ) enable_vrf = BooleanParameter(default=False) enable_vrf_wait = BooleanParameter( default=True, help= "Activate Wait Mode for VRF datastream (Mongo greater 3.6 needed)") vrf_ttl = SecondsParameter( default="0", help="Removing datastream vrf records older days", ) enable_prefix = BooleanParameter(default=False) enable_prefix_wait = BooleanParameter( default=True, help= "Activate Wait Mode for Prefix datastream (Mongo greater 3.6 needed)" ) prefix_ttl = SecondsParameter( default="0", help="Removing datastream prefix records older days", ) enable_address = BooleanParameter(default=False) enable_address_wait = BooleanParameter( default=True, help= "Activate Wait Mode for Address datastream (Mongo greater 3.6 needed)", ) address_ttl = SecondsParameter( default="0", help="Removing datastream address records older days", )
class message(ConfigSection): enable_alarm = BooleanParameter(default=False) enable_managedobject = BooleanParameter(default=False) enable_reboot = BooleanParameter(default=False)
class liftbridge(ConfigSection): addresses = ServiceParameter(service="liftbridge", wait=True, near=True, full_result=False) max_message_size = IntParameter( default=921600, help="Max message size for GRPC client") publish_async_ack_timeout = IntParameter(default=10) compression_threshold = IntParameter(default=524288) compression_method = StringParameter(choices=["", "zlib", "lzma"], default="zlib") enable_http_proxy = BooleanParameter(default=False) # mx, kafkasender, events, dispose stream_events_retention_max_age = SecondsParameter( default="24h", help= "FM events stream retention interval. If 0 use Liftbrdige setting value", ) stream_events_retention_max_bytes = BytesParameter( default=0, help= "FM events stream retention size (in bytes). If 0 use Liftbrdige setting value", ) stream_events_segment_max_age = SecondsParameter( default="1h", help= "FM events stream segment interval. Must be less retention age. If 0 use Liftbrdige setting value", ) stream_events_segment_max_bytes = BytesParameter( default=0, help= "FM events stream segment size. Must be less retention size. If 0 use Liftbrdige setting value", ) stream_events_auto_pause_time = SecondsParameter( default=0, help= "FM events stream pause time. If 0 use Liftbrdige setting value") stream_events_auto_pause_disable_if_subscribers = BooleanParameter( default=False) stream_dispose_retention_max_age = SecondsParameter( default="24h", help= "FM alarms stream retention interval. If 0 use Liftbrdige setting value", ) stream_dispose_retention_max_bytes = BytesParameter( default=0, help= "FM alarms stream retention size (in bytes). If 0 use Liftbrdige setting value", ) stream_dispose_segment_max_age = SecondsParameter( default="1h", help= "FM alarms stream segment interval. Must be less retention age. If 0 use Liftbrdige setting value", ) stream_dispose_segment_max_bytes = BytesParameter( default=0, help= "FM alarms stream segment size. Must be less retention size. If 0 use Liftbrdige setting value", ) stream_dispose_auto_pause_time = SecondsParameter( default=0, help= "FM alarms stream pause time. If 0 use Liftbrdige setting value") stream_dispose_auto_pause_disable_if_subscribers = BooleanParameter( default=False) stream_message_retention_max_age = SecondsParameter(default="1h") stream_message_retention_max_bytes = BytesParameter(default=0) stream_message_segment_max_age = SecondsParameter(default="30M") stream_message_segment_max_bytes = BytesParameter(default=0) stream_message_auto_pause_time = SecondsParameter(default=0) stream_message_auto_pause_disable_if_subscribers = BooleanParameter( default=False) stream_kafkasender_retention_max_age = SecondsParameter(default="1h") stream_kafkasender_retention_max_bytes = BytesParameter(default=0) stream_kafkasender_segment_max_age = SecondsParameter(default="30M") stream_kafkasender_segment_max_bytes = BytesParameter(default=0) stream_kafkasender_auto_pause_time = SecondsParameter(default=0) stream_kafkasender_auto_pause_disable_if_subscribers = BooleanParameter( default=False) stream_ch_retention_max_age = SecondsParameter(default="1h") stream_ch_retention_max_bytes = BytesParameter(default="100M") stream_ch_segment_max_age = SecondsParameter(default="30M") stream_ch_segment_max_bytes = BytesParameter(default="50M") stream_ch_auto_pause_time = SecondsParameter(default=0) stream_ch_auto_pause_disable_if_subscribers = BooleanParameter( default=False) stream_ch_replication_factor = IntParameter( default=1, help="Replicaton factor for clickhouse streams") metrics_send_delay = FloatParameter(default=0.25)
class Config(BaseConfig): boolean = BooleanParameter() default_boolean = BooleanParameter(default=True)