%PDF- %PDF-
| Direktori : /proc/self/root/backups/router/usr/local/share/syslog-ng/include/scl/google/ |
| Current File : //proc/self/root/backups/router/usr/local/share/syslog-ng/include/scl/google/google-pubsub.conf |
#############################################################################
# Copyright (c) 2023 Attila Szakacs
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 as published
# by the Free Software Foundation, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# As an additional exemption you are allowed to compile & link against the
# OpenSSL libraries as published by the OpenSSL project. See the file
# COPYING for details.
#
#############################################################################
@requires json-plugin
block destination google_pubsub(
project()
topic()
auth()
service_endpoint("https://pubsub.googleapis.com")
data("${MESSAGE}")
attributes("--scope rfc5424,all-nv-pairs --exclude MESSAGE")
batch_lines(1000)
batch_bytes(10MB)
batch_timeout(5000)
workers(8)
timeout(10)
use_system_cert_store(yes)
...)
{
@requires http "The google-pubsub() driver depends on the syslog-ng http module, please install the syslog-ng-mod-http (Debian & derivatives) or the syslog-ng-http (RHEL & co) package"
@requires cloud_auth "The google-pubsub() driver depends on the syslog-ng Cloud Auth module, please install the syslog-ng-mod-cloud-auth (Debian & derivatives) or the syslog-ng-cloud-auth (RHEL & co) package"
http(
url("`service_endpoint`/v1/projects/`project`/topics/`topic`:publish")
method("POST")
headers("Content-Type: application/json")
cloud-auth(
gcp(
service-account(audience("https://pubsub.googleapis.com/google.pubsub.v1.Publisher"))
`auth`
)
)
body(
'$(format-json --omit-empty-values
data=$(base64-encode `data`)
attributes=literal($(format-flat-json `attributes`)))'
)
body_prefix('{"messages":[')
body_suffix(']}')
delimiter(',')
batch-lines(`batch_lines`)
batch-bytes(`batch_bytes`)
batch-timeout(`batch_timeout`)
workers(`workers`)
timeout(`timeout`)
use_system_cert_store(`use_system_cert_store`)
`__VARARGS__`
);
};