draft-ietf-netmod-syslog-model-12.txt | draft-ietf-netmod-syslog-model-13.txt | |||
---|---|---|---|---|
NETMOD WG C. Wildes, Ed. | NETMOD WG C. Wildes, Ed. | |||
Internet-Draft K. Koushik, Ed. | Internet-Draft Cisco Systems Inc. | |||
Intended status: Standards Track Cisco Systems Inc. | Intended status: Standards Track K. Koushik, Ed. | |||
Expires: August 16, 2017 February 14, 2017 | Expires: September 12, 2017 Verizon Wireless | |||
March 13, 2017 | ||||
A YANG Data Model for Syslog Configuration | A YANG Data Model for Syslog Configuration | |||
draft-ietf-netmod-syslog-model-12 | draft-ietf-netmod-syslog-model-13 | |||
Abstract | Abstract | |||
This document describes a data model for the configuration of syslog. | This document describes a data model for the configuration of syslog. | |||
Status of this Memo | Status of this Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on August 16, 2017. | This Internet-Draft will expire on September 12, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (http://trustee.ietf.org/ | Provisions Relating to IETF Documents (http://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
extracted from this document must include Simplified BSD License text | extracted from this document must include Simplified BSD License text | |||
as described in Section 4.e of the Trust Legal Provisions and are | as described in Section 4.e of the Trust Legal Provisions and are | |||
provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 | |||
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 | 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Design of the Syslog Model . . . . . . . . . . . . . . . . . . 3 | 3. Design of the Syslog Model . . . . . . . . . . . . . . . . . . 3 | |||
3.1. Syslog Module . . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. Syslog Module . . . . . . . . . . . . . . . . . . . . . . 5 | |||
4. Syslog YANG Modules . . . . . . . . . . . . . . . . . . . . . 8 | ||||
4.1. The ietf-syslog-types Module . . . . . . . . . . . . . . . 8 | 4. Syslog YANG Module . . . . . . . . . . . . . . . . . . . . . . 7 | |||
4.2. The ietf-syslog Module . . . . . . . . . . . . . . . . . . 14 | 4.1. The ietf-syslog Module . . . . . . . . . . . . . . . . . . 7 | |||
5. Usage Examples . . . . . . . . . . . . . . . . . . . . . . . . 25 | 5. Usage Examples . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 26 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 27 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 23 | |||
8.1. Resource Constraints . . . . . . . . . . . . . . . . . . . 27 | 8.1. Resource Constraints . . . . . . . . . . . . . . . . . . . 24 | |||
8.2. Inappropriate Configuration . . . . . . . . . . . . . . . 27 | 8.2. Inappropriate Configuration . . . . . . . . . . . . . . . 24 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 27 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . . 27 | 9.1. Normative References . . . . . . . . . . . . . . . . . . . 24 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . . 28 | 9.2. Informative References . . . . . . . . . . . . . . . . . . 25 | |||
Appendix A. Implementor Guidelines . . . . . . . . . . . . . . . . 28 | Appendix A. Implementor Guidelines . . . . . . . . . . . . . . . . 25 | |||
Appendix A.1. Extending Facilities . . . . . . . . . . . . . . 28 | Appendix A.1. Extending Facilities . . . . . . . . . . . . . . 25 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 29 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
1. Introduction | 1. Introduction | |||
Operating systems, processes and applications generate messages | Operating systems, processes and applications generate messages | |||
indicating their own status or the occurrence of events. These | indicating their own status or the occurrence of events. These | |||
messages are useful for managing and/or debugging the network and its | messages are useful for managing and/or debugging the network and its | |||
services. The BSD syslog protocol is a widely adopted protocol that | services. The BSD syslog protocol is a widely adopted protocol that | |||
is used for transmission and processing of the messages. | is used for transmission and processing of the messages. | |||
Since each process, application and operating system was written | Since each process, application and operating system was written | |||
skipping to change at page 2, line 41 ¶ | skipping to change at page 2, line 42 ¶ | |||
designed to transport these event messages. No acknowledgement of | designed to transport these event messages. No acknowledgement of | |||
the receipt is made. | the receipt is made. | |||
Essentially, a syslog process receives messages (from the kernel, | Essentially, a syslog process receives messages (from the kernel, | |||
processes, applications or other syslog processes) and processes | processes, applications or other syslog processes) and processes | |||
those. The processing involves logging to a local file, displaying | those. The processing involves logging to a local file, displaying | |||
on console, and/or relaying to syslog processes on other machines. | on console, and/or relaying to syslog processes on other machines. | |||
The processing is determined by the "facility" that originated the | The processing is determined by the "facility" that originated the | |||
message and the "severity" assigned to the message by the facility. | message and the "severity" assigned to the message by the facility. | |||
We are using definitions of syslog protocol from [RFC5424] in this | We are using definitions of syslog protocol from RFC 5424 [RFC5424] | |||
RFC. | in this RFC. | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
1.2. Terminology | 1.2. Terminology | |||
The term "originator" is defined in [RFC5424]: an "originator" | The term "originator" is defined in [RFC 5424]: an "originator" | |||
generates syslog content to be carried in a message. | generates syslog content to be carried in a message. | |||
The terms "relay" and "collectors" are as defined in [RFC5424]. | The terms "relay" and "collectors" are as defined in [RFC 5424]. | |||
2. Problem Statement | 2. Problem Statement | |||
This document defines a YANG [RFC6020] configuration data model that | This document defines a YANG [RFC6020] configuration data model that | |||
may be used to configure the syslog feature running on a system. | may be used to configure the syslog feature running on a system. | |||
YANG models can be used with network management protocols such as | YANG models can be used with network management protocols such as | |||
NETCONF [RFC6241] to install, manipulate, and delete the | NETCONF [RFC6241] to install, manipulate, and delete the | |||
configuration of network devices. | configuration of network devices. | |||
The data model makes use of the YANG "feature" construct which allows | The data model makes use of the YANG "feature" construct which allows | |||
implementations to support only those syslog features that lie within | implementations to support only those syslog features that lie within | |||
their capabilities. | their capabilities. | |||
skipping to change at page 3, line 15 ¶ | skipping to change at page 3, line 21 ¶ | |||
may be used to configure the syslog feature running on a system. | may be used to configure the syslog feature running on a system. | |||
YANG models can be used with network management protocols such as | YANG models can be used with network management protocols such as | |||
NETCONF [RFC6241] to install, manipulate, and delete the | NETCONF [RFC6241] to install, manipulate, and delete the | |||
configuration of network devices. | configuration of network devices. | |||
The data model makes use of the YANG "feature" construct which allows | The data model makes use of the YANG "feature" construct which allows | |||
implementations to support only those syslog features that lie within | implementations to support only those syslog features that lie within | |||
their capabilities. | their capabilities. | |||
This module can be used to configure the syslog application | This module can be used to configure the syslog application | |||
conceptual layers as implemented on the target system [RFC5424]. | conceptual layers [RFC5424] as implemented on the target system. | |||
3. Design of the Syslog Model | 3. Design of the Syslog Model | |||
The syslog model was designed by comparing various syslog features | The syslog model was designed by comparing various syslog features | |||
implemented by various vendors' in different implementations. | implemented by various vendors' in different implementations. | |||
This draft addresses the common leafs between implementations and | This draft addresses the common leafs between implementations and | |||
creates a common model, which can be augmented with proprietary | creates a common model, which can be augmented with proprietary | |||
features, if necessary. The base model is designed to be very simple | features, if necessary. This model is designed to be very simple for | |||
for maximum flexibility. | maximum flexibility. | |||
Optional features are used to specify functionality that is present | Optional features are used to specify functionality that is present | |||
in specific vendor configurations. | in specific vendor configurations. | |||
Syslog consists of originators, and collectors. The following | Syslog consists of originators, and collectors. The following | |||
diagram shows syslog messages flowing from an originator, to | diagram shows syslog messages flowing from an originator, to | |||
collectors where filtering can take place. | collectors where filtering can take place. | |||
Many vendors extend the list of facilities available for logging in | Many vendors extend the list of facilities available for logging in | |||
their implementation. An example is included in Extending Facilities | their implementation. An example is included in Extending Facilities | |||
skipping to change at page 4, line 33 ¶ | skipping to change at page 4, line 33 ¶ | |||
| | | | | | | | |||
v v v | v v v | |||
Collectors | Collectors | |||
+----------+ +----------+ +----------------+ | +----------+ +----------+ +----------------+ | |||
| | | Log | |Remote Relay(s)/| | | | | Log | |Remote Relay(s)/| | |||
| Console | | File(s) | |Collector(s) | | | Console | | File(s) | |Collector(s) | | |||
+----------+ +----------+ +----------------+ | +----------+ +----------+ +----------------+ | |||
Figure 1. Syslog Processing Flow | Figure 1. Syslog Processing Flow | |||
The leaves in the base syslog model actions container correspond to | The leaves in the syslog model "actions" container correspond to each | |||
each message collector: | message collector: | |||
console | console | |||
log file(s) | log file(s) | |||
remote relay(s)/collector(s) | remote relay(s)/collector(s) | |||
Within each action, a selector is used to filter syslog messages. A | Within each action, a selector is used to filter syslog messages. A | |||
selector consists of a list of one or more facility-severity matches, | selector consists of a list of one or more facility-severity matches, | |||
and, if supported via the select-match feature, an optional regular | and, if supported via the select-match feature, an optional regular | |||
expression pattern match that is performed on the SYSLOG-MSG field. | expression pattern match that is performed on the SYSLOG-MSG | |||
[RFC5424] field. | ||||
Selector processing (input is syslog message): | A syslog message is processed if: | |||
1. Loop through facility-list | There is an element of facility-list (F, S) where | |||
a. Facility match processing - continue to the next entry in | the message facility matches F (if it is present) | |||
the list if no match | and the message severity matches S (if it is present) | |||
b. Severity compare processing - continue to the next list | or the message text matches the regex pattern (if it is present) | |||
entry if no match | ||||
c. Match - proceed with the action and exit further processing | ||||
2. Process pattern match if specified and if a match proceed with | ||||
the action | ||||
The facility is one of a specific syslogtypes:syslog-facility, or all | The facility is one of a specific syslog-facility, or all facilities. | |||
facilities. | ||||
The severity is one of syslogtypes:severity, all severities, or none. | The severity is one of type syslog-severity, all severities, or none. | |||
None is a special case that can be used to disable a facility. When | None is a special case that can be used to disable a filter. When | |||
filtering severity, the default comparison is that messages of the | filtering severity, the default comparison is that messages of the | |||
specified severity and higher are selected to be logged. This is | specified severity and higher are selected to be logged. This is | |||
shown in the model as "default equals-or-higher". This behavior can | shown in the model as "default equals-or-higher". This behavior can | |||
be altered if the select-adv-compare feature is enabled to specify a | be altered if the select-adv-compare feature is enabled to specify a | |||
compare operatorn and an action. Compare operations are: "equals" | compare operation and an action. Compare operations are: "equals" to | |||
to select messages with this single severity, or "equals-or-higher" | select messages with this single severity, or "equals-or-higher" to | |||
to select messages of the specified severity and higher. Actions are | select messages of the specified severity and higher. Actions are | |||
to log the message or block the message from being logged. | used to log the message or block the message from being logged. | |||
3.1. Syslog Module | 3.1. Syslog Module | |||
A simplified graphical representation of the complete data tree is | A simplified graphical representation of the data model is used in | |||
presented here. | this document. The meaning of the symbols in these diagrams is | |||
defined in [RFC6087]. | ||||
Each node is printed as: | ||||
<status> <flags> <name> <opts> <type> <if-features> | ||||
<status> is one of: | ||||
+ for current | ||||
x for deprecated | ||||
o for obsolete | ||||
<flags> is one of: | ||||
rw for configuration data | ||||
ro for non-configuration data | ||||
-x for rpcs | ||||
-n for notifications | ||||
<name> is the name of the node | ||||
(<name>) means that the node is a choice node | ||||
:(<name>) means that the node is a case node | ||||
If the node is augmented into the tree from another module, its name | ||||
is printed as <prefix>:<name>. | ||||
<opts> is one of: | ||||
? for an optional leaf or choice | ||||
! for a presence container | ||||
* for a leaf-list or list | ||||
[<keys>] for a list's keys | ||||
<type> is the name of the type for leafs and leaf-lists | ||||
If the type is a leafref, the type is printed as "-> TARGET", where | ||||
TARGET is either the leafref path, with prefixed removed if possible. | ||||
<if-features> is the list of features this node depends on, printed | ||||
within curly brackets and a question mark "{...}?" | ||||
module: ietf-syslog | module: ietf-syslog | |||
+--rw syslog! | +--rw syslog! | |||
+--rw actions | +--rw actions | |||
+--rw console! {console-action}? | +--rw console! {console-action}? | |||
| +--rw selector | | +--rw selector | |||
| +--rw facility-list* [facility severity] | | +--rw facility-list* [facility severity] | |||
| | +--rw facility union | | | +--rw facility union | |||
| | +--rw severity union | | | +--rw severity union | |||
| | +--rw advanced-compare {select-adv-compare}? | | | +--rw advanced-compare {select-adv-compare}? | |||
| | +--rw compare? enumeration | | | +--rw compare? enumeration | |||
skipping to change at page 8, line 7 ¶ | skipping to change at page 7, line 7 ¶ | |||
| | +--rw compare? enumeration | | | +--rw compare? enumeration | |||
| | +--rw action? enumeration | | | +--rw action? enumeration | |||
| +--rw pattern-match? string {select-match}? | | +--rw pattern-match? string {select-match}? | |||
+--rw structured-data? boolean {structured-data}? | +--rw structured-data? boolean {structured-data}? | |||
+--rw facility-override? identityref | +--rw facility-override? identityref | |||
+--rw source-interface? if:interface-ref {remote-source-interface}? | +--rw source-interface? if:interface-ref {remote-source-interface}? | |||
+--rw signing-options! {signed-messages}? | +--rw signing-options! {signed-messages}? | |||
+--rw cert-initial-repeat uint16 | +--rw cert-initial-repeat uint16 | |||
+--rw cert-resend-delay uint16 | +--rw cert-resend-delay uint16 | |||
+--rw cert-resend-count uint16 | +--rw cert-resend-count uint16 | |||
+--rw max-delay uint16 | +--rw sig-max-delay uint16 | |||
+--rw number-resends uint16 | +--rw sig-number-resends uint16 | |||
+--rw resend-delay uint16 | +--rw sig-resend-delay uint16 | |||
+--rw resend-count uint16 | +--rw sig-resend-count uint16 | |||
Figure 2. ietf-syslog Module Tree | Figure 2. ietf-syslog Module Tree | |||
4. Syslog YANG Modules | 4. Syslog YANG Module | |||
4.1. The ietf-syslog-types Module | 4.1. The ietf-syslog Module | |||
This module references [RFC5424]. | This module imports typedefs from [RFC6021] and [RFC7223], and it | |||
references [RFC5424], [RFC5425], [RFC5426], [RFC6587], and [RFC5848]. | ||||
<CODE BEGINS> file "ietf-syslog-types.yang" | <CODE BEGINS> file "ietf-syslog.yang" | |||
module ietf-syslog-types { | module ietf-syslog { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-syslog-types"; | namespace "urn:ietf:params:xml:ns:yang:ietf-syslog"; | |||
prefix syslogtypes; | prefix syslog; | |||
organization "IETF NETMOD (NETCONF Data Modeling Language) Working | import ietf-inet-types { | |||
Group"; | prefix inet; | |||
} | ||||
import ietf-interfaces { | ||||
prefix if; | ||||
} | ||||
organization "IETF NETMOD (NETCONF Data Modeling Language) | ||||
Working Group"; | ||||
contact | contact | |||
"WG Web: <http://tools.ietf.org/wg/netmod/> | "WG Web: <http://tools.ietf.org/wg/netmod/> | |||
WG List: <mailto:netmod@ietf.org> | WG List: <mailto:netmod@ietf.org> | |||
WG Chair: Lou Berger | ||||
<mailto:lberger@labn.net> | ||||
WG Chair: Kent Watsen | ||||
<mailto:kwatsen@juniper.net> | ||||
Editor: Kiran Agrahara Sreenivasa | Editor: Kiran Agrahara Sreenivasa | |||
<mailto:kkoushik@cisco.com> | <mailto:kkoushik@cisco.com> | |||
Editor: Clyde Wildes | Editor: Clyde Wildes | |||
<mailto:cwildes@cisco.com>"; | <mailto:cwildes@cisco.com>"; | |||
description | description | |||
"This module contains a collection of YANG type definitions for | "This module contains a collection of YANG definitions | |||
SYSLOG. | for syslog configuration. | |||
Copyright (c) 2016 IETF Trust and the persons identified as | Copyright (c) 2016 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
the license terms contained in, the Simplified BSD License set | the license terms contained in, the Simplified BSD License set | |||
forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
skipping to change at page 9, line 51 ¶ | skipping to change at page 8, line 53 ¶ | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | |||
'OPTIONAL' in the module text are to be interpreted as described | 'OPTIONAL' in the module text are to be interpreted as described | |||
in RFC 2119 (http://tools.ietf.org/html/rfc2119). | in RFC 2119 (http://tools.ietf.org/html/rfc2119). | |||
This version of this YANG module is part of RFC XXXX | This version of this YANG module is part of RFC XXXX | |||
(http://tools.ietf.org/html/rfcXXXX); see the RFC itself for | (http://tools.ietf.org/html/rfcXXXX); see the RFC itself for | |||
full legal notices."; | full legal notices."; | |||
reference | reference | |||
"RFC 5424: The Syslog Protocol"; | "RFC 5424: The Syslog Protocol | |||
RFC 5426: Transmission of Syslog Messages over UDP | ||||
RFC 6587: Transmission of Syslog Messages over TCP | ||||
RFC 5848: Signed Syslog Messages"; | ||||
revision 2017-02-14 { | revision 2017-03-13 { | |||
description | description | |||
"Initial Revision"; | "Initial Revision"; | |||
reference | reference | |||
"RFC XXXX: SYSLOG YANG Model"; | "RFC XXXX: Syslog YANG Model"; | |||
} | ||||
feature console-action { | ||||
description | ||||
"This feature indicates that the local console action is | ||||
supported."; | ||||
} | } | |||
typedef severity { | feature file-action { | |||
description | ||||
"This feature indicates that the local file action is | ||||
supported."; | ||||
} | ||||
feature file-limit-size { | ||||
description | ||||
"This feature indicates that file logging resources | ||||
are managed using size and number limits."; | ||||
} | ||||
feature file-limit-duration { | ||||
description | ||||
"This feature indicates that file logging resources | ||||
are managed using time based limits."; | ||||
} | ||||
feature remote-action { | ||||
description | ||||
"This feature indicates that the remote server action is | ||||
supported."; | ||||
} | ||||
feature remote-source-interface { | ||||
description | ||||
"This feature indicates that source-interface is supported | ||||
supported for the remote-action."; | ||||
} | ||||
feature select-adv-compare { | ||||
description | ||||
"This feature represents the ability to select messages | ||||
using the additional comparison operators when comparing | ||||
the syslog message severity."; | ||||
} | ||||
feature select-match { | ||||
description | ||||
"This feature represents the ability to select messages based | ||||
on a Posix 1003.2 regular expression pattern match."; | ||||
} | ||||
feature structured-data { | ||||
description | ||||
"This feature represents the ability to log messages | ||||
in structured-data format as per RFC 5424."; | ||||
} | ||||
feature signed-messages { | ||||
description | ||||
"This feature represents the ability to configure signed | ||||
syslog messages according to RFC 5848."; | ||||
} | ||||
typedef syslog-severity { | ||||
type enumeration { | type enumeration { | |||
enum "emergency" { | enum "emergency" { | |||
value 0; | value 0; | |||
description | description | |||
"The severity level 'Emergency' indicating that the system | "The severity level 'Emergency' indicating that the system | |||
is unusable."; | is unusable."; | |||
} | } | |||
enum "alert" { | enum "alert" { | |||
value 1; | value 1; | |||
description | description | |||
skipping to change at page 13, line 57 ¶ | skipping to change at page 14, line 15 ¶ | |||
"The facility for local use 6 messages (22) as defined in | "The facility for local use 6 messages (22) as defined in | |||
RFC 5424."; | RFC 5424."; | |||
} | } | |||
identity local7 { | identity local7 { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for local use 7 messages (23) as defined in | "The facility for local use 7 messages (23) as defined in | |||
RFC 5424."; | RFC 5424."; | |||
} | } | |||
} | ||||
<CODE ENDS> | ||||
Figure 3. ietf-syslog-types Module | ||||
4.2. The ietf-syslog Module | ||||
This module imports typedefs from [RFC6021] and [RFC7223], and it | ||||
references [RFC5424], [RFC5425], [RFC5426], [RFC6587], and [RFC5848]. | ||||
<CODE BEGINS> file "ietf-syslog.yang" | ||||
module ietf-syslog { | ||||
namespace "urn:ietf:params:xml:ns:yang:ietf-syslog"; | ||||
prefix syslog; | ||||
import ietf-inet-types { | ||||
prefix inet; | ||||
} | ||||
import ietf-interfaces { | ||||
prefix if; | ||||
} | ||||
import ietf-syslog-types { | ||||
prefix syslogtypes; | ||||
} | ||||
organization "IETF NETMOD (NETCONF Data Modeling Language) | ||||
Working Group"; | ||||
contact | ||||
"WG Web: <http://tools.ietf.org/wg/netmod/> | ||||
WG List: <mailto:netmod@ietf.org> | ||||
WG Chair: Lou Berger | ||||
<mailto:lberger@labn.net> | ||||
WG Chair: Kent Watsen | ||||
<mailto:kwatsen@juniper.net> | ||||
Editor: Kiran Agrahara Sreenivasa | ||||
<mailto:kkoushik@cisco.com> | ||||
Editor: Clyde Wildes | ||||
<mailto:cwildes@cisco.com>"; | ||||
description | ||||
"This module contains a collection of YANG definitions | ||||
for syslog configuration. | ||||
Copyright (c) 2016 IETF Trust and the persons identified as | ||||
authors of the code. All rights reserved. | ||||
Redistribution and use in source and binary forms, with or | ||||
without modification, is permitted pursuant to, and subject to | ||||
the license terms contained in, the Simplified BSD License set | ||||
forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
Relating to IETF Documents | ||||
(http://trustee.ietf.org/license-info). | ||||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | ||||
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | ||||
'OPTIONAL' in the module text are to be interpreted as described | ||||
in RFC 2119 (http://tools.ietf.org/html/rfc2119). | ||||
This version of this YANG module is part of RFC XXXX | ||||
(http://tools.ietf.org/html/rfcXXXX); see the RFC itself for | ||||
full legal notices."; | ||||
reference | ||||
"RFC 5424: The Syslog Protocol | ||||
RFC 5426: Transmission of Syslog Messages over UDP | ||||
RFC 6587: Transmission of Syslog Messages over TCP | ||||
RFC 5848: Signed Syslog Messages"; | ||||
revision 2017-02-14 { | ||||
description | ||||
"Initial Revision"; | ||||
reference | ||||
"RFC XXXX: Syslog YANG Model"; | ||||
} | ||||
feature console-action { | ||||
description | ||||
"This feature indicates that the local console action is | ||||
supported."; | ||||
} | ||||
feature file-action { | ||||
description | ||||
"This feature indicates that the local file action is | ||||
supported."; | ||||
} | ||||
feature file-limit-size { | ||||
description | ||||
"This feature indicates that file logging resources | ||||
are managed using size and number limits."; | ||||
} | ||||
feature file-limit-duration { | ||||
description | ||||
"This feature indicates that file logging resources | ||||
are managed using time based limits."; | ||||
} | ||||
feature remote-action { | ||||
description | ||||
"This feature indicates that the remote server action is | ||||
supported."; | ||||
} | ||||
feature remote-source-interface { | ||||
description | ||||
"This feature indicates that source-interface is supported | ||||
supported for the remote-action."; | ||||
} | ||||
feature select-adv-compare { | ||||
description | ||||
"This feature represents the ability to select messages | ||||
using the additional comparison operators when comparing | ||||
the syslog message severity."; | ||||
} | ||||
feature select-match { | ||||
description | ||||
"This feature represents the ability to select messages based | ||||
on a Posix 1003.2 regular expression pattern match."; | ||||
} | ||||
feature structured-data { | ||||
description | ||||
"This feature represents the ability to log messages | ||||
in structured-data format as per RFC 5424."; | ||||
} | ||||
feature signed-messages { | ||||
description | ||||
"This feature represents the ability to configure signed | ||||
syslog messages according to RFC 5848."; | ||||
} | ||||
grouping severity-filter { | grouping severity-filter { | |||
description | description | |||
"This grouping defines the processing used to select | "This grouping defines the processing used to select | |||
log messages by comparing syslog message severity using | log messages by comparing syslog message severity using | |||
the following processing rules: | the following processing rules: | |||
- if 'none', do not match. | - if 'none', do not match. | |||
- if 'all', match. | - if 'all', match. | |||
- else compare message severity with the specified severity | - else compare message severity with the specified severity | |||
according to the default compare rule (all messages of the | according to the default compare rule (all messages of the | |||
specified severity and greater match) or if the | specified severity and greater match) or if the | |||
select-adv-compare feature is present, the advance-compare | select-adv-compare feature is present, the advance-compare | |||
rule."; | rule."; | |||
leaf severity { | leaf severity { | |||
type union { | type union { | |||
type syslogtypes:severity; | type syslog-severity; | |||
type enumeration { | type enumeration { | |||
enum none { | enum none { | |||
value -2; | value -2; | |||
description | description | |||
"This enum describes the case where no severities | "This enum describes the case where no severities | |||
are selected."; | are selected."; | |||
} | } | |||
enum all { | enum all { | |||
value -1; | value -1; | |||
description | description | |||
skipping to change at page 19, line 31 ¶ | skipping to change at page 16, line 20 ¶ | |||
for syslog."; | for syslog."; | |||
list facility-list { | list facility-list { | |||
key "facility severity"; | key "facility severity"; | |||
ordered-by user; | ordered-by user; | |||
description | description | |||
"This list describes a collection of syslog | "This list describes a collection of syslog | |||
facilities and severities."; | facilities and severities."; | |||
leaf facility { | leaf facility { | |||
type union { | type union { | |||
type identityref { | type identityref { | |||
base syslogtypes:syslog-facility; | base syslog-facility; | |||
} | } | |||
type enumeration { | type enumeration { | |||
enum all { | enum all { | |||
description | description | |||
"This enum describes the case where all | "This enum describes the case where all | |||
facilities are requested."; | facilities are requested."; | |||
} | } | |||
} | } | |||
} | } | |||
description | description | |||
skipping to change at page 23, line 14 ¶ | skipping to change at page 19, line 56 ¶ | |||
"This leaf specifies the port number used to | "This leaf specifies the port number used to | |||
deliver messages to the remote server."; | deliver messages to the remote server."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
uses selector; | uses selector; | |||
uses structured-data; | uses structured-data; | |||
leaf facility-override { | leaf facility-override { | |||
type identityref { | type identityref { | |||
base syslogtypes:syslog-facility; | base syslog-facility; | |||
} | } | |||
description | description | |||
"If specified, this leaf specifies the facility used | "If specified, this leaf specifies the facility used | |||
to override the facility in messages delivered to the | to override the facility in messages delivered to the | |||
remote server."; | remote server."; | |||
} | } | |||
leaf source-interface { | leaf source-interface { | |||
if-feature remote-source-interface; | if-feature remote-source-interface; | |||
type if:interface-ref; | type if:interface-ref; | |||
description | description | |||
skipping to change at page 24, line 11 ¶ | skipping to change at page 20, line 53 ¶ | |||
seconds until resending the Certificate Block."; | seconds until resending the Certificate Block."; | |||
} | } | |||
leaf cert-resend-count { | leaf cert-resend-count { | |||
type uint16; | type uint16; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"This leaf specifies the maximum number of other | "This leaf specifies the maximum number of other | |||
syslog messages to send until resending the | syslog messages to send until resending the | |||
Certificate Block."; | Certificate Block."; | |||
} | } | |||
leaf max-delay { | leaf sig-max-delay { | |||
type uint16; | type uint16; | |||
units "seconds"; | units "seconds"; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"This leaf specifies when to generate a new | "This leaf specifies when to generate a new | |||
Signature Block. If this many seconds have | Signature Block. If this many seconds have | |||
elapsed since the message with the first message | elapsed since the message with the first message | |||
number of the Signature Block was sent, a new | number of the Signature Block was sent, a new | |||
Signature Block should be generated."; | Signature Block should be generated."; | |||
} | } | |||
leaf number-resends { | leaf sig-number-resends { | |||
type uint16; | type uint16; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"This leaf specifies the number of times a | "This leaf specifies the number of times a | |||
Signature Block is resent. (It is recommended to | Signature Block is resent. (It is recommended to | |||
select a value of greater than 0 in particular | select a value of greater than 0 in particular | |||
when the UDP transport [RFC5426] is used.)."; | when the UDP transport [RFC5426] is used.)."; | |||
} | } | |||
leaf resend-delay { | leaf sig-resend-delay { | |||
type uint16; | type uint16; | |||
units "seconds"; | units "seconds"; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"This leaf specifies when to send the next | "This leaf specifies when to send the next | |||
Signature Block transmission based on time. If | Signature Block transmission based on time. If | |||
this many seconds have elapsed since the previous | this many seconds have elapsed since the previous | |||
sending of this Signature Block, resend it."; | sending of this Signature Block, resend it."; | |||
} | } | |||
leaf resend-count { | leaf sig-resend-count { | |||
type uint16; | type uint16; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"This leaf specifies when to send the next | "This leaf specifies when to send the next | |||
Signature Block transmission based on a count. | Signature Block transmission based on a count. | |||
If this many other syslog messages have been sent | If this many other syslog messages have been sent | |||
since the previous sending of this Signature | since the previous sending of this Signature | |||
Block, resend it."; | Block, resend it."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
Figure 4. ietf-syslog Module | ||||
5. Usage Examples | Figure 3. ietf-syslog Module | |||
5. Usage Examples | ||||
Requirement: | Requirement: | |||
Enable console logging of syslogs of severity critical | Enable console logging of syslogs of severity critical | |||
Here is the example syslog configuration xml: | Here is the example syslog configuration xml: | |||
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0"> | <config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
<syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog" | <syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog" | |||
xmlns:syslog="urn:ietf:params:xml:ns:yang:ietf-syslog"> | xmlns:syslog="urn:ietf:params:xml:ns:yang:ietf-syslog"> | |||
<actions> | <actions> | |||
<console> | <console> | |||
<selector> | <selector> | |||
skipping to change at page 25, line 43 ¶ | skipping to change at page 22, line 39 ¶ | |||
xmlns:syslog="urn:ietf:params:xml:ns:yang:ietf-syslog"> | xmlns:syslog="urn:ietf:params:xml:ns:yang:ietf-syslog"> | |||
<actions> | <actions> | |||
<remote> | <remote> | |||
<destination> | <destination> | |||
<name>remote1</name> | <name>remote1</name> | |||
<udp> | <udp> | |||
<address>2001:db8:a0b:12f0::1</address> | <address>2001:db8:a0b:12f0::1</address> | |||
</udp> | </udp> | |||
<selector> | <selector> | |||
<facility-list> | <facility-list> | |||
<facility xmlns:syslogtypes= | <facility>auth</facility> | |||
"urn:ietf:params:xml:ns:yang:ietf-syslog-types"> | ||||
syslogtypes:auth</facility> | ||||
<severity>error</severity> | <severity>error</severity> | |||
</facility-list> | </facility-list> | |||
</selector> | </selector> | |||
</destination> | </destination> | |||
</remote> | </remote> | |||
</actions> | </actions> | |||
</syslog> | </syslog> | |||
</config> | </config> | |||
Figure 5. ietf-syslog Examples | Figure 4. ietf-syslog Examples | |||
6. Acknowledgements | 6. Acknowledgements | |||
The authors wish to thank the following who commented on this | The authors wish to thank the following who commented on this | |||
proposal: | proposal: | |||
Andy Bierman | Andy Bierman | |||
Martin Bjorklund | Martin Bjorklund | |||
Alex Campbell | Alex Campbell | |||
Alex Clemm | ||||
Jim Gibson | Jim Gibson | |||
Jeffrey Haas | Jeffrey Haas | |||
John Heasley | John Heasley | |||
Giles Heron | Giles Heron | |||
Lisa Huang | Lisa Huang | |||
Mahesh Jethanandani | Mahesh Jethanandani | |||
Jeffrey K Lange | Jeffrey K Lange | |||
Jan Lindblad | Jan Lindblad | |||
Chris Lonvick | Chris Lonvick | |||
Tom Petch | Tom Petch | |||
Juergen Schoenwaelder | Juergen Schoenwaelder | |||
Phil Shafer | Phil Shafer | |||
Jason Sterne | Jason Sterne | |||
Peter Van Horne | Peter Van Horne | |||
Kent Watsen | ||||
Bert Wijnen | Bert Wijnen | |||
Dale R Worley | ||||
Aleksandr Zhdankin | Aleksandr Zhdankin | |||
7. IANA Considerations | 7. IANA Considerations | |||
This document registers two URIs in the IETF XML registry [RFC3688]. | This document registers one URI in the IETF XML registry [RFC3688]. | |||
Following the format in RFC 3688, the following registration is | ||||
requested to be made: | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-syslog-types | ||||
Registrant Contact: The IESG. | ||||
XML: N/A, the requested URI is an XML namespace. | ||||
This document registers a YANG module in the YANG Module Names | ||||
registry [RFC6020]. | ||||
name: ietf-syslog-types namespace: urn:ietf:params:xml:ns:yang:ietf- | ||||
syslog-types | ||||
prefix: ietf-syslog-types reference: RFC XXXX | ||||
Following the format in RFC 3688, the following registration is | Following the format in RFC 3688, the following registration is | |||
requested to be made: | requested to be made: | |||
URI: urn:ietf:params:xml:ns:yang:ietf-syslog | URI: urn:ietf:params:xml:ns:yang:ietf-syslog | |||
Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
skipping to change at page 29, line 17 ¶ | skipping to change at page 26, line 9 ¶ | |||
apply for local syslog-like logging functionality. | apply for local syslog-like logging functionality. | |||
The following is an example that shows how additional facilities | The following is an example that shows how additional facilities | |||
could be added to the list of available facilities (in this example | could be added to the list of available facilities (in this example | |||
two facilities are added): | two facilities are added): | |||
module vendor-syslog-types-example { | module vendor-syslog-types-example { | |||
namespace "urn:vendor:params:xml:ns:yang:vendor-syslog-types"; | namespace "urn:vendor:params:xml:ns:yang:vendor-syslog-types"; | |||
prefix vendor-syslogtypes; | prefix vendor-syslogtypes; | |||
import ietf-syslog-types { | import ietf-syslog { | |||
prefix syslogtypes; | prefix syslogtypes; | |||
} | } | |||
organization "Example, Inc."; | organization "Example, Inc."; | |||
contact | contact | |||
"Example, Inc. | "Example, Inc. | |||
Customer Service | Customer Service | |||
E-mail: syslog-yang@example.com"; | E-mail: syslog-yang@example.com"; | |||
description | description | |||
"This module contains a collection of vendor-specific YANG type | "This module contains a collection of vendor-specific YANG type | |||
definitions for SYSLOG."; | definitions for SYSLOG."; | |||
revision 2016-11-13 { | revision 2017-03-13 { | |||
description | description | |||
"Version 1.0"; | "Version 1.0"; | |||
reference | reference | |||
"Vendor SYSLOG Types: SYSLOG YANG Model"; | "Vendor SYSLOG Types: SYSLOG YANG Model"; | |||
} | } | |||
identity vendor_specific_type_1 { | identity vendor_specific_type_1 { | |||
base syslogtypes:syslog-facility; | base syslogtypes:syslog-facility; | |||
} | } | |||
skipping to change at page 30, line 4 ¶ | skipping to change at page 26, line 41 ¶ | |||
identity vendor_specific_type_1 { | identity vendor_specific_type_1 { | |||
base syslogtypes:syslog-facility; | base syslogtypes:syslog-facility; | |||
} | } | |||
identity vendor_specific_type_2 { | identity vendor_specific_type_2 { | |||
base syslogtypes:syslog-facility; | base syslogtypes:syslog-facility; | |||
} | } | |||
} | } | |||
Authors' Addresses | Authors' Addresses | |||
Clyde Wildes, editor | Clyde Wildes, editor | |||
Cisco Systems Inc. | Cisco Systems Inc. | |||
170 West Tasman Drive | 170 West Tasman Drive | |||
San Jose, CA 95134 | San Jose, CA 95134 | |||
US | US | |||
Phone: +1 408 527-2672 | Phone: +1 408 527-2672 | |||
Email: cwildes@cisco.com | Email: cwildes@cisco.com | |||
Kiran Koushik, editor | Kiran Koushik, editor | |||
Cisco Systems Inc. | Verizon Wireless | |||
12515Research Blvd., Building 4 | 500 W Dove Rd. | |||
Austin, TX 78759 | Southlake, TX 76092 | |||
US | US | |||
Phone: +1 512 378-1482 | Phone: +1 512 650-0210 | |||
Email: kkoushik@cisco.com | Email: kirankoushik.agraharasreenivasa@verizonwireless.com | |||
End of changes. 56 change blocks. | ||||
291 lines changed or deleted | 162 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |