Inleiding
In dit document wordt beschreven hoe u problemen met gebeurtenisstromen kunt oplossen in Advanced Malware Protection Secure Endpoint Private Cloud.
Voorwaarden
Vereisten
Cisco raadt je aan om kennis te hebben van de onderwerpen:
- Secure Endpoint Private Cloud
- API-query
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- Secure Endpoint Private Cloud v3.9.0
- cURL v7.87.0
- cURL v8.0.1
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Configuratie
API-sleutel maken
Stap 1. Meld u aan bij Private Cloud Console.
Stap 2. Navigeer naar Accounts > API CredentialsEuropa.
Stap 3. Klik op de knop . New API Credential
Stap 4. Voeg deApplication nameen klik op Read & Write scope.
API-sleutel maken
Stap 5. Klik op de knop . Create
Stap 6. API-referenties opslaan.
API-sleutel
Let op: De API-sleutel kan niet worden hersteld als u deze pagina verlaat.
Gebeurtenisstroom maken
Hierdoor wordt een nieuwe AMQP-berichtenstroom (Advanced Message Queuing Protocol) gemaakt voor gebeurtenisinformatie.
U kunt een gebeurtenisstroom maken voor opgegeven gebeurtenistypen en groepen:
--data '{"name":"EVENT_STREAM_NAME","event_type":["EVENT_TYPE_1", "EVENT_TYPE_2"],"group_guid":["GROUP_ID_1", "GROUP_ID_2"]}'U kunt een gebeurtenisstroom maken voor alle gebeurtenistypen en alle groepen door:
--data '{"name":"EVENT_STREAM_NAME","event_type":[],"group_guid":[]}'MacOS/Linux
U kunt een Event Stream maken op MacOS/Linux met behulp van:
curl -X POST -k -H 'Accept: application/json' -H 'Content-Type: application/json' -u 'CLIENT_ID:API_KEY' -i 'https://CONSOLE_URL/v1/event_streams' --data '{"name":"EVENT_STREAM_NAME","event_type":[],"group_guid":[]}'Windows
U kunt een gebeurtenisstroom maken op Windows met behulp van:
curl -X POST -k -H "Accept: application/json" -H "Content-Type: application/json" -u "CLIENT_ID:API_KEY" -i "https://CONSOLE_URL/v1/event_streams" --data "{\"name\":\"EVENT_STREAM_NAME\",\"event_type\":[],\"group_guid\":[]}"reactie
HTTP/1.1 201 Created
(...)
"data": {
"id": 17,
"name": "EVENT_STREAM_NAME",
"amqp_credentials": {
"user_name": "17-1bfXXXXXXXXXX",
"queue_name": "event_stream_17",
"password": "3961XXXXXXXXXXXXXXXXXXXXXX814a77",
"host": "FMC_SERVICE_URL",
"port": 443,
"proto": "https"
}
}
Lijst van Event Streams
Dit toont een lijst met evenementenstreams gemaakt op Private Cloud.
MacOS/Linux
U kunt de Event Streams op MacOS/Linux weergeven met behulp van:
curl -k -H 'Accept: application/json' -H 'Content-Type: application/json' -u 'CLIENT_ID:API_KEY' -i 'https://CONSOLE_URL/v1/event_streams'
Windows
U kunt de gebeurtenisstromen op Windows weergeven met behulp van:
curl -k -H "Accept:application/json" -H "Content-Type:application/json" -u "CLIENT_ID:API_KEY" -i "https://CONSOLE_URL/v1/event_streams"
reactie
HTTP/1.1 200 OK
(...)
"data": {
"id": 17,
"name": "EVENT_STREAM_NAME",
"amqp_credentials": {
"user_name": "17-1bfXXXXXXXXXX",
"queue_name": "event_stream_17",
"host": "FMC_SERVICE_URL",
"port": 443,
"proto": "https"
}
}
Gebeurtenisstromen verwijderen
Verwijdert een actieve gebeurtenisstroom.
MacOS/Linux
U kunt Event Streams op MacOS/Linux verwijderen met behulp van:
curl -X DELETE -k -H 'Accept: application/json' -H 'Content-Type: application/json' -u 'CLIENT_ID:API_KEY' -i 'https://CONSOLE_URL/v1/event_streams/EVENT_STREAM_ID'
Windows
U kunt Event Streams op Windows verwijderen met behulp van:
curl -X DELETE -k -H "Accept:application/json" -H "Content-Type:application/json" -u "CLIENT_ID:API_KEY" -i "https://CONSOLE_URL/v1/event_streams/EVENT_STREAM_ID"
reactie
HTTP/1.1 200 OK
(...)
"data": {}
Verifiëren
Stap 1. Kopieer het Python-script naar uw apparaat en sla het op als EventStream.py.
import pika
import ssl
user_name = "USERNAME"
queue_name = "QUEUE_NAME"
password = "PASSWORD"
host = "FMC_SERVICE_URL"
port = 443
proto = "https"
def callback(channel, method, properties, body):
print(body)
amqp_url = f"amqps://{user_name}:{password}@{host}:{port}"
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
amqp_ssl = pika.SSLOptions(context)
params = pika.URLParameters(amqp_url)
params.ssl_options = amqp_ssl
connection = pika.BlockingConnection(params)
channel = connection.channel()
channel.basic_consume(
queue_name,
callback,
auto_ack = False
)
channel.start_consuming()
Stap 2. Voer het ook uit in de terminal python3 EventStream.py.
Stap 3. Activeer een gebeurtenis die is toegevoegd aan de wachtrij voor de gebeurtenisstroom.
Stap 4. Controleer of de gebeurtenissen in de terminal verschijnen.
Probleemoplossing
Om deze opdrachten uit te voeren moet je via SSH inloggen in de Private Cloud.
Controleer de AMQP-service
Controleer of de service is ingeschakeld:
[root@fireamp rabbitmq]# amp-ctl service status rabbitmq
running enabled rabbitmq
Controleer of de service actief is:
[root@fireamp ~]# svstat /service/rabbitmq
/service/rabbitmq: up (pid 25504) 7402137 seconds
Controleer de verbinding met de ontvanger van de gebeurtenisstroom
Voer de opdracht uit:
tail /data/log/rabbitmq/rabbit@fireamp.log
De verbinding wordt tot stand gebracht:
=INFO REPORT==== 19-Apr-2023::08:40:12 ===
accepting AMQP connection <0.17588.27> (127.0.0.1:32946 -> 127.0.0.1:5672)
De verbinding is gesloten:
=WARNING REPORT==== 19-Apr-2023::08:41:52 ===
closing AMQP connection <0.17588.27> (127.0.0.1:32946 -> 127.0.0.1:5672):
connection_closed_abruptly
Controleer de gebeurtenissen in de wachtrij
Gebeurtenissen in de wachtrij zijn klaar om via deze gebeurtenisstroom naar de ontvanger te worden verzonden nadat de verbinding tot stand is gebracht. In dit voorbeeld zijn er 14 evenementen voor Event Stream ID 23.
[root@fireamp rabbitmq]# rabbitmqctl list_queues
Listing queues ...
1acb0eb6-39f7-4b11-bd9b-fc4dd0e3bd77_60b15rn8mpftaico6or6l8zxavl1usm 26
1acb0eb6-39f7-4b11-bd9b-fc4dd0e3bd77_61984nlu8p11eeopmgmtcjra1v8gf5p 26
1acb0eb6-39f7-4b11-bd9b-fc4dd0e3bd77_iesRAgVo0h287mO_DetOx9PdDu8MxkS6kL4oSTeBm9s 26
event_decoration 0
event_log_store 0
event_stream_23 14
event_streams_api 0
events_delayed 0
events_retry 0
mongo_event_consumer 0
out_events_q1 0
tevent_listener 0
Netwerkverkeersbestand verzamelen
Om het Event Stream-verkeer vanuit de Private Cloud te verifiëren, kunt u vastleggen verzamelen met een tcpdump tool:
Stap 1. SSH naar de private cloud.
Stap 2. Voer de opdracht uit:
tcpdump -vvv -i eth1 host <Event_Stream_Receiver_IP> -w file.pcap
Stap 3. Stop de opname met Ctrl+C (Windows) of Command-C (Mac).
Stap 4. Haal het pcap bestand uit de Private Cloud.
Gerelateerde informatie