blob: cc54163fa55d8032278df29887a93358bce99cdc [file] [log] [blame]
## ------------------------------------------
## Retrieve messages from Voltha alarm topic
## ------------------------------------------
input {
kafka {
bootstrap_servers => "kafka:9092"
topics => ["voltha.alarms"]
tags => [ "alarm" ]
type => "voltha_alarms"
}
}
## ------------------------------------------
## The message field is a JSON block.
## Break it down in multiple fields
## for easy extraction
## ------------------------------------------
filter {
json{
source => "message"
}
}
## ------------------------------------------
## Intercept alarm messages and manipulate
## the content prior to injection in OpenNMS
## ------------------------------------------
filter {
if "alarm" in [tags] {
mutate {
add_field => { "[@metadata][alarm_id]" => "%{id}" }
add_field => { "[@metadata][resource_id]" => "%{resource_id}" }
add_field => { "[@metadata][description]" => "%{description}" }
add_field => { "[@metadata][type]" => "%{type}" }
add_field => { "[@metadata][category]" => "%{category}" }
add_field => { "[@metadata][state]" => "%{state}" }
add_field => { "[@metadata][raised_time]" => "%{raised_ts}" }
add_field => { "[@metadata][reported_time]" => "%{reported_ts}" }
add_field => { "[@metadata][changed_time]" => "%{changed_ts}" }
add_field => { "[@metadata][context]" => "%{context}" }
add_field => { "[@metadata][service]" => "voltha" }
add_field => { "[@metadata][interface]" => "localhost" }
add_tag => "opennms"
}
if [state] == "RAISED" {
mutate {
add_field => { "[@metadata][uei]" => "uei.opennms.org/vendor/voltha/alarmRaised" }
add_field => { "[@metadata][severity]" => "%{severity}" }
}
} else if [state] == "CLEARED" {
mutate {
add_field => { "[@metadata][uei]" => "uei.opennms.org/vendor/voltha/alarmCleared" }
add_field => { "[@metadata][severity]" => "Normal" }
}
}
}
}
## ------------------------------------------
## View incoming messages (for debugging)
## ------------------------------------------
output {
stdout {
codec => rubydebug { metadata => true }
}
}
## ------------------------------------------
## Forward alarm messages to OpenNMS
## ------------------------------------------
output {
if "opennms" in [tags] {
opennms {
opennms_server_hosts => {
"10.100.198.220" => 5817
}
opennms_event_timezone => "utc"
opennms_event_service => "[@metadata][service]"
opennms_event_nodeid => 0
opennms_event_interface => "[@metadata][interface]"
opennms_event_uei => "[@metadata][uei]"
opennms_event_severity => "[@metadata][severity]"
opennms_event_description => "[@metadata][description]"
opennms_event_logmsg => "logmsg"
opennms_event_parms => {
"AlarmId" => "[@metadata][alarm_id]"
"ResourceId" => "[@metadata][resource_id]"
"Description" => "[@metadata][description]"
"Type" => "[@metadata][type]"
"Category" => "[@metadata][category]"
"State" => "[@metadata][state]"
"Severity" => "[@metadata][severity]"
"RaisedTime" => "[@metadata][raised_time]"
"ReportedTime" => "[@metadata][reported_time]"
"ChangedTime" => "[@metadata][changed_time]"
"Context" => "[@metadata][context]"
}
opennms_event_parms_order => [ "AlarmId", "ResourceId", "Description", "Type", "Category", "State", "Severity", "RaisedTime", "ReportedTime", "ChangedTime", "Context" ]
}
}
}