def create_or_update_logprofile(self):
        '''
        Creates or Update log profile.

        :return: deserialized log profile state dictionary
        '''
        self.log("Creating log profile instance {0}".format(self.name))

        try:
            params = LogProfileResource(
                location=self.location,
                locations=self.locations,
                categories=self.categories,
                retention_policy=RetentionPolicy(
                    days=self.retention_policy['days'],
                    enabled=self.retention_policy['enabled'])
                if self.retention_policy else None,
                storage_account_id=self.storage_account
                if self.storage_account else None,
                service_bus_rule_id=self.service_bus_rule_id
                if self.service_bus_rule_id else None,
                tags=self.tags)

            response = self.monitor_client.log_profiles.create_or_update(
                log_profile_name=self.name, parameters=params)
            if isinstance(response, AzureOperationPoller):
                response = self.get_poller_result(response)

        except CloudError as exc:
            self.log('Error attempting to create/update log profile.')
            self.fail("Error creating/updating log profile: {0}".format(
                str(exc)))
        return logprofile_to_dict(response)
示例#2
0
    def createLogProfile(self, name, storageAccountId, subscriptionId):
        monitorMgmtClient = self.getMonitorManagementClient(subscriptionId)

        locations = [l.name for l in self.getSubscriptionClient().subscriptions.list_locations(subscriptionId)]
        locations.append("global")

        parameters = LogProfileResource()
        parameters.storage_account_id = storageAccountId
        parameters.locations = locations
        parameters.categories = ["Write", "Delete", "Action"]
        parameters.location = "westus2"
        parameters.retention_policy = RetentionPolicy(enabled=True, days=7)

        monitorMgmtClient.log_profiles.create_or_update(name, parameters)
def configure_azure_monitor(resource_group_name, location, event_hub_namespace, location_list):
    print("Configuring Azure Monitor to publish activity events")
    monitorClient = get_client_from_cli_profile(MonitorManagementClient)
    eventHubClient = get_client_from_cli_profile(EventHubManagementClient)

    root_manage_key = eventHubClient.namespaces.get_authorization_rule(
        resource_group_name, event_hub_namespace, "RootManageSharedAccessKey")
    event_hub_rule_id = root_manage_key.id
    print("Using event hub policy key " + event_hub_rule_id)

    # If there are any extant log profiles not named "azure-events" delete them
    log_profiles = monitorClient.log_profiles.list()
    for lp in log_profiles:
        print("Found existing log profile with name " + lp.name + " and id " + lp.id)
        if lp.name != "default":
            print("Deleting log profile " + lp.name)
            monitorClient.log_profiles.delete(lp.name)

    # Create an Azure Log Profile
    from azure.mgmt.monitor.models import LogProfileResource
    from azure.mgmt.monitor.models import RetentionPolicy
    log_profile = monitorClient.log_profiles.create_or_update(
        "default",
        LogProfileResource(
            location = location,
            service_bus_rule_id = event_hub_rule_id,
            locations = location_list,
            categories = ["Write", "Delete", "Action"],
            retention_policy = RetentionPolicy(
                enabled = True,
                days = 1
            )
        )
    )
    print(log_profile)
    
    print("Creating listen policy for implicitly created event hug")
    event_hub_name_implicit = "insights-operational-logs"
    auth_rule = eventHubClient.event_hubs.create_or_update_authorization_rule(resource_group_name, event_hub_namespace, event_hub_name_implicit, "listen", "Listen")
    key = eventHubClient.event_hubs.list_keys(resource_group_name, event_hub_namespace, event_hub_name_implicit, "listen")
    print("Use authorization rule with Listen rights named " + key.key_name + " and connection string " + key.primary_connection_string)
示例#4
0
def create_log_profile_operations(client,
                                  name,
                                  location,
                                  locations,
                                  categories,
                                  days,
                                  enabled,
                                  tags=None,
                                  storage_account_id=None,
                                  service_bus_rule_id=None):
    from azure.mgmt.monitor.models import RetentionPolicy, LogProfileResource
    parameters = LogProfileResource(location=location,
                                    locations=locations,
                                    categories=categories,
                                    retention_policy=RetentionPolicy(
                                        days=days, enabled=enabled),
                                    storage_account_id=storage_account_id,
                                    service_bus_rule_id=service_bus_rule_id,
                                    tags=tags)
    return client.create_or_update(log_profile_name=name,
                                   parameters=parameters)