Plugin Development

I forked the 2.2 branch of graylog-plugin-sample and got it working for 2.3 with a few minor tweaks. I’ve submitted a pull request to update the main project.

Until then, you can try it out here:

git clone -b "2.3" https://github.com/billmurrin/graylog-plugin-sample.git

Now you can clone the 2.3.0 branch of the Graylog repo, run npm install and then build your vendor manifest

git clone -b "2.3.0" https://github.com/Graylog2/graylog2-server.git
cd graylog2-server/graylog2-web-interface
npm install
webpack --config webpack.vendor.js

After that is done, in the graylog-plugin-sample folder, do the following:

npm install
mvn package

The mvn package should succeed and you should be able to add the jar from the graylog-plugin-sample/target folder to your plugin directory on your Graylog server and have it run.

If you want to do hot-reloading with the webpack dev server (makes working with React way easier) you need to modify the graylog2-server/graylog2-web-interface/config.js file to suit your needs and then run npm start.

cd graylog2-server/graylog2-web-interface

#Modify the config.js file
vim config.js

#Start the server
npm start

Your plugin will be automatically included as long as it meets the following criteria set forth in the graylog2-server/graylog2-web-interface/webpack.combined.config.js file.

  1. You plugin directory is located two directories away (…/…/graylog-plugin-sample) from the graylog2-web-interface directory
  2. The name of the plugin folder starts with graylog-plugin-

Example

MAIN_DIR
|- graylog2-server (../)
     |- graylog2-web-interface (../../)
|- graylog2-plugin-sample (../)

I hope that makes sense, please let me know if I can be of any assistance.