CTT - Escalation

From PlcWiki

(Difference between revisions)
Jump to: navigation, search
(Created page with '{ctt.interval. id uuid interval_definition_name start_event_id id_id value ctt.sensor. sender_id sensor_id sensor_type group_name grou…')
 
(28 intermediate revisions not shown)
Line 1: Line 1:
-
{ctt.interval.
+
===Eskalátor===
 +
 
 +
Eskalátor voláme na adrese server/ctt/escalation
 +
 
 +
možné url parametry: /escalation/?
 +
 
 +
    hash=<string> => hash pouze pro jednoho konkrétního ownera, povinný u instalací, kde není autentifikace přes UserManagement 2
 +
    recordid=<string> => ID konkrétního intervalu, který bude eskalátor kontrolovat (nebude projíždět všechny otevřené intervaly)
 +
    again=<1|0> => eskalátor se bude znovu ptát CLEy na pravidla, pokud nebyla vrácena správná (např. error), správně se musí vrátit objekt (i kdyby prázdný) - defaultně again=1
 +
 
 +
===CRON===
 +
 
 +
Cesta ke cronu, pokud chceme nastavit např. minutový tikač:
 +
 
 +
    /etc/cron.d/ctt-escalation (nebo jiný název)
 +
 
 +
=====soubor ctt-escalation=====
 +
 
 +
Vzor tikače nastaveného na jednu minutu pro konkrétního ownera:
 +
 
 +
    # Nastaveni intervalu, kdy budeme tahat za escalator - vystup se nikam neuklada
 +
    */1 * * * * root wget -O - 'https://server:8080/ctt/escalation?hash=8849d073-1eee-11eb-b7d0-05ed861d1beb' > /dev/null 2>&1
 +
   
 +
Vzor tikače nastaveného na jednu minutu, kdy owner je zjišťován automaticky ze startovacích recordů:
 +
 
 +
    # Nastaveni intervalu, kdy budeme tahat za escalator - vystup se nikam neuklada
 +
    */1 * * * * root wget -O - 'https://server:8080/ctt/escalation' > /dev/null 2>&1
 +
   
 +
''Pozor, na konci scriptu musí být jeden odENTERovaný řádek''
 +
 
 +
 
 +
===Žolíky===
 +
 
 +
Zadáváme přímo do textu v této formě: User login on server  '''<%= ctt.record.data.server %>''' was detected.
 +
 
 +
=====ctt.interval.=====
     id
     id
     uuid
     uuid
Line 6: Line 41:
     id_id
     id_id
     value
     value
-
ctt.sensor.
+
=====ctt.sensor.=====
     sender_id
     sender_id
     sensor_id
     sensor_id
Line 22: Line 57:
     place
     place
     data
     data
-
ctt.record.
+
=====ctt.record.=====
     id
     id
     chart_time
     chart_time
Line 36: Line 71:
     author
     author
     data
     data
-
ctt.definition.
+
Klíč data obsahuje strukturu json dalších údajů, které nese event, který vyvolal změnu intervalu. Pro různé eventy se tento obsah liší.
 +
Pak použijeme například takto  '''<%= ctt.record.data.server %>'''
 +
 
 +
=====ctt.definition.=====
     timeout_days,
     timeout_days,
     timeout_sensor
     timeout_sensor
-
ctt.cttUrl}
+
=====ctt.config.server.=====
 +
    appUrl,
 +
    publicAppUrl,
 +
    sentEmailURI,
 +
    sentSmsURI,
 +
    cleaUrl,
 +
    cttRecUrl,
 +
    pathCtt
 +
=====ctt.clea.rule.=====
 +
    owner,
 +
    rule_name,
 +
    id,
 +
    level,
 +
    msg_subject,
 +
    msg_body,
 +
    delay_min,
 +
    user_name_id,
 +
    login_name,
 +
    mail,
 +
    mobile_phone
 +
 
 +
===Staré žolíky===
 +
 
 +
Používáme ve starších verzích CTT (zatím zachována jejich funkčnost i v nových verzích)
 +
 
 +
=====Info z CTT recordu a intervalu=====
 +
    $lineName
 +
    $workplaceName
 +
    $subjectId
 +
    $eventTime
 +
 
 +
=====Info z CLEA eventu=====
 +
    $note
 +
    $xType
 +
    $xName
 +
    $revision
 +
    $diff
 +
    $publishedBy
 +
    $created
 +
    $workplaces
 +
   
 +
    $click (odkaz na schvalování v CLEE)
 +
