AO Logging
This document describes how AO-logging is handled in GCP environment. This page will give instructions how and where all steps are done.
Steps:
* Client and servers creates log files to NetApp volume.
* Bindplane agent tail logs to GCP.
* We have own project road-ao-logging in GCP where we route AO-logs.
* road-ao-logging -project has logging buckets for each customer.
* Logs sinks to each customers bucket.
* There is log based metrics for each types of logs (errors etc)
* Log based metrics will collect logs and Grafana will use those in dashboards.
* Alerts are triggered from Grafana Dashboard data and sent it to monitoring channels in Slack
AO-logs
AO generates logs to its home directory /log -folder by default. This way Ahola's and Special's AO is configured.
Ahola * Client:
\\172.31.162.130\smb-live\AholaTransport\live\Client\Log
- Servers:
\\172.31.162.130\smb-live\AholaTransport\live\Server\Log
- BatchRun:
\\172.31.162.130\smb-live\AholaTransport\live\BatchRun\Log
- Datapump
\\172.31.162.130\datapump\AholaTransport\AholaNightly\Log
\\172.31.162.130\datapump\AholaTransport\AholaNightly\Errors
\\172.31.162.130\datapump\AholaTransport\AholaNightly\Results
\\172.31.162.130\datapump\AholaTransport\AholaDaily\Log
\\172.31.162.130\datapump\AholaTransport\AholaDaily\Errors
\\172.31.162.130\datapump\AholaTransport\AholaDaily\Results
Special * Client:
\\172.31.162.130\smb-live\AholaSpecial\live\Client\Log
- Server:
\\172.31.162.130\smb-live\AholaSpecial\live\Server\Log
- BatchRun:
\\172.31.162.130\smb-live\AholaSpecial\live\BathcRun\Log
- Datapump:
\\172.31.162.130\datapump\AholaSpecial\Nightly\Log
\\172.31.162.130\datapump\AholaSpecial\Nightly\Errors
\\172.31.162.130\datapump\AholaSpecial\Nightly\Results
\\172.31.162.130\datapump\AholaSpecial\Daily\Log
\\172.31.162.130\datapump\AholaSpecial\Daily\Errors
\\172.31.162.130\datapump\AholaSpecial\Daily\Results
Bindplane
We use bindplane to tail logs to GCP logging.
Bindplane management console: * https://bindplane.bluemedora.com/logs/overview
On windows side there is Bindplane Log Agent and Bindplane Fluentd -services which collects the data.
Bindplane configs, logs etc:
C:\BlueMedora\BindplaneLogAgent
Bindplane destination gcp-ao-logging is configured to send tailed data to GCP logging with Service Account.
Service Account is only use in:
aholadigital.com\Infra\atos-transport\common\road-ao-logging -project
Configure bindplane destination: * https://docs.bindplaneoriginal.observiq.com/docs/google-stackdriver
Bindplane Agents are installed in these machines all GCP VM's are in one group gcp-ao , group is not necessary, but with that we can separate Azure AO (externals live) logging from GCP AO.
* Jump
* Jump-2
* backendsrv-1
* bckendsrvtst-0
* biztalktest-01
How to install bindplane agent: * https://docs.bindplaneoriginal.observiq.com/docs/universal-agent-installation How to remove bindplane agent: * https://docs.bindplaneoriginal.observiq.com/docs/universal-agent-removal
Bindplane Sources: * GCP-Ahola-clientlogs * GCP-Ahola-serverlogs * GCP-Special-clientlogs * GCP-Special-serverlogs * GCP-Ahola-TIP-serverlogs
How to new create bindplane source:
note that "path" is using normal slashes, not backslashes.
With "tag" we can easily search data in GCP from this source.
<source>
@type tail
path //172.31.162.130/smb-nightly0/AholaTransport/TIP/Server/Log/*
pos_file {{{configPath}}}/{{{bundleConfigId}}}.tail.log.pos
tag {{{bundleConfigId}}}.ahola-tip-serverlog
format none
limit_recently_modified 24h
path_key tailed_path
</source>
<match {{{bundleConfigId}}}.**>
@type record_reformer
tag ${tag_suffix[1]}
<record>
bindplane_source_name "{{{bundleConfigName}}}"
bindplane_source_id {{{bundleConfigId}}}
bindplane_source_type "tail"
</record>
</match>
GCP logging
We have own project road-ao-logging in GCP where we route AO-logs.
* https://console.cloud.google.com/logs/query;query=%0A;cursorTimestamp=2024-07-08T13:34:39.244041Z;duration=PT1H?project=road-ao-logging-57348
Bindplane source tag is shown in Logs Explorer ➝ All log names:
Saved "tab" contains useful saved log queries.
Log storage
https://console.cloud.google.com/logs/storage?project=road-ao-logging-57348
By default all logs are routed to _default -bucket, which retention period is 30 days.

Each customer will have own log bucket where we are going to sink AO-logs. These log buckets retention period will be at least 180 days.
Log Routing
All AO logs are routed to own log bucked by sink.

You can sink lot of different data with sink.
You can sink log between projects etc.
Log Based Metrics
Log Based metrics collects logs which contains specified information in log names from our sources. We can create queries which shows different things like errors etc. in specified log. * https://console.cloud.google.com/logs/metrics?project=road-ao-logging-57348 With log based metrics we have made Grafana dashboards, which gives lot of information about AO-logs.
Monitoring & Alerting
With Log based metrics we can monitor our clients and servers. Grafana Dashboards contains counters which calculates for example errors occurring in client logs.
Alerts are specified to read dashboards and send alert message to monitoring channel in Slack.
Client log dashboard: * https://dash.aholadigital.com/d/564rfth5/log-digest-clients?orgId=1 Server log dashboard: * https://dash.aholadigital.com/d/b009b5cc-45cb-4acf-8399-f0e051be0cf7/log-digest-server?orgId=1