Hi,
Been away for a bit from this community due to other work pressures, but 
picking up Nifi again and successfully upgraded to 1.1.2 (apart from screwing 
up one of the nodes temporarily).
So, with the renewed interest in log processing our infrastructure team has put 
in an F5 load balancer to distribute the syslog traffic I am collecting to my 6 
node cluster. This is to stop one node being the only workhorse for receiving 
syslog traffic. I had previously used the ‘standard’ pattern of having the 
ListenSyslog processor connect to a RPG and then the rest of my data processing 
flow receive via a local port – to effectively distribute the processing load. 
I was finding though that the single node was getting too many warnings about 
buffer, sockets being full etc. – hence the external load balancing.

I am no load balancing expert, but what I believe happens is the F5 load 
balancer receives syslog traffic (over UDP) then distributes this load to all 
Nifi nodes (gives a bit of syslog traffic to each I believe). All appears fine, 
but then I start getting NPE in my node logs thus:

2017-04-25 17:16:34,832 ERROR [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.ListenSyslog 
ListenSyslog[id=0a932c37-0158-1000-0000-0000656754bf] 
ListenSyslog[id=0a932c37-0158-1000-0000-0000656754bf] failed to process due to 
java.lang.NullPointerException; rolling back session: 
java.lang.NullPointerException
2017-04-25 17:16:34,833 ERROR [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.ListenSyslog
java.lang.NullPointerException: null
        at 
org.apache.nifi.processors.standard.ListenSyslog.onTrigger(ListenSyslog.java:431)
 ~[nifi-standard-processors-1.1.2.jar:1.1.2]
        at 
org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
 ~[nifi-api-1.1.2.jar:1.1.2]
        at 
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1099)
 [nifi-framework-core-1.1.2.jar:1.1.2]
        at 
org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:136)
 [nifi-framework-core-1.1.2.jar:1.1.2]
        at 
org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47)
 [nifi-framework-core-1.1.2.jar:1.1.2]
        at 
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:132)
 [nifi-framework-core-1.1.2.jar:1.1.2]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
[na:1.8.0_51]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
[na:1.8.0_51]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
 [na:1.8.0_51]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
 [na:1.8.0_51]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
[na:1.8.0_51]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
[na:1.8.0_51]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_51]
2017-04-25 17:16:34,833 ERROR [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.ListenSyslog 
ListenSyslog[id=0a932c37-0158-1000-0000-0000656754bf] 
ListenSyslog[id=0a932c37-0158-1000-0000-0000656754bf] failed to process session 
due to java.lang.NullPointerException: java.lang.NullPointerException
2017-04-25 17:16:34,833 ERROR [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.ListenSyslog
java.lang.NullPointerException: null
        at 
org.apache.nifi.processors.standard.ListenSyslog.onTrigger(ListenSyslog.java:431)
 ~[na:na]
        at 
org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
 ~[nifi-api-1.1.2.jar:1.1.2]
        at 
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1099)
 ~[nifi-framework-core-1.1.2.jar:1.1.2]
        at 
org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:136)
 [nifi-framework-core-1.1.2.jar:1.1.2]
       at 
org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47)
 [nifi-framework-core-1.1.2.jar:1.1.2]
        at 
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:132)
 [nifi-framework-core-1.1.2.jar:1.1.2]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
[na:1.8.0_51]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
[na:1.8.0_51]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
 [na:1.8.0_51]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
 [na:1.8.0_51]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
[na:1.8.0_51]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
[na:1.8.0_51]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_51]
2017-04-25 17:16:34,833 WARN [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.ListenSyslog 
ListenSyslog[id=0a932c37-0158-1000-0000-0000656754bf] Processor 
Administratively Yielded for 1 sec due to processing failure
2017-04-25 17:16:34,833 WARN [Timer-Driven Process Thread-7] 
o.a.n.c.t.ContinuallyRunProcessorTask Administratively Yielding 
ListenSyslog[id=0a932c37-0158-1000-0000-0000656754bf] due to uncaught 
Exception: java.lang.NullPointerException
2017-04-25 17:16:34,834 WARN [Timer-Driven Process Thread-7] 
o.a.n.c.t.ContinuallyRunProcessorTask

is what I’m trying to do screwing up the processor? If so, is this a) something 
that can be done with a load balancer – I’ve seen blog posts about putting an 
HA proxy in front of Nifi for other ListXX processors but not ListenSyslog, and 
b) if can’t be done is there suggestions on how I can better distribute load 
other than the standard pattern using RPG (which only distributes the 
processing of the data once it is in).

Many thanks
Conrad


SecureData, combating cyber threats
______________________________________________________________________ 
The information contained in this message or any of its attachments may be 
privileged and confidential and intended for the exclusive use of the intended 
recipient. If you are not the intended recipient any disclosure, reproduction, 
distribution or other dissemination or use of this communications is strictly 
prohibited. The views expressed in this email are those of the individual and 
not necessarily of SecureData Europe Ltd. Any prices quoted are only valid if 
followed up by a formal written quote.

SecureData Europe Limited. Registered in England & Wales 04365896. Registered 
Address: SecureData House, Hermitage Court, Hermitage Lane, Maidstone, Kent, 
ME16 9NT

Reply via email to