Question

How to create tickets with Open-Tickets in command line

  • 14 November 2022
  • 7 replies
  • 331 views

Badge +4

Hi,

We are using Centreon Open Tickets (Version centreon-open-tickets-21.10.1-1).

It has been configured with rules to create ticket on our Jira infra.

Afiter follwowing this documentation : 

Integration Open-Tickets - Accueil DIS - Centreon - Wiki (vaudoise.ch)

… we can now open a ticket manually  from the’Custom View’ page… this iw working Well.

 

But now we would like that tickets are created automatically when a Centreon Services reaches it critical hard State.

To do this, I need to configure a Notification Command : but its means that we must to know the syntax on how to create a ticket in command line.

On our poller we installed this package:

centreon-plugin-Notification-Centreon-Opentickets-Api-20221017-094659.el7.centos.noarch

It provides this plugin : ‘/usr/lib/centreon/plugins/centreon_notification_centreon_opentickets_api.pl’

 

The modes availables are .

   close-host
   close-service
   open-host
   open-service
 

… So we should be able to create a ticket in command line with this plugin, but I cannot find the correct Syntax :

Currently I tried : 

/usr/lib/centreon/plugins/centreon_notification_centreon_opentickets_api.pl --plugin notification::centreon::opentickets::api::plugin --mode open-service --rule-name '$MY_RULENAME' --host-id $MYHOST_ID--service-id $MYSERVICE_ID--service-state WARNING --service-output TEST --api-hostname $MY_CENTREON_ALIASh --api-proto https --api-port 443 --api-username apirest_user --api-password "XXXX" 

 

NOTE: The arguments beginning by $ are some variables on my side : Centreon server, Service ID … etc.

… But I get thi error “UNKNOWN: Authentication error [code: '404'] [message: 'Object not found']””

 

Did domeone tried to open Jira Tickets automatically (Or in command line)  ?

 

Thanks 


7 replies

Userlevel 4
Badge +13

👋

 

@glepinay can you run your command with --debug to see what else we get. Wondering if the “ --api-hostname “ is solving properly.

 

🤔

Userlevel 4
Badge +14

Hello,

When you solved the usage problem of the centreon-plugins, you could try an other way to close and open ticket with CRITICAL and OK state by using the event handler.

More specially the Global Event Handler : Auto Remediation | Centreon Documentation (All Hosts and All Services of your poller) 

You could adapt this script Auto Remediation | Centreon Documentation just for the HARD State Type for State OK to close ticket and the HARD State Type for State CRITICAL to open it.

Regards,

Greg

Badge +4

Hi,

 

Here is below the command line I tried:

/usr/lib/centreon/plugins/centreon_notification_centreon_opentickets_api.pl --plugin notification::centreon::opentickets::api::plugin --mode open-service --rule-name 'OpenTickets-Vaudoise' --host-id 1959 --service-id 6756 --service-state WARNING --service-output TEST_GLE --api-hostname centreon.vaudoise.ch --api-proto https --api-port 443 --url-path '/centreon/api/' --api-username apirest_user --api-password "XXXXXXX" --debug