=====Info z CTT eventů - podle obsahu datových pytlíků (k dispozici dosud)=====
 +
    $message
 +
    $stackSizeAlarm
 +
    $stackSizeWarning
 +
    $stackSize
 +
    $kernelPort
 +
    $kernelHostname
 +
 
 +
    $cttClick (odkaz na přebírání a ukončování požadavků - natvrdo nasměrován na ctt šablonu pojmenovanou escalation)
 +
    $cttClickBasic (odkaz na přebírání a ukončování požadavků - lze nastavovat název šablony např. &v=escalation_two)
 +
 
 +
===Příklad===
 +
====Předmět zprávy:====
 +
      User login (<%= ctt.record.data.loginName %> from <%= ctt.record.data.hostIp %>) on server <%= ctt.record.data.server %> - request for reason
 +
 
 +
====Tělo zprávy:====
 +
      User login on server <%= ctt.record.data.server %> was detected.
 +
      User:\t\t<%= ctt.record.data.loginName %>
 +
      Source IP:\t<%= ctt.record.data.hostIp %>
 +
      Login:\t\t<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSS",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %> (<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %> CET)
 +
      Logout:\t\t<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSS",ctt.record.data.serverEventTime).format('yyyy-MM-dd HH:mm:ss') %> (<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",ctt.record.data.serverEventTime).format('yyyy-MM-dd HH:mm:ss') %> CET)
 +
      Please, complete the reason on a form here:  <%= ctt.config.server.publicAppUrl %>out.html?v=user_logout&id=<%= ctt.interval.uuid %>
 +
 
 +
==== Tělo zprávy s odkazy na přebírací stránku BEZPEČNĚJŠÍ způsob přes UUID ====
 +
    (...)
 +
    Obsloužení požadavku (bez vyžadované autorizace): <%= ctt.config.server.publicAppUrl %>out.html?uuid=<%= ctt.interval.uuid %>&login_name=<%= ctt.clea.rule.login_name %>&v=escalation
 +
    Obsloužení požadavku (s vyžadovanou autorizací): <%= ctt.config.server.publicAppUrl %>out.html?uuid=<%= ctt.interval.uuid %>&v=escalation
 +
 
 +
==== Tělo zprávy s odkazy na přebírací stránku PŮVODNÍ způsob přes ID ====
 +
    (...)
 +
    První způsob konfigurace obsloužení požadavku (pevně daná šablona): $cttClick
 +
    Druhý způsob konfigurace obsloužení požadavku (nastavitelná šablona): $cttClickBasic&v=escalation
 +
    Třetí způsob konfigurace obsloužení požadavku (nastavitelné vše): <%= ctt.config.server.publicAppUrl %>out.html?id=<%= ctt.interval.id %>&login_name=<%= ctt.clea.rule.login_name %>&v=escalation
 +
 
 +
====Formátování data a času====
 +
např. ctt.record.data.firstSessionLoginTime = "2020-11-05T12:12:03.000+01:00"
 +
      <%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSS",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %>
 +
      <%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %> CET
 +
 
 +
např. ctt.record.data.create = 1.619013617E12
 +
      <%= new Date(ctt.record.data.created.toLong()).format("yyyy-MM-dd HH:mm:ss") %>

Current revision as of 16:00, 22 April 2022

Contents

Eskalátor

Eskalátor voláme na adrese server/ctt/escalation

možné url parametry: /escalation/?

   hash=<string>	=> hash pouze pro jednoho konkrétního ownera, povinný u instalací, kde není autentifikace přes UserManagement 2
   recordid=<string>	=> ID konkrétního intervalu, který bude eskalátor kontrolovat (nebude projíždět všechny otevřené intervaly)
   again=<1|0>		=> eskalátor se bude znovu ptát CLEy na pravidla, pokud nebyla vrácena správná (např. error), správně se musí vrátit objekt (i kdyby prázdný) - defaultně again=1

CRON

Cesta ke cronu, pokud chceme nastavit např. minutový tikač:

   /etc/cron.d/ctt-escalation (nebo jiný název)
soubor ctt-escalation

Vzor tikače nastaveného na jednu minutu pro konkrétního ownera:

   # Nastaveni intervalu, kdy budeme tahat za escalator - vystup se nikam neuklada
   */1 * * * * root wget -O - 'https://server:8080/ctt/escalation?hash=8849d073-1eee-11eb-b7d0-05ed861d1beb' > /dev/null 2>&1
   

Vzor tikače nastaveného na jednu minutu, kdy owner je zjišťován automaticky ze startovacích recordů:

   # Nastaveni intervalu, kdy budeme tahat za escalator - vystup se nikam neuklada
   */1 * * * * root wget -O - 'https://server:8080/ctt/escalation' > /dev/null 2>&1
   

