CTT - Escalation
From PlcWiki
(→Formátování data a času) |
|||
(13 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
+ | ===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=== | ===Žolíky=== | ||
Line 54: | Line 85: | ||
cttRecUrl, | cttRecUrl, | ||
pathCtt | 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říklad=== | ||
Line 67: | Line 142: | ||
Please, complete the reason on a form here: <%= ctt.config.server.publicAppUrl %>out.html?v=user_logout&id=<%= ctt.interval.uuid %> | 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.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 | <%= 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") %> | <%= 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") %>