Skip to 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

Attribute Type Required Description
name str Yes Name of the syslog server profile (max 31 chars)
id UUID Yes* Unique identifier (*response only)
server List[SyslogServerModel] Yes List of server configurations
format FormatModel No Format settings for different log types
folder str Yes** Folder location (**one container required)
snippet str Yes** Snippet location (**one container required)
device str Yes** Device location (**one container required)

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

Server Configuration Attributes

Attribute Type Required Description
name str Yes Syslog server name
server str Yes Syslog server address
transport str Yes Transport protocol: "UDP" or "TCP"
port int Yes Syslog server port (1-65535)
format str Yes Syslog format: "BSD" or "IETF"
facility str Yes Syslog 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}")