HttpLogger (logger)
Un logger http permet de transmettre des messages à un service externe via des requêtes HTTP.
Paramètres communs :
Les loggers peuvent être paramétrés pour filter les évènements pris en compte :
Propriété | Paramétrage | Usage |
---|---|---|
content | oui | Contenu du message |
contentFile | non | Le contenu du message est contenu dans un fichier |
encodeType | non | Le format d'encodage du message
|
categories | non | Liste des catégories gérées par le logger |
eventTypes | non | Liste des type d'évènements gérées par le logger |
eventFilter | non | Une expression pour filter les évènements |
openChar | non | Le caractère de début de substitution |
closeChar | non | Le caractère de fin de substitution |
Encodage du message
Si encodeType n'est pas défini la valeur peut être défini par le contentType :
ContentType | EncodeType |
---|---|
application/json | json |
application/x-www-form-urlencoded | form |
La structure du message généré dépend du paramètres encodeType :
EncodeType | Remarque | Content | Message |
---|---|---|---|
json | [host],[port],[service] | {"host":"hostname","port":443,"service":"GCF"} | |
json | content commence par { | {"hostName":[host],"httpPort":[port],"serviceName":[service]} | {"hostName":"hostname","httpPort":443,"serviceName":"GCF"} |
text | Un message texte du service [service] sur le serveur [host].[port] | Un message texte du servie GCF sur le serveur hostname.443 | |
text | (*) | [jsonPerfs] | {"status":"up","since":"xxxx", .....} |
form | [host][port][service] | host=hostname&port=443&service=GCF | |
form | content contient = | hostName=[host]&httpPort=[port]&serviceName=[service] | hostName=hostname&httpPort=443&serviceName=GCF |
(*) jsonPerfs est une variable spéciale qui retourne une structure json de tous les compteurs de performances.
Paramètres du message
Les parammètres du message peuvent être définie ainsi:
[nom] [nom:cible] [nom!default] [nom!default:cible]
- nom
- Nom du paramètre
- cible
- Nom du paramètre écrit dans le message
- default
- Valeur par défaut si le paramètre est absent.
Compteurs de performances
Les compteurs de performances peuvent être inclus soit individuellement comme les autres paramètres soit en blocs par des paramètres spéciaux :
Paramètre | Contenu |
---|---|
jsonPers | Tous les compteurs |
jsonPerfStatus | Tous les compteurs d'état |
jsonPerfHits | Tous les compteurs de taux |
Ces paramètres retourne une structure json sous la forme {p1:v1,....pn:vn}
suivant le type d'encodage :
encodeType | content | message |
---|---|---|
text | [jsonPerfs] | {p1:v1,....pn:vn} |
json | [P],[jsonPerfs:perfs] | {P:V,perfs:{p1;v1,...pn;vn}} |
json | [P],[@jsonPerfs] | {P:V,p1;v1,...pn;vn} |
Le préfix @ devant le paramètre permet d'inclure la structure
Exemple :
[\SOFTWARE\Sage\Ligne 1000\Administration\LOGManager\ES_EVENTS] type = http keep-alive = 1 url = http://elastic_hostname0/sage1000-[DayStamp]/event/[id]?timestamp=[timestamp] method = PUT contentType = application/json accept = application/json categories=service,automate,bp,authenticate,hit eventTypes=audit_success,audit_failure content = [NodeId],[timestamp],[host],[port],[service],[ResourceGroupName],[Message],[EventType],[Category],[TenantID],[OrganizationName],[UserName],[auditAction]
Dans cet exemple le logger ne prend en compte que les évènements des catégories service, automate, business process, et page hit et que les évènements de type audit_success et ausit_failure.
Paramètres spécifiques :
Propriété | Paramétrage | Usage |
---|---|---|
type | non | http |
url | oui | |
method | non | défaut:POST |
contentType | non | défaut:application/text ; valeurs:application/text; application/json; application/x-www-form-urlencoded |
accept | non | défaut:application/text; |
headers | oui | Custom headers de la requête |
keep-alive | non | défaut:0 ; valeurs:0,1 |
user-agent | oui | Défaut:Mozilla/5.0 ([systemOSInfo]; [systemOSLanguage]) [platformInfo]/[platformVersion] [productInfo]/[productVersion] |
Remarques :
- Vous devez paramétrer le proxy si nécessaire.
- Le format du message est conditionné par le paramètre contentType.
Exemple :
LOGGLY:
[\SOFTWARE\Sage\Ligne 1000\Administration\LOGManager\LOGGLY] type = http url = http://logs-01.loggly.com/inputs/40154792-94ba-45d9-87a9-xxxxxxxxx/ method = POST contentType = application/x-www-form-urlencoded accept = application/json headers = X-LOGGLY-TAG=[Service],[EventType],[Category] content = [timestamp],[host],[port],[service],[level],[message],[EventType],[Category],[TenantID],[OrganizationName]
Elastic Search:
[\SOFTWARE\Sage\Ligne 1000\Administration\LOGManager\ELASTICSEARCH] type = http keep-alive = 1 url = https://mycloudes.cloudapp.net/server/[Category]/[id]?timestamp=[timestamp] method = PUT contentType = application/json accept = application/json content = [timestamp],[host],[port],[service],[level],[message],[EventType],[Category],[TenantID],[OrganizationName],[UserName]
SPLUNKSTORM:
[\SOFTWARE\Sage\Ligne 1000\Administration\LOGManager\SPLUNKSTORM] type = http keep-alive = 1 url = https://x:X65k9VuIG4P3YMnYs8Xb5eisj7DH-eFsTndQvIixIvfUzcz9VxiUc11h0mumlzaf-XXXXXXXXX=@api.XXXXXX.data.splunkstorm.com/1/inputs/http?index=96cb75e2406b11e381f1123139097a14&sourcetype=sage1000 method = POST contentType = application/x-www-form-urlencoded accept = application/json content = [timestamp],[host],[port],[service],[level],[message],[EventType],[Category],[TenantID],[OrganizationName]
GA:
[\SOFTWARE\Sage\Ligne 1000\Administration\LOGManager\GA_HIT] type=http url=http://www.google-analytics.com/collect method=POST contentType=application/x-www-form-urlencoded accept=application/text keep-alive=0 categories=hit'); content=t=pageview&v=1&tid=[gaUA]&cid=[DeviceID]&cd1=[CustomerID]&cd2=[appName]-[appVersion]&cd3=[id]&cd4=[UserID]& \ dp=/[actionName]&dl=[hostURL]/[actionParams]&dr=[hostURL][actionReferrer]&cg1=[actionGroup1]&cg2=[actionGroup2]&cg3=[actionGroup3]& \ dt=[actionTitle]&sd=[systemColors]&sr=[systemScreen]