Accounting Service¶
Fit in NEANIAS Ecosystem¶
The NEANIAS Accounting service provides an aggregation functionality through which NEANIAS services can centrally log accounting information as it is gradually accumulated by their usage from the respective authorized clients. Different accumulation policies and granularity of information is supported depending on the respective services. The information consists of globally defined key point indicators and the aggregation and reports generated based on these becomes available for further usage, as appropriate
Accounting Transfer¶
To facilitate the aggregation of log, the Beats (https://www.elastic.co/beats/) framework for data shipping will be used. Specifically, beats modules for either file or http transfer can be provided with supportive configuration to lower the integration barrier for all NEANIAS Service Providers.
Accounting information¶
Acounting Templates¶
Templates for acounting entry formats are provided along with the respective Logstash transformation templates that will extract a limited common set of information. This way, a homogenized set of information is made available for accounting operations.
Currently supporting templates include:
- JSON accounting based
Examples of the currently supported log formats are:
JSON¶
{
"timestamp": "2020-09-01T13:00:00Z", //required
"serviceid": "ServiceId", //required
"level": "accounting", //required value should be accounting
"starttime": "2020-09-01T13:00:00Z", //optional
"endtime": "2020-09-01T13:00:00Z", //optional
"userid": "UserId", //required
"userdelegate": "UserDelegate", //optional
"resource": "Resource", //required
"action": "Action", //required
"comment": "comment", //optional
"value": 5.1, //optional if ommited 1,
"measure": "information" // time(ms), information(mb), throughput(mb/sec), unit, others to be considered, optional if ommited unit
"type": "+" // + - 0, optional if ommited +
}
Accounting Model¶
timestamp
DateTime (ISO 8601) Mandatory Date of the entry
starttime
DateTime (ISO 8601) Date of the operation starts
endtime
DateTime (ISO 8601) Date of the operation ends
serviceid
Text Mandatory Global unique identifier for the service that the log entry refers to. It may be generated by the probe rather than be harvested from the logs.
level
ENUM Mandatory Value should be “accounting”
resource
Text Mandatory The resource handled by the call.
action
Text Mandatory The action identifier in internal semantics.
userid
Text Mandatory An identifier for the user on whos purpose the work is performed
userdelegate
Text An identifier for the user who is the delegate to perform the work
value
Long The measure value if omitted 1
measure
Text The measure currently available messures time(ms), information(mb), throughput(mb/sec), unit, others to be considered, optional if omitted unit
type
ENUM The measure type available types + - 0, optional if omitted +
comment
Text A comment of accounting
Log Exploration¶
A Kibana dashboard is provided that offers browsing, filtering and visualization capabilities. Access to the Kibana graphical application is subject to authorization enforced by relevant access management plugins. Integration with the NEANIAS AAI is evaluated and planned in order to facilitate some degree of global policy enforcement through the central AAI service
Log Storing¶
A logstash service with beat input is available for pushing the accounting data loggingaggregator.dev.neanias.eu:31314. Clients can use filebeat for crawling and pushing accounting data
Filebeat configuration example:
- Tag accounting should be set for recognition of accounting format.
- The cerificates should be set for authentication
filebeat.inputs:
- type: log
paths:
- /usr/share/filebeat/log_data/*.json
tags: ["accounting"]
enabled: true
reload.enabled: true
reload.period: 10s
processors:
- drop_event.when.not.regexp.message: '"[lL]evel"\s*:\s*"accounting"'
output.logstash:
hosts: ["loggingaggregator.dev.neanias.eu:31314"]
bulk_max_size: 10
ssl.certificate_authorities: ["/etc/filebeat/ca/root-ca.pem"]
ssl.certificate: "/etc/filebeat/certificates/filebeat01.pem"
ssl.key: "/etc/filebeat/certificates/filebeat01-key.pem"