Pozor, na konci scriptu musí být jeden odENTERovaný řádek


Žolíky

Zadáváme přímo do textu v této formě: User login on server <%= ctt.record.data.server %> was detected.

ctt.interval.
   id
   uuid
   interval_definition_name
   start_event_id
   id_id
   value
ctt.sensor.
   sender_id
   sensor_id
   sensor_type
   group_name
   group_order
   start_value
   sensor_name
   color
   machine
   workplace
   workplace_name
   line
   project
   place
   data
ctt.record.
   id
   chart_time
   chart_value
   unit
   value_type
   sender_id
   sensor_id
   delivered_time
   subject_id
   subject_class_id
   subject_class_name
   author
   data

Klíč data obsahuje strukturu json dalších údajů, které nese event, který vyvolal změnu intervalu. Pro různé eventy se tento obsah liší. Pak použijeme například takto <%= ctt.record.data.server %>

ctt.definition.
   timeout_days,
   timeout_sensor
ctt.config.server.
    appUrl,
    publicAppUrl,
    sentEmailURI,
    sentSmsURI,
    cleaUrl,
    cttRecUrl,
    pathCtt
ctt.clea.rule.
    owner,
    rule_name,
    id,
    level,
    msg_subject,
    msg_body,
    delay_min,
    user_name_id,
    login_name,
    mail,
    mobile_phone

Staré žolíky

Používáme ve starších verzích CTT (zatím zachována jejich funkčnost i v nových verzích)

Info z CTT recordu a intervalu
    $lineName
    $workplaceName
    $subjectId
    $eventTime
Info z CLEA eventu
    $note
    $xType
    $xName
    $revision
    $diff
    $publishedBy
    $created
    $workplaces
    
    $click (odkaz na schvalování v CLEE)
Info z CTT eventů - podle obsahu datových pytlíků (k dispozici dosud)
    $message
    $stackSizeAlarm
    $stackSizeWarning
    $stackSize
    $kernelPort
    $kernelHostname
    $cttClick (odkaz na přebírání a ukončování požadavků - natvrdo nasměrován na ctt šablonu pojmenovanou escalation)
    $cttClickBasic (odkaz na přebírání a ukončování požadavků - lze nastavovat název šablony např. &v=escalation_two)

Příklad

Předmět zprávy:

     User login (<%= ctt.record.data.loginName %> from <%= ctt.record.data.hostIp %>) on server <%= ctt.record.data.server %> - request for reason

Tělo zprávy:

      User login on server <%= ctt.record.data.server %> was detected.
      User:\t\t<%= ctt.record.data.loginName %>
      Source IP:\t<%= ctt.record.data.hostIp %>
      Login:\t\t<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSS",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %> (<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %> CET)
      Logout:\t\t<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSS",ctt.record.data.serverEventTime).format('yyyy-MM-dd HH:mm:ss') %> (<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",ctt.record.data.serverEventTime).format('yyyy-MM-dd HH:mm:ss') %> CET)
      Please, complete the reason on a form here:  <%= ctt.config.server.publicAppUrl %>out.html?v=user_logout&id=<%= ctt.interval.uuid %>

Tělo zprávy s odkazy na přebírací stránku BEZPEČNĚJŠÍ způsob přes UUID

    (...)
    Obsloužení požadavku (bez vyžadované autorizace): <%= ctt.config.server.publicAppUrl %>out.html?uuid=<%= ctt.interval.uuid %>&login_name=<%= ctt.clea.rule.login_name %>&v=escalation
    Obsloužení požadavku (s vyžadovanou autorizací): <%= ctt.config.server.publicAppUrl %>out.html?uuid=<%= ctt.interval.uuid %>&v=escalation

Tělo zprávy s odkazy na přebírací stránku PŮVODNÍ způsob přes ID

    (...)
    První způsob konfigurace obsloužení požadavku (pevně daná šablona): $cttClick
    Druhý způsob konfigurace obsloužení požadavku (nastavitelná šablona): $cttClickBasic&v=escalation
    Třetí způsob konfigurace obsloužení požadavku (nastavitelné vše): <%= ctt.config.server.publicAppUrl %>out.html?id=<%= ctt.interval.id %>&login_name=<%= ctt.clea.rule.login_name %>&v=escalation

Formátování data a času

např. ctt.record.data.firstSessionLoginTime = "2020-11-05T12:12:03.000+01:00"

      <%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSS",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %>
      <%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %> CET

např. ctt.record.data.create = 1.619013617E12

      <%= new Date(ctt.record.data.created.toLong()).format("yyyy-MM-dd HH:mm:ss") %>
Personal tools