That would make things a lot simpler but that has never worked. Using CLASSPATH on the command line is completely ignored for me. When I moved my jar with the customized deserializer to the logstash-1.5.4/vendor/jruby/lib and started logstash, the error message finally changed to:
kafka client threw exception, restarting {:exception=>#<NameError: cannot link Java class com....etl.avro.schema.kafka.RawLog2KafkaSerializer, probable missing dependency: kafka/serializer/Encoder>, :level=>:warn}
which is the class it inherits from. After copying the symbolic link from my maven repo to verdor/jruby/lib, I got errors from the plug in, like :
Couldn't find any input plugin named 'kafka'. Are you sure this is correct? Trying to load the kafka input plugin resulted in this error: cannot link Java class kafka.consumer.ConsumerIterator, probable missing dependency: scala/ScalaObject
Couldn't find any input plugin named 'kafka'. Are you sure this is correct? Trying to load the kafka input plugin resulted in this error: load error: jruby-kafka/consumer -- java.lang.NoClassDefFoundError: scala/reflect/ClassManifest
Couldn't find any input plugin named 'kafka'. Are you sure this is correct? Trying to load the kafka input plugin resulted in this error: load error: jruby-kafka/consumer -- java.lang.NoClassDefFoundError: org/apache/log4j/Logger
Ultimately, the jars I had to copy were my customized deserializer (lijit-storm-avro-20150708.jar), kafka_2.9.2-0.8.1.jar, log4j-1.2...jar, scala-libarary-2.9.2.jar.
SO, I linked those jars in from the maven repository.
Now, when I run, I get :
$ ./logstash -f ../logstash-avro.conf
Exception in thread "<kafka" java.lang.UnsupportedOperationException
at java.lang.Thread.stop(Thread.java:869)
at org.jruby.RubyThread.exceptionRaised(RubyThread.java:1221)
at org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:112)
at java.lang.Thread.run(Thread.java:745)
Logstash startup completed
Logstash shutdown completed
There is no logging information for me to troubleshoot from. I've been trying hard to work with someone at elastic because we have several applications we'd like to apply ELK toward in my company but I haven't been able to get this first one off the ground, and haven't been able to talk with anyone there since I first started having problems weeks ago. I thought I was making progress this morning when I was finally getting a new message but I see logstash is finally dead in the water.
Can you please help me speak with someone elastic so that I can move forward in evaluating whether we can use these products? I'd really appreciate it. The alternative approach I'm going to pursue is to write directly to elasticsearch because it doesn't seem like a cutomized avro deserializer from kafka is supported in logstash anymore. I'd seen success with logstash at my previous company so I felt more optimistic about it than I do now, but that was reading directly from files. There was no customization involved.