Graylog plugin for JIRA with templating of JIRA issue title and JIRA issue message
This project is maintained by magicdude4eva
A Graylog alarm callback plugin that integrates Graylog into JIRA.
If you use an application server such as Tomcat, we suggest that you use Logstash to pre-process your log-files and ship the log-records via Gelf output into Graylog.
A very reliable way of processing Tomcat logs can be achieved by:
sincedb_path
and sincedb_write_interval
%{LOGLEVEL} %{timestamp} %{threadname} %{MESSAGE}
match => { message => [ "(^.+Exception: .+)|(^.+Stacktrace:.+)" ] }
With the above you can easily setup a stream where your condition is as simple as "type must match exactly tomcat AND tags must match exactly exception
"
This plugin has been tested with Graylog v1.3.3 and JIRA v7.0.10.
Download the latest release and copy the .jar
file into your Graylog plugin directory (default is in /usr/share/graylog-server/plugin
).
If you are unsure about the plugin location, do a grep -i plugin_dir /etc/graylog/server/server.conf
.
Restart Graylog via systemctl restart graylog-server
Bug
). Ensure that the issue type matches your project settingsMinor
). Ensure that the issue priority matches your project settings\n
". The message-template also accepts [PLACEHOLDERS]
[LAST_MESSAGE.PATH]
" would display the full logpath where the message originated from.[MESSAGE_REGEX]
(see Message regex). Can also include any field via [LAST_MESSAGE.FIELDNAME]
If a log-message contains:
H/M 07/03/16 15:37:23 tcbobe-56 OrderStructureIO java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (PRODZA.ORDERS_PK) violated
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:225)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:53)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:943)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4798)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:4875)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1361)
With the following settings:
([a-zA-Z_.]+(?!.*Exception): .+)
[Graylog-[LAST_MESSAGE.SOURCE]] [MESSAGE_REGEX]
*Alert triggered at:* \n [ALERT_TRIGGERED_AT]\n\n *Stream URL:* \n [STREAM_URL]\n\n*Source:* \n [LAST_MESSAGE.SOURCE]\n\n *Message:* \n [LAST_MESSAGE.MESSAGE]\n\n
The JIRA issue will be logged as follows:
Original idea from https://github.com/tjackiw/graylog-plugin-jira