Syslog
STATE: stable
TESTS: Playbook
API Docs: Core - Syslog
Definition
Parameter |
Type |
Required |
Default |
Aliases |
Comment |
---|---|---|---|---|---|
target |
string |
true |
- |
hostname, tgt, server, srv |
Server to forward the logs to |
port |
int |
false |
514 |
p |
Port to forward the logs to |
transport |
string |
false |
udp4 |
trans, t |
Transport protocol to use. One of: ‘udp4’, ‘tcp4’, ‘udp6’, ‘tcp6’, ‘tls4’, ‘tls6’ |
level |
list |
false |
[‘info’, ‘notice’, ‘warn’, ‘err’, ‘crit’, ‘alert’, ‘emerg’] |
lvl, lv |
Log levels to forward. One or multiple of: ‘debug’, ‘info’, ‘notice’, ‘warn’, ‘err’, ‘crit’, ‘alert’, ‘emerg’ |
program |
list |
false |
- |
prog |
Limit applications to send logs from. For options see WEB-UI (value in brackets needed). |
facility |
list |
false |
- |
fac |
Facility to use. One of multiple of: ‘kern’, ‘user’, ‘mail’, ‘daemon’, ‘auth’, ‘syslog’, ‘lpr’, ‘news’, ‘uucp’, ‘cron’, ‘authpriv’, ‘ftp’, ‘ntp’, ‘security’, ‘console’, ‘local0’, ‘local1’, ‘local2’, ‘local3’, ‘local4’, ‘local5’, ‘local6’, ‘local7’ |
certificate |
string |
false, true if transport is TLS |
- |
cert |
Certificate to use for encrypted transport. Provide the certificates ID - not display name. |
description |
string |
false |
- |
desc |
Optional description for the syslog-destination. Could be used as unique-identifier when set as only ‘match_field’. |
match_fields |
list |
false |
[‘target’, ‘facility’, ‘program’] |
- |
Fields that are used to match configured syslog-destinations with the running config - if any of those fields are changed, the module will think it’s a new entry. At least one of: ‘target’, ‘transport’, ‘facility’, ‘program’, ‘level’, ‘port’, ‘description’ |
For basic parameters see: Basic
Examples
- hosts: localhost
gather_facts: no
module_defaults:
group/ansibleguy.opnsense.all:
firewall: 'opnsense.template.ansibleguy.net'
api_credential_file: '/home/guy/.secret/opn.key'
ansibleguy.opnsense.syslog:
match_fields: ['description']
ansibleguy.opnsense.list:
target: 'syslog'
tasks:
- name: Example
ansibleguy.opnsense.syslog:
target: '192.168.0.1'
# port: 514
# transport: 'udp4'
# level: ['info', 'notice', 'warn', 'err', 'crit', 'alert', 'emerg']
# program: ['firewall', 'openvpn']
# facility: ['security']
# certificate: 'certificate-id'
# rfc5424: false
# description: 'example'
# match_fields: ['target', 'facility', 'program']
- name: Adding 1
ansibleguy.opnsense.syslog:
description: 'test1'
target: '192.168.0.1'
# match_fields: ['description']
- name: Listing
ansibleguy.opnsense.list:
# target: 'syslog'
register: existing_entries
- name: Printing entries
ansible.builtin.debug:
var: existing_entries.data
Cleanup
Removing all unwanted (not configured) entries.
In this example the description is used as unique identifier!
- hosts: localhost
gather_facts: no
module_defaults:
group/ansibleguy.opnsense.all:
firewall: 'opnsense.template.ansibleguy.net'
api_credential_file: '/home/guy/.secret/opn.key'
ansibleguy.opnsense.syslog:
match_fields: ['description']
ansibleguy.opnsense.list:
target: 'syslog'
vars:
syslog: {...}
tasks:
- name: Listing
ansibleguy.opnsense.list:
# target: 'syslog'
register: existing_entries
- name: Purge
ansibleguy.opnsense.syslog:
description: "{{ destination.description }}"
target: "{{ destination.target }}"
state: 'absent'
when: destination.description not in syslog | json_query('[*].description')
loop_control:
loop_var: destination
loop: "{{ existing_entries.data }}"