You're on your way to the next level! Join the Kudos program to earn points and save your progress.
Level 1: Seed
25 / 150 points
Next: Root
1 badge earned
Challenges come and go, but your rewards stay with you. Do more to earn more!
What goes around comes around! Share the love by gifting kudos to your peers.
Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!
Join now to unlock these features and more
The Atlassian Community can help you and your team get more value out of Atlassian products and practices.
Hi,
We would like to use mail handler for Nagios alerts. We would like to create Jira a ticket whenever an alert receive, if an issue exist with same subject then it should add email into comment. I am trying the following script but it is not adding email into comment, it is only creating tickets whenever I send a test email, even I'm sending the same email. Am I missing something?
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.service.util.ServiceUtils
import com.atlassian.jira.service.util.handler.MessageUserProcessor
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.user.util.UserManager
import com.atlassian.mail.MailUtils
def userManager = ComponentAccessor.getComponent(UserManager)
def projectManager = ComponentAccessor.getProjectManager()
def issueFactory = ComponentAccessor.getIssueFactory()
def messageUserProcessor = ComponentAccessor.getComponent(MessageUserProcessor)
def subject = message.getSubject() as String
def issue = ServiceUtils.findIssueObjectInString(subject)
if (issue) {
return
}
ApplicationUser user = userManager.getUserByName("admin")
ApplicationUser reporter = messageUserProcessor.getAuthorFromSender(message) ?: user
def project = projectManager.getProjectObjByKey("ALERT")
def issueObject = issueFactory.getIssue()
issueObject.setProjectObject(project)
issueObject.setSummary(subject)
issueObject.setDescription(MailUtils.getBody(message)) issueObject.setIssueTypeId(project.issueTypes.find { it.name == "Task" }.id) issueObject.setReporter(reporter)
messageHandlerContext.createIssue(user, issueObject)
Here is the email example
Subject: PROBLEM Service Alert: td-application-01/Service Check: PRT is CRITICAL
***** Nagios Alert *****
Notification Type: PROBLEM
Service: Service Check: PRT
Host: td-application-01
Address: td-application-01
State: CRITICALDate/Time: Thu Jul 30 14:41:59 PST 2020
Thank you
Do follow up emails from Nagios have the Jira issue key in the subject? I don't see that anywhere.
No there isn't an issue key. Below is the an example of the follow up email. However I sent the above email multiple time and each time it created a new ticket. If a system is down it keeps sending an alert after every hour till issue get resolved. Once issue gets resolved then it will send the Recovery email.
For example if the above system is down for 4 hours, it will send 4 "Problem" emails and once it gets resolved then it will send a "Recovery" email. We want the Jira to create only one ticket for all. The first 4 emails would be the same email with and final one will be a little bit different, as you can see it in the below example. How we can accomplish that? Thank for your help.
Subject: Recovery Service Alert: td-application-01/Service Check: PRT is OK
***** Nagios Alert *****
Notification Type: Recovery
Service: Service Check: PRT
Host: td-application-01
Address: td-application-01
State: OKDate/Time: Thu Jul 30 14:41:59 PST 2020
Thank you,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.