I tried with different --api-hostname (Fqdn, hostname, Ip address9 …. but the result is the same.

 

THE RESULT IS:

 

UNKNOWN: Authentication error [code: '404'] [message: 'Object not found']
======> request send
POST https://centreon.vaudoise.ch:443/centreon/api/index.php?action=authenticate
Accept: application/json
User-Agent: centreon::plugins::backend::http::useragent
Content-Type: application/x-www-form-urlencoded

password=Maging32_04&username=apirest_user
======> response done
HTTP/1.1 200 OK
Connection: Keep-Alive
Date: Wed, 16 Nov 2022 06:41:02 GMT
Server: Apache
.….………….…………………………….………….
Keep-Alive: timeout=5, max=100
X-Frame-Options: sameorigin
X-Powered-By: PHP/8.0.18

{"authToken":"HJVsLdWFipre3yATvo2gG0g2OOblvxinqx8OFrQuQga908mv4Te0fucOb5wttVSu"}
======> request send
POST https://centreon.vaudoise.ch:443/centreon/api/index.php?object=centreon_openticket&action=openService
Accept: application/json
User-Agent: centreon::plugins::backend::http::useragent
Content-Type:  application/json
Centreon-Auth-Token:  HJVsLdWFipre3yATvo2gG0g2OOblvxinqx8OFrQuQga908mv4Te0fucOb5wttVSu

{"rule_name":"OpenTickets-Vaudoise","service_output":"TEST_GLE","host_id":"1959","service_state":"WARNING","service_id":"6756","select":{},"extra_properties":{}}
======> response done
HTTP/1.1 404 Object not found
Date: Wed, 16 Nov 2022 06:41:02 GMT
Server: Apache
……….……….….…………...
X-Frame-Options: sameorigin
X-Powered-By: PHP/8.0.18

"Method not found"
======> request send
POST https://centreon.vaudoise.ch:443/centreon/api/index.php?action=authenticate
Accept: application/json
User-Agent: centreon::plugins::backend::http::useragent
Content-Type: application/x-www-form-urlencoded

password=Maging32_04&username=apirest_user
======> response done
HTTP/1.1 200 OK
Date: Wed, 16 Nov 2022 06:41:02 GMT
Server: Apache
Content-Type: application/json;charset=utf-8
Client-Date: Wed, 16 Nov 2022 06:41:03 GMT
Client-Peer: 172.21.3.55:443
Client-Response-Num: 3
Client-SSL-Cert-Issuer: /DC=ch/DC=vaudoise/CN=Vaudoise Assurances Issuing CA 01
Client-SSL-Cert-Subject: /C=CH/ST=VD/L=Lausanne/O=Vaudoise Assurances/OU=Vaudoise Assurances IT/CN=centreon.vaudoise.ch
Client-SSL-Cipher: ECDHE-RSA-AES256-GCM-SHA384
Client-SSL-Socket-Class: IO::Socket::SSL
Client-SSL-Warning: Peer certificate not verified
Client-Transfer-Encoding: chunked
X-Frame-Options: sameorigin
X-Powered-By: PHP/8.0.18

{"authToken":"ku1aAXKv9tsSePnBBn2BQ3AEE5QKaHDSDjxAjyS2RNbDtOA8hAGTPl+UKu3XbYc4"}
======> request send
POST https://centreon.vaudoise.ch:443/centreon/api/index.php?object=centreon_openticket&action=openService
Accept: application/json
User-Agent: centreon::plugins::backend::http::useragent
Content-Type:  application/json
Centreon-Auth-Token:  ku1aAXKv9tsSePnBBn2BQ3AEE5QKaHDSDjxAjyS2RNbDtOA8hAGTPl+UKu3XbYc4

{"rule_name":"OpenTickets-Vaudoise","service_output":"TEST_GLE","host_id":"1959","service_state":"WARNING","service_id":"6756","select":{},"extra_properties":{}}
======> response done
HTTP/1.1 404 Object not found
Date: Wed, 16 Nov 2022 06:41:03 GMT
Server: Apache
Content-Type: application/json;charset=utf-8
Client-Date: Wed, 16 Nov 2022 06:41:03 GMT
Client-Peer: 172.21.3.55:443
Client-Response-Num: 4
Client-SSL-Cert-Issuer: /DC=ch/DC=vaudoise/CN=Vaudoise Assurances Issuing CA 01
Client-SSL-Cert-Subject: /C=CH/ST=VD/L=Lausanne/O=Vaudoise Assurances/OU=Vaudoise Assurances IT/CN=centreon.vaudoise.ch
Client-SSL-Cipher: ECDHE-RSA-AES256-GCM-SHA384
Client-SSL-Socket-Class: IO::Socket::SSL
Client-SSL-Warning: Peer certificate not verified
Client-Transfer-Encoding: chunked
X-Frame-Options: sameorigin
X-Powered-By: PHP/8.0.18

"Method not found"
 

 

If I triy the same command but with this URL :  --url-path '/centreon/api/latest/'

I get a different error :

UNKNOWN: Authentication error [code: '500'] [message: 'Internal Server Error']

======> response done
HTTP/1.1 500 Internal Server Error
{"code":500,"message":"No route found for \"POST \/\""}

 

Thanks

 

 

 

Badge +4

Hi,

 

Here is below the command line I tried:

/usr/lib/centreon/plugins/centreon_notification_centreon_opentickets_api.pl --plugin notification::centreon::opentickets::api::plugin --mode open-service --rule-name 'OpenTickets-Vaudoise' --host-id 1959 --service-id 6756 --service-state WARNING --service-output TEST_GLE --api-hostname centreon.vaudoise.ch --api-proto https --api-port 443 --url-path '/centreon/api/' --api-username apirest_user --api-password "XXXXXXX" --debug

I tried with different --api-hostname (Fqdn, hostname, Ip address9 …. but the result is the same.

 

THE RESULT IS:

 

UNKNOWN: Authentication error [code: '404'] [message: 'Object not found']
======> request send
POST https://centreon.vaudoise.ch:443/centreon/api/index.php?action=authenticate
Accept: application/json
User-Agent: centreon::plugins::backend::http::useragent
Content-Type: application/x-www-form-urlencoded

password=XXXXXX&username=apirest_user
======> response done
HTTP/1.1 200 OK
Connection: Keep-Alive
Date: Wed, 16 Nov 2022 06:41:02 GMT
Server: Apache
.….………….…………………………….………….
Keep-Alive: timeout=5, max=100
X-Frame-Options: sameorigin
X-Powered-By: PHP/8.0.18

{"authToken":"HJVsLdWFipre3yATvo2gG0g2OOblvxinqx8OFrQuQga908mv4Te0fucOb5wttVSu"}
======> request send
POST https://centreon.vaudoise.ch:443/centreon/api/index.php?object=centreon_openticket&action=openService
Accept: application/json
User-Agent: centreon::plugins::backend::http::useragent
Content-Type:  application/json
Centreon-Auth-Token:  HJVsLdWFipre3yATvo2gG0g2OOblvxinqx8OFrQuQga908mv4Te0fucOb5wttVSu

{"rule_name":"OpenTickets-Vaudoise","service_output":"TEST_GLE","host_id":"1959","service_state":"WARNING","service_id":"6756","select":{},"extra_properties":{}}
======> response done
HTTP/1.1 404 Object not found
Date: Wed, 16 Nov 2022 06:41:02 GMT
Server: Apache
……….……….….…………...
X-Frame-Options: sameorigin
X-Powered-By: PHP/8.0.18

"Method not found"
======> request send
POST https://centreon.vaudoise.ch:443/centreon/api/index.php?action=authenticate
Accept: application/json
User-Agent: centreon::plugins::backend::http::useragent
Content-Type: application/x-www-form-urlencoded

password=XXXXX&username=apirest_user
======> response done
HTTP/1.1 200 OK
Date: Wed, 16 Nov 2022 06:41:02 GMT
Server: Apache
Content-Type: application/json;charset=utf-8
Client-Date: Wed, 16 Nov 2022 06:41:03 GMT
Client-Peer: 172.21.3.55:443
Client-Response-Num: 3
Client-SSL-Cert-Issuer: /DC=ch/DC=vaudoise/CN=Vaudoise Assurances Issuing CA 01
Client-SSL-Cert-Subject: /C=CH/ST=VD/L=Lausanne/O=Vaudoise Assurances/OU=Vaudoise Assurances IT/CN=centreon.vaudoise.ch
Client-SSL-Cipher: ECDHE-RSA-AES256-GCM-SHA384
Client-SSL-Socket-Class: IO::Socket::SSL
Client-SSL-Warning: Peer certificate not verified
Client-Transfer-Encoding: chunked
X-Frame-Options: sameorigin
X-Powered-By: PHP/8.0.18

{"authToken":"ku1aAXKv9tsSePnBBn2BQ3AEE5QKaHDSDjxAjyS2RNbDtOA8hAGTPl+UKu3XbYc4"}
======> request send
POST https://centreon.vaudoise.ch:443/centreon/api/index.php?object=centreon_openticket&action=openService
Accept: application/json
User-Agent: centreon::plugins::backend::http::useragent
Content-Type:  application/json
Centreon-Auth-Token:  ku1aAXKv9tsSePnBBn2BQ3AEE5QKaHDSDjxAjyS2RNbDtOA8hAGTPl+UKu3XbYc4

{"rule_name":"OpenTickets-Vaudoise","service_output":"TEST_GLE","host_id":"1959","service_state":"WARNING","service_id":"6756","select":{},"extra_properties":{}}
======> response done
HTTP/1.1 404 Object not found
Date: Wed, 16 Nov 2022 06:41:03 GMT
Server: Apache
Content-Type: application/json;charset=utf-8
Client-Date: Wed, 16 Nov 2022 06:41:03 GMT
Client-Peer: 172.21.3.55:443
Client-Response-Num: 4
Client-SSL-Cert-Issuer: /DC=ch/DC=vaudoise/CN=Vaudoise Assurances Issuing CA 01
Client-SSL-Cert-Subject: /C=CH/ST=VD/L=Lausanne/O=Vaudoise Assurances/OU=Vaudoise Assurances IT/CN=centreon.vaudoise.ch
Client-SSL-Cipher: ECDHE-RSA-AES256-GCM-SHA384
Client-SSL-Socket-Class: IO::Socket::SSL
Client-SSL-Warning: Peer certificate not verified
Client-Transfer-Encoding: chunked
X-Frame-Options: sameorigin
X-Powered-By: PHP/8.0.18

"Method not found"
 

 

If I triy the same command but with this URL :  --url-path '/centreon/api/latest/'

I get a different error :

UNKNOWN: Authentication error [code: '500'] [message: 'Internal Server Error']

======> response done
HTTP/1.1 500 Internal Server Error
{"code":500,"message":"No route found for \"POST \/\""}

 

Thanks

 

 

 

 

Userlevel 4
Badge +14

Hello,

I'm not user of OpenTicket module.

You could edit your post, because we could seen credential.

I can see authentication is OK, but the service, or host you request seems not found.

Are you sure about the service_id and/or host_id are good.

I don't understand, you have a Object not Found and a Method not found.

About the syntax of command i prefer use = and ‘ like you have exemple here : https://docs.centreon.com/docs/integrations/notifications/plugin-telegram/#command-creation-in-centreon

So :

/usr/lib/centreon/plugins/centreon_notification_centreon_opentickets_api.pl --plugin=notification::centreon::opentickets::api::plugin --mode=’open-service’ --rule-name='OpenTickets-Vaudoise' --host-id=’1959’ --service-id=’6756’ --service-state=’WARNING’ --service-output=’TEST_GLE’ --api-hostname=’centreon.vaudoise.ch’ --api-proto=’https' --api-port=’443’ --api-username=’apirest_user’ --api-password=XXXXXXX --debug

 

Regards,

Badge +4

Latest News from Centreon support :

The Open Ticket Web Api is only available from version 22.10.

On my side this version will be installed in a few month only … so we have to wait…

Thanks to all of you for your help :-)

 

Badge +2

 Hi all,

 

I have a more easy problem but I am not able to solve it.

My problem is that , the notifications command which appears in the  centengin.log , which suppose to create a Jira ticket is not executed on the server automatically.

If I run it manually it is working. It is creating the ticket.

 

[2023-02-15T13:34:27.407+01:00] [notifications] [info] [4136078] Raw notification command: /bin/bash /usr/lib/centreon/plugins/wrapper_service_ticket.sh "$NOTIFICATIONTYPE$" "$HOSTID$" "$HOSTNAME$" "$SERVICEOUTPUT$" "$SERVICESTATE$" "$SERVICEID$" "$SERVICEDESC$" "idemiaJiraTestCustomProvider" "10.234.18.120" "openticketjira" "O*FTEIr0" "7" "$_SERVICECRITICALITY_LEVEL$" "$_SERVICESLA$"
[2023-02-15T13:34:27.407+01:00] [notifications] [info] [4136078] Processed notification command: /bin/bash /usr/lib/centreon/plugins/wrapper_service_ticket.sh "PROBLEM" "5134" "hostname.idemia.com" "HTTP WARNING: HTTP/1.1 404 Not Found - 492 bytes in 0.029 second response time" "WARNING" "14223" "check_https://site.idemia.com" "idemiaJiraTestCustomProvider" "10.234.18.120" "openticketjira" "xxxxxx" "7" "4" "gold"
 

 

Thank you

 

Reply