Page History
Table of Contents |
---|
Introduction
JS7 - Log Management is offered from a service compliant to RFC5424, aka Syslog Protocol.
...
offered with JOC Cockpit for monitoring of log output and dispatch of notifications created by Controller, Agent & JOC Cockpit instances.
The Log Notification
...
Service is available from the active JOC Cockpit instance within the scope
...
of JS7 - Services.
- Service
- The service is used to collect warnings and errors from log output of Controller & Agent instances and to create JS7 - Notifications. JOC Cockpit notifications are created directly and without use of the service.
- The service is compliant to RFC5424, aka Syslog Protocol.
- The Log Management Service service offers restart capabilities: in case of fail-over or switch-over of JOC Cockpit the Log Management Notification Service will become available from the active JOC Cockpit instance.
- Clients
- The JS7 products, JOC Cockpit, Controller and Agents can Controller & Agent instances act as clients to the Log Management Notification Service. The products can be configured to report warnings and errors from log output to the JS7 Log Management Notification Service.In addition, log output of JS7 products is always written to local log files, for details see JS7 - Log Configuration for use with System Notifications.
- Users have a choice to enable forwarding of log output per instance of a JS7 product Controller & Agent during installation or later on by adjusting the Log4j2 configuration.
- User Interface
- The
...
- JOC Cockpit offers System Notifications from the JS7 - Monitor view.
- The JOC Cockpit offers JS7 - Notifications - Configuration for forwarding notifications by mail, from command line tools etc.
...
Display feature availability | ||
---|---|---|
|
...
Configuration
...
Items
The Log Notification Service is configured with the JS7 - Settingspage.
Section | Setting | Default Value | Required | Purpose |
---|---|---|---|---|
lognotification | log_server_active | false | no | Specifies that the Log Notification Service is started with JOC Cockpit. |
| 4245 | no | Specifies the UDP port to which the Log Notification Service will listen. | |
| 1000 | no | Specifies the max. number of messages per second that the Log Notification Service will process. |
Delimitation
By default the Log4j configuration of JS7 products will not make use of the Log Management Service. Instead, users choose for which instances of JS7 products they want to send log output to the Log Management Service.
Controller Log4j2 Configuration
The following Log4j2 configuration is available from the log4j2.xml-example
file in the Controller's <controller-data>/config
directory:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<Appenders>
<Syslog name="RFC5424" format="RFC5424" host="localhost" port="4514"
protocol="UDP" charset="UTF-8" facility="LOCAL0" newLine="false">
<PatternLayout pattern="<134>1 %d{ISO8601}{ETC/UTC}Z ${hostName} JS7 Controller {
"host":"${hostName}",
"controllerId":"${ControllerId}",
"thread":"%t",
"level":"%p",
"logger":"%c{1}",
"message":"%enc{%m}{JSON}",
"thrown":"%enc{%throwable{10}}{JSON}"
}"
/>
</Syslog>
</Appenders> |
Explanations:
- tbd
Agent Log4j2 Configuration
The following Log4j2 configuration is available from the log4j2.xml-example
file in the Agent's <agent-data>/config
directory:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<Appenders>
<Syslog name="RFC5424" format="RFC5424" host="localhost" port="4514"
protocol="UDP" charset="UTF-8" facility="LOCAL0" newLine="false">
<PatternLayout pattern="<134>1 %d{ISO8601}{ETC/UTC}Z ${hostName} JS7 Controller {
"host":"${hostName}",
"controllerId":"${ControllerId}",
"agentId":"...",
"level":"%p",
"logger":"%c{1}",
"message":"%enc{%m}{JSON}",
"thrown":"%enc{%throwable{10}}{JSON}"
}"
/>
</Syslog>
</Appenders> |
Explanations:
- tbd
JOC Cockpit Log4j2 Configuration
The following Log4j2 configuration is available from the log4j2.xml-example
file in the JOC Cockpit's <jetty-base>/resources/joc
directory:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<Appenders>
<Syslog name="RFC5424" format="RFC5424" host="localhost" port="4514"
protocol="UDP" charset="UTF-8" facility="LOCAL0" newLine="false">
<PatternLayout pattern="<134>1 %d{ISO8601}{ETC/UTC}Z ${hostName} JS7 Controller {
"host":"${hostName}",
"controllerId":"${ControllerId}",
"agentId":"...",
"level":"%p",
"logger":"%c{1}",
"message":"%enc{%m}{JSON}",
"thrown":"%enc{%throwable{10}}{JSON}"
}"
/>
</Syslog>
</Appenders> |
Explanations:
- tbd
Delimitation
The JS7 Log Management Service offers access to log output of JS7 products from JOC Cockpit as a central point of monitoring & control.
Due to limitations of the underlying Syslog Protocol the JS7 Log Management Notification Service does not meet elaborated requirements for security, resiĺience and high availability.
The Log Management Notification Service is offered for convenience purposes, the authoritative source of log output remains with log files created by JS7 products.
Security
The Syslog Protocoll does not cover authentication of Clients:
- Log messages could can be faked by malicious 3rd-party components as the JS7 Log Management Notification Service cannot authenticate and reliably identify the source of log output.
- Users are warned in case that they take action based on messages arriving with the JS7 Log Management Notification Service: severe messages that suggest immediate action should be verified from the JS7 product's log files.
...
- Flooding of messages is a possible scenario for attacks that which is not covered by the Syslog Protocol.
- The JS7 Log Management Notification Service will try to identify such scenarios and will shut down. The behavior is intended to keep the JOC Cockpit operational in case of DNS attackslimit processing of messages.
Resilience
The Log Management Notification Service accepts messages sent via the UDP protocol only.
- TCP connections are out of scope due to their blocking nature.
- UDP messages are accepted if they do not exceed 4000 characters..
The Log Management Notification Service performs input sanitization.
- Messages sent to the Log Management Notification Service must be compliant to the above Log4j configuration and otherwise will be dropped.
- Messages carrying unacceptable input will be dropped.
High Availability
The JS7 Log Management Notification Service offers restart capabilities when operated from a JOC Cockpit cluster:
- This allows the service to switch from a current JOC Cockpit instance to the next active JOC Cockpit instance.
- Switching to a different host operating the active JOC Cockpit instance includes that the hostname of the Log Management Notification Service will change.
- Users can apply a FailoverAppender with the JS7 - Log Configuration for use with System Notifications to switch between JOC Cockpit instances in case of unavailability.
- Users can set up a Proxy Service that will forward log messages to the currently active JOC Cockpit instance.
If no JOC Cockpit instance is active, then no log messages can be picked up:
...