Skip to main content

Syslog Server Profiles

The SyslogServerProfile service manages syslog server profile configurations in Strata Cloud Manager, defining syslog servers that can receive logs from the platform.

Class Overview

The SyslogServerProfile class provides CRUD operations for syslog server profile objects. It is accessed through the client.syslog_server_profile attribute on an initialized Scm instance.

from scm.client import Scm

client = Scm(
client_id="your_client_id",
client_secret="your_client_secret",
tsg_id="your_tsg_id"
)

# Access the SyslogServerProfile service
syslog_profiles = client.syslog_server_profile

Key Attributes

AttributeTypeRequiredDescription
namestrYesName of the syslog server profile (max 31 chars)
idUUIDYes*Unique identifier (*response only)
serverList[SyslogServerModel]YesList of server configurations
formatFormatModelNoFormat settings for different log types
folderstrYes**Folder location (**one container required)
snippetstrYes**Snippet location (**one container required)
devicestrYes**Device location (**one container required)

* Exactly one of folder, snippet, or device is required.

Server Configuration Attributes

AttributeTypeRequiredDescription
namestrYesSyslog server name
serverstrYesSyslog server address
transportstrYesTransport protocol: "UDP" or "TCP"
portintYesSyslog server port (1-65535)
formatstrYesSyslog format: "BSD" or "IETF"
facilitystrYesSyslog facility (e.g., "LOG_USER")

Methods

List Syslog Server Profiles

Retrieves a list of syslog server profiles with optional filtering.

profiles = client.syslog_server_profile.list(folder="Texas")

for profile in profiles:
print(f"Name: {profile.name}")
for srv in profile.server:
print(f" Server: {srv.transport}://{srv.server}:{srv.port}")

Fetch a Syslog Server Profile

Retrieves a single syslog server profile by name and container.

profile = client.syslog_server_profile.fetch(
name="tcp-logging-profile",
folder="Texas"
)
print(f"Found profile: {profile.name}")

Create a Syslog Server Profile

Creates a new syslog server profile.

new_profile = client.syslog_server_profile.create({
"name": "tcp-logging-profile",
"server": [
{
"name": "primary",
"server": "192.168.1.100",
"transport": "TCP",
"port": 1514,
"format": "IETF",
"facility": "LOG_LOCAL0"
},
{
"name": "backup",
"server": "192.168.1.101",
"transport": "TCP",
"port": 1514,
"format": "IETF",
"facility": "LOG_LOCAL1"
}
],
"folder": "Texas"
})

Update a Syslog Server Profile

Updates an existing syslog server profile.

existing = client.syslog_server_profile.fetch(
name="tcp-logging-profile",
folder="Texas"
)
existing.server[0].server = "192.168.1.200"
existing.format = {
"traffic": "updated-traffic-format",
"threat": "updated-threat-format"
}

updated = client.syslog_server_profile.update(existing)

Delete a Syslog Server Profile

Deletes a syslog server profile by ID.

client.syslog_server_profile.delete("123e4567-e89b-12d3-a456-426655440000")

Use Cases

Setting Up UDP and TCP Syslog Servers

Create profiles for different transport protocols.

from scm.client import Scm

client = Scm(
client_id="your_client_id",
client_secret="your_client_secret",
tsg_id="your_tsg_id"
)

# Basic UDP syslog profile
client.syslog_server_profile.create({
"name": "udp-syslog",
"server": [
{
"name": "server1",
"server": "192.168.1.100",
"transport": "UDP",
"port": 514,
"format": "BSD",
"facility": "LOG_USER"
}
],
"folder": "Texas"
})

# Redundant TCP syslog profile
client.syslog_server_profile.create({
"name": "tcp-syslog-redundant",
"server": [
{
"name": "primary",
"server": "192.168.1.100",
"transport": "TCP",
"port": 1514,
"format": "IETF",
"facility": "LOG_LOCAL0"
},
{
"name": "backup",
"server": "192.168.1.101",
"transport": "TCP",
"port": 1514,
"format": "IETF",
"facility": "LOG_LOCAL1"
}
],
"format": {
"traffic": "traffic-format",
"threat": "threat-format"
},
"folder": "Texas"
})

Filtering Syslog Profiles

Use advanced filtering to find specific profiles.

# Filter by transport protocol
udp_profiles = client.syslog_server_profile.list(
folder="Texas",
transport=["UDP"]
)

# Exact match with exclusions
filtered = client.syslog_server_profile.list(
folder="Texas",
exact_match=True,
exclude_folders=["All"],
exclude_snippets=["default"]
)

for profile in filtered:
print(f"Profile: {profile.name} in {profile.folder}")

Error Handling

from scm.client import Scm
from scm.exceptions import InvalidObjectError, MissingQueryParameterError

client = Scm(
client_id="your_client_id",
client_secret="your_client_secret",
tsg_id="your_tsg_id"
)

try:
profiles = client.syslog_server_profile.list()
except InvalidObjectError as e:
print(f"Invalid object error: {e.message}")

try:
profile = client.syslog_server_profile.fetch(name="my-profile", folder="")
except MissingQueryParameterError as e:
print(f"Missing parameter error: {e.message}")