Skip to content

Latest commit

 

History

History
58 lines (51 loc) · 2.75 KB

File metadata and controls

58 lines (51 loc) · 2.75 KB

Apache Log4j Samples: connect to a Flume agent via Avro

This sample uses the classes in the sample log4j-samples-flume-common project. It will randomly pick from the events defined there and send them to Flume. At the same time it will intermix some random non-audit events.

To run this sample:

  1. Run mvn install on the log4j-samples-flume-common project.

  2. Download and install Apache Flume.

  3. Copy the flume-conf.properties to the conf directory of where Flume was installed.

  4. In a terminal window start flume using

    bin/flume-ng agent -n agent -c conf -f conf/flume-conf.properties
  5. Verify Flume started and configured an Avro source, a memory channel and a logger sink by reviewing the startup log.

  6. In a separate terminal window run mvn jetty:run in this project.

  7. Verify the Flume appender connected to the Flume agent by finding

    Starting FlumeAvroManager FlumeAvro[localhost:8800]

    in the Jetty log and that there are no exceptions and also by seeing something like

    /127.0.0.1:53351 => /127.0.0.1:8800] OPEN

    in the Flume log.

  8. In a separate terminal window in the project directory run

    tail -f target/logs/app.log

    to see the application generate non-audit logs.

  9. In the browser go to url http://localhost:8080/flumeAgent/start.do. A "Started" message should appear on the screen.

  10. After verifying logs are being written click on the Stop button in the browser page.

Note that the Flume agent must be started for the FlumeAppender to successfully start. If the Flume agent is stopped an exception will be thrown for each event that occurs while the agent is down. When the agent restarts the appender will automatically reconnect.

The output from the Flume agent will include the generated Flume events. Since the events are sent individually Avro will print the full event and Flume will print a hex dump of the first few bytes of the event.