Location#
To be able to create and thereafter interact with a Sensor we first need to ensure there a Location to which we can attach the Sensor. A Location represents a physical or digital location in a given time and network zone belonging to a specific Customer.
More concretely, Locations are used to have a more granular understanding of customer topology, than just that “event X happened at customer Y”.
By placing sensors in different locations, you will see where in the customers network the event was observed (note: the location of the SENSOR is not necessarily the same as the location of the source or destination of the event).
Events placed into different locations will also NOT be aggregated together by Argus (in realtime), so observing the same event in multiple locations may give the analyst an understanding of how the event has flowed through the customer network.
Locations are normally customer specific. The granularity of the customer locations is up to the implementation project; some customers are more on “continent” level locations, while other customers are “DC” level or even “rack/zone” level. What makes the most sense depends on how our installation at the customer looks, if we have visibility in many different locations at the customer, a more fine-grained location setup may be more suitable.
Having locations on each event, this also allows us to show/query for events by location, and show statistics on events by location.
For small installations, Location is not really relevant, so we tend to only use very general zones such as “External”, “Internal” or “DMZ”. To avoid recreating the same locations over and over again, we have defined these as “global locations”, which are reusable across customers.
Create a Location#
To create a Location POST
a AddLocationRequest
to the base URL:
curl -X POST "https://api.mnemonic.no/sensors/v1/location" -H "accept: application/json" -H "Content-Type: application/json" -H "Argus-API-Key: my/api/key"
-d '{
"name": "location1",
"shortName": "l1",
"networkZone": "INTERNAL",
"customerID": 1,
"timeZoneDescription": "Europe/Oslo"
}'
For the request to be successful:
The user must have the addLocation or
addGlobalLocation
permission depending on the Location’s customer, a role that grants it, or belong to a group with said permissionThe Customer for whom we want to create the Sensor must exist
The
AddLocationRequest
must be validThe short name must be unique
The timezone must exist
Get a Location#
To get a Location append the Location’s shortname or ID to the base URL:
curl -X GET "https://api.mnemonic.no/sensors/v1/location/{idOrShortname}" -H "Argus-API-Key: my/api/key"
For the request to be successful
The user must have the
viewLocations
orviewGlobalLocations
permission depending on the Location’s customer, a role that grants it, or belong to a group with said permissionThe Location must exist
Update a Location#
To update a Location PUT
an UpdateLocationRequest
to the Location’s path:
curl -X PUT "https://api.mnemonic.no/sensors/v1/location/{idOrShortname}" -H "accept: application/json" -H "Content-Type: application/json" -H "Argus-API-Key: my/api/key"
-d '{
"name": "newlocation1",
"shortName": "newl1",
"networkZone": "DMZ",
"timeZoneDescription": "Europe/London"
}'
For the request to be successful:
The user must have the
updateLocation
orupdateGlobalLocation
permission depending on the Location’s customer, a role that grants it, or belong to a group with said permissionThe Location must exist
The
UpdateLocationRequest
must be validtimezone
name
shortname
Delete a Location#
To delete a Location submit a DELETE
request to the Location’s path:
curl -X DELETE "https://api.mnemonic.no/sensors/v1/location/{idOrShortname}" -H "Argus-API-Key: my/api/key"
For the request to be successful:
The user must have the
removeLocation
orremoveGlobalLocation
permissions depending on the Location’s customer, a role that grants it or belong to a group with said permissionThe Location must exist