Пример #1
0
def main():
    """Start monitord"""
    manual_ping_targets = {}
    service = MagmaService('monitord', mconfigs_pb2.MonitorD())

    # Optionally pipe errors to Sentry
    sentry_init(service_name=service.name,
                sentry_mconfig=service.shared_mconfig.sentry_config)

    # Monitoring thread loop
    mtr_interface = load_service_config("monitord")["mtr_interface"]

    # Add manual IP targets from yml file
    try:
        targets = load_service_config("monitord")["ping_targets"]
        for target, data in targets.items():
            ip_string = data.get("ip")
            if ip_string:
                ip = IPAddress(
                    version=IPAddress.IPV4,
                    address=str.encode(ip_string),
                )
                logging.debug(
                    'Adding %s:%s:%s to ping target',
                    target,
                    ip.version,
                    ip.address,
                )
                manual_ping_targets[target] = ip
    except KeyError:
        logging.warning("No ping targets configured")

    cpe_monitor = CpeMonitoringModule()
    cpe_monitor.set_manually_configured_targets(manual_ping_targets)

    icmp_monitor = ICMPJob(
        cpe_monitor,
        service.mconfig.polling_interval,
        service.loop,
        mtr_interface,
    )
    icmp_monitor.start()

    # Register a callback function for GetOperationalStates
    service.register_operational_states_callback(
        lambda: _get_serialized_subscriber_states(cpe_monitor), )

    # Run the service loop
    service.run()

    # Cleanup the service
    service.close()
Пример #2
0
def main():
    logging.basicConfig(
        level=logging.INFO,
        format='[%(asctime)s %(levelname)s %(name)s] %(message)s',
    )

    mc = load_service_mconfig('td-agent-bit', FluentBit())

    control_proxy_config = load_service_config('control_proxy')
    host = control_proxy_config['fluentd_address']
    port = control_proxy_config['fluentd_port']
    cacert = control_proxy_config['rootca_cert']
    certfile = control_proxy_config['gateway_cert']
    keyfile = control_proxy_config['gateway_key']

    context = {
        'host': host,
        'port': port,
        'cacert': cacert,
        'certfile': certfile,
        'keyfile': keyfile,
        'extra_tags': mc.extra_tags.items(),
        'throttle_rate': mc.throttle_rate or 1000,
        'throttle_window': mc.throttle_window or 5,
        'throttle_interval': mc.throttle_interval or '1m',
        'files': mc.files_by_tag.items(),
    }
    if certfile and os.path.exists(certfile):
        context['is_tls_enabled'] = True
    else:
        context['is_tls_enabled'] = False

    generate_template_config('td-agent-bit', 'td-agent-bit',
                             CONFIG_OVERRIDE_DIR, context.copy())
Пример #3
0
def main():
    """ main() for monitord service"""
    manual_ping_targets = {}
    service = MagmaService('monitord', mconfigs_pb2.MonitorD())

    # Optionally pipe errors to Sentry
    sentry_init()

    # Monitoring thread loop
    mtr_interface = load_service_config("monitord")["mtr_interface"]

    # Add manual IP targets from yml file
    try:
        targets = load_service_config("monitord")["ping_targets"]
        for target, data in targets.items():
            if "ip" in data:
                ip = IPAddress(version=IPAddress.IPV4,
                               address=str.encode(data["ip"]))
                logging.debug(
                    'Adding {}:{}:{} to ping target'.format(target, ip.version,
                                                            ip.address))
                manual_ping_targets[target] = ip
    except KeyError:
        logging.warning("No ping targets configured")

    cpe_monitor = CpeMonitoringModule()
    cpe_monitor.set_manually_configured_targets(manual_ping_targets)

    icmp_monitor = ICMPMonitoring(cpe_monitor,
                                  service.mconfig.polling_interval,
                                  service.loop, mtr_interface)
    icmp_monitor.start()

    # Register a callback function for GetOperationalStates
    service.register_operational_states_callback(
        _get_serialized_subscriber_states(cpe_monitor))

    # Run the service loop
    service.run()

    # Cleanup the service
    service.close()
Пример #4
0
def main():
    """ main() for monitord service"""
    service = MagmaService('monitord', mconfigs_pb2.MonitorD())

    # Monitoring thread loop
    mtr_interface = load_service_config("monitord")["mtr_interface"]
    icmp_monitor = ICMPMonitoring(service.mconfig.polling_interval,
                                  service.loop, mtr_interface)
    icmp_monitor.start()

    # Register a callback function for GetOperationalStates
    service.register_operational_states_callback(
        lambda: serialize_subscriber_states(icmp_monitor.get_subscriber_state(
        )))

    # Run the service loop
    service.run()

    # Cleanup the service
    service.close()
def main():
    logging.basicConfig(
        level=logging.INFO,
        format='[%(asctime)s %(levelname)s %(name)s] %(message)s',
    )

    control_proxy_config = load_service_config('control_proxy')
    host = control_proxy_config['fluentd_address']
    port = control_proxy_config['fluentd_port']
    cacert = control_proxy_config['rootca_cert']
    certfile = control_proxy_config['gateway_cert']
    keyfile = control_proxy_config['gateway_key']

    context = {
        'extra_tags': _get_extra_tags().items(),
        'host': host,
        'port': port,
        'cacert': cacert,
        'certfile': certfile,
        'keyfile': keyfile,
    }
    generate_template_config(
        'td-agent-bit', 'td-agent-bit', CONFIG_OVERRIDE_DIR, context.copy()
    )