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)
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)
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)