Füge Tickets basierend auf DynamicField zusammen

Hilfe zu Znuny Problemen aller Art
Post Reply
knizekb1
Znuny newbie
Posts: 3
Joined: 21 May 2025, 19:14
Znuny Version: 7.1.5
Real Name: Silvio Knizek
Company: B1 Systems GmbH

Füge Tickets basierend auf DynamicField zusammen

Post by knizekb1 »

Hallo,

wir betreiben einen Alertmanager, welcher über einen Webservice direkt Tickets im Znuny erzeugt.

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date">
    <xsl:output method="xml" encoding="utf-8" indent="yes" />
    <xsl:template match="RootElement">
        <xsl:for-each select="//alerts">
                <xsl:copy>
                    <UserLogin>$username</UserLogin>
                    <Password>$password</Password>
                    <Ticket>
                        <QueueID><xsl:value-of select="labels/Queue" /></QueueID>
                        <StateID><xsl:value-of select="labels/State" /></StateID>
                        <Type>Incident</Type>
                        <Priority><xsl:value-of select="labels/Priority" /></Priority>
                        <Title><xsl:value-of select="labels/alertname" /></Title>
                        <CustomerUser><xsl:value-of select="labels/UserLogin" /></CustomerUser>
                    </Ticket>
                    <Article>
                        <Subject><xsl:value-of select="annotations/summary" /></Subject>
                        <Body>&lt;p&gt;<xsl:value-of select="annotations/description" />&lt;/p&gt;&lt;p&gt;&lt;a href=&#39;<xsl:value-of select="annotations/runbook_url" />&#39;&gt;Runbook Link&lt;/a&gt;&lt;/p&gt;</Body>
                        <MimeType>text/html</MimeType>
                        <Charset>utf-8</Charset>
                    </Article>
                    <DynamicField>
                        <Name>AlertmanagerFingerprint</Name>
                        <Value><xsl:value-of select="fingerprint" /></Value>
                    </DynamicField>
                    <xsl:if test="labels/instance">
                    <DynamicField>
                        <Name>InstanceUrl</Name>
                        <Value><xsl:value-of select="labels/instance" /></Value>
                    </DynamicField>
                    </xsl:if>
                    <xsl:if test="labels/alertname">
                    <DynamicField>
                        <Name>AlertAlertname</Name>
                        <Value><xsl:value-of select="labels/alertname" /></Value>
                    </DynamicField>
                    </xsl:if>
                    <xsl:if test="labels/cluster">
                    <DynamicField>
                        <Name>AlertCluster</Name>
                        <Value><xsl:value-of select="labels/cluster" /></Value>
                    </DynamicField>
                    </xsl:if>
                    <xsl:if test="labels/container">
                    <DynamicField>
                        <Name>AlertContainer</Name>
                        <Value><xsl:value-of select="labels/container" /></Value>
                    </DynamicField>
                    </xsl:if>
                    <xsl:if test="labels/namespace">
                    <DynamicField>
                        <Name>AlertNamespace</Name>
                        <Value><xsl:value-of select="labels/namespace" /></Value>
                    </DynamicField>
                    </xsl:if>
                    <xsl:if test="labels/pod">
                    <DynamicField>
                        <Name>AlertPod</Name>
                        <Value><xsl:value-of select="labels/pod" /></Value>
                    </DynamicField>
                    </xsl:if>
                    <xsl:if test="labels/severity">
                    <DynamicField>
                        <Name>AlertSeverity</Name>
                        <Value><xsl:value-of select="labels/severity" /></Value>
                    </DynamicField>
                    </xsl:if>
                </xsl:copy>
        </xsl:for-each>
    </xsl:template>
</xsl:transform>
Jetzt hat Alertmanager keine Möglichkeit, die Ticket-ID zurückzuschreiben, liefert aber mit ``fingerprint`` selbst eine eindeutige ID.

Da die Tickets jetzt aber direkt per Webservice erstellt werden und nicht per E-Mail, wollte ich fragen, wie ich die Nachrichten basierend auf dem Fingerprint mergen kann, bevor sie eine neue Ticket-Notification herausschicken.

Oder habe ich hier ein komplett falsches Verständnis?

Gruß
Silvio
root
Administrator
Posts: 4264
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: Füge Tickets basierend auf DynamicField zusammen

Post by root »

Hallo,

Per E-Mail wäre das mit dem Filter ExternalTicketnumberRecognition möglich, aber per Webservice gibt es diese Funktion nicht in Znuny.

- Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
knizekb1
Znuny newbie
Posts: 3
Joined: 21 May 2025, 19:14
Znuny Version: 7.1.5
Real Name: Silvio Knizek
Company: B1 Systems GmbH

Re: Füge Tickets basierend auf DynamicField zusammen

Post by knizekb1 »

Danke. Schade.

Kann ich mit einem Generic Agent mich zwischen "via API wird ein Request für ein Ticket abgesetzt" und "ein Ticket wird erstellt" dazwischen klemmen mit einem Custom Module?
root
Administrator
Posts: 4264
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: Füge Tickets basierend auf DynamicField zusammen

Post by root »

knizekb1 wrote: 12 Sep 2025, 14:52 Danke. Schade.

Kann ich mit einem Generic Agent mich zwischen "via API wird ein Request für ein Ticket abgesetzt" und "ein Ticket wird erstellt" dazwischen klemmen mit einem Custom Module?
Hallo,

Nein, das wird nicht funktionieren. Du brauchst eine eigene Operation für das GenericInterface.

- Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
knizekb1
Znuny newbie
Posts: 3
Joined: 21 May 2025, 19:14
Znuny Version: 7.1.5
Real Name: Silvio Knizek
Company: B1 Systems GmbH

Re: Füge Tickets basierend auf DynamicField zusammen

Post by knizekb1 »

Wie genau würde das funktionieren? Gibt es da Dokumentation?
Post Reply