CTT - Escalation
From PlcWiki
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") %>