From nobody Thu Oct 19 07:08:11 2023 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4S9zMJ26cjz4y4Wp; Thu, 19 Oct 2023 07:08:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4S9zMJ0cCTz3DGb; Thu, 19 Oct 2023 07:08:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1697699292; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=z4tod9aa8SI68o2Jrf4GR5jTBwkaiwdmsTR7yS4aHBU=; b=NF3PizSwN/XS+zSGywDCih8KF4UoM1DFeEDbb1OzmP49djd1+qSm5T89JojRJWGUoYbNHM 5bZf1/owwVR3tj84WFtHgEW/aLHPEa3A6NdwAXU5mkifRsLiThWx75CK3wfbvBGVbbt1jI xGffRLh3rOVFcB/rQR03FMj6Ot3N0cY+fZWg3FzGxtJgLUAjzCH22hZU8QrFjtMqT6jPxy jcZcgTeOiCRgl7K0wTFADOYxESiSV8sXx8lspVJ3h3UpSAtvOdc3zByf6tkuG9kpyp/f1j AjWOZAXgCk6vUKF7mvLx8o6P9KtHmC/VLyO59ePCGZLYRfWGKL+eVpAl7WkdRw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1697699292; a=rsa-sha256; cv=none; b=WjqmMMxcm6hGzCYxDgbzRJ2SrXOtE7ztwps6rrdw72SOEMSgVINZjvRwRC6AMp0zBEb23m cpdHWqdBSP8IEX79mWf2rUtSD6s0N7uebTMt+YviFPV9A6nmgGz++LJUV4/b7YcwwnVOEd NZinjm7jF+h73JXd9CaHZM7L/XAmDXPQ34zcbDhKd/t78ku0VauTKCwd/GJyScRYvtMjZ+ o5iSJ/MsYnuUoaULcXbDAPUTqWeWr4x4+mgdxu6pzDQlrGvWYz6BFw/46As5lFxotXr4XF W2oKYQdM3auMDBr9L9Z1jf4LnyZWi74MuDHa8aFUBh9r+Wwt0WRthOZJfQzQ8w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1697699292; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=z4tod9aa8SI68o2Jrf4GR5jTBwkaiwdmsTR7yS4aHBU=; b=gkizwOYcTigBWBCXs9fbFUm+OzwEJivrdtWfQx69tMIyBGnVoDAtV2UlIjAqTVPfBfljx5 EHDysOaTJUyfFao2Kz+h0/9MCV/EAZC4NHFEtywwUGmaJSBxODKc9QstXBXqzPsWHW/+f/ BnB2QlrbY5+5ils25bCEi4ztbKQxWkNeP5u5qCjkAXAF3ReBo3IFR6rhKWofXnRAJ23bnD NIS6CHq/aI8IzuM+4qQqFtyp2R9YpJVMlL1Pz/pv5ZGyiOSVTRZl36V29zOSdv83jg35cb anXu4e0Xb3H5sXY0yVF59ueWtO33en1FJ+dY4voyltumPxRpGG24FMPlW/J+BQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4S9zMH6CLFzgHx; Thu, 19 Oct 2023 07:08:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 39J78B90045158; Thu, 19 Oct 2023 07:08:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 39J78BJX045155; Thu, 19 Oct 2023 07:08:11 GMT (envelope-from git) Date: Thu, 19 Oct 2023 07:08:11 GMT Message-Id: <202310190708.39J78BJX045155@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Robert Clausecker Subject: git: b16c0ca7d04e - main - sysutils/loki: add promtail rc.d script List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fuz X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b16c0ca7d04e67ba0dd9e2ff7a5cde372a79171b Auto-Submitted: auto-generated The branch main has been updated by fuz: URL: https://cgit.FreeBSD.org/ports/commit/?id=b16c0ca7d04e67ba0dd9e2ff7a5cde372a79171b commit b16c0ca7d04e67ba0dd9e2ff7a5cde372a79171b Author: Eren Türkay AuthorDate: 2023-10-06 09:46:13 +0000 Commit: Robert Clausecker CommitDate: 2023-10-19 07:07:26 +0000 sysutils/loki: add promtail rc.d script Promtail is a log reader and it can be run as a service to gather the logs to be sent to remote loki server. For nodes that need to send logs only, promtail service and configuration file is needed PR: 274194, 274473 Signed-off-by: Christopher Beppler Approved by: Chirstopher Beppler (maintainer) --- UIDs | 2 +- sysutils/loki/Makefile | 13 +++- .../loki/files/patch-promtail-local-config.yaml | 11 ++++ sysutils/loki/files/promtail.in | 70 ++++++++++++++++++++++ sysutils/loki/pkg-plist | 4 ++ 5 files changed, 96 insertions(+), 4 deletions(-) diff --git a/UIDs b/UIDs index d3900898c438..89a17db9381a 100644 --- a/UIDs +++ b/UIDs @@ -763,7 +763,7 @@ foreman_proxy:*:812:812::0:0:Foreman Smart Proxy:/usr/local/share/foreman-proxy: hitch:*:813:813::0:0:Hitch TLS Proxy:/nonexistent:/usr/sbin/nologin puppet:*:814:814::0:0:Puppet Daemon:/nonexistent:/usr/sbin/nologin uchiwa:*:815:815::0:0:Uchiwa Dashboard:/nonexistent:/usr/sbin/nologin -# free: 816 +promtail:*:816:967::0:0:Promtail:/var/db/promtail:/usr/sbin/nologin rslsync:*:817:817::0:0:Resilio Sync Daemon:/nonexistent:/usr/sbin/nologin jenkins:*:818:818::0:0:Jenkins CI:/usr/local/jenkins:/bin/sh rundeck:*:819:819::0:0:Rundeck:/usr/local/rundeck:/bin/sh diff --git a/sysutils/loki/Makefile b/sysutils/loki/Makefile index e1053064ed62..a459876e2fb2 100644 --- a/sysutils/loki/Makefile +++ b/sysutils/loki/Makefile @@ -326,7 +326,7 @@ GH_TUPLE= \ xdg-go:stringprep:v1.0.4:xdg_go_stringprep/vendor/github.com/xdg-go/stringprep \ yuin:gopher-lua:v1.1.0:yuin_gopher_lua/vendor/github.com/yuin/gopher-lua -USE_RC_SUBR= loki +USE_RC_SUBR= loki promtail GO_TARGET= ./cmd/loki ./cmd/loki-canary ./cmd/logcli ./clients/cmd/promtail @@ -334,12 +334,17 @@ LOKI_USER?= loki LOKI_GROUP?= loki LOKI_DATADIR?= /var/db/${PORTNAME} -USERS= ${LOKI_USER} +PROMTAIL_USER?= promtail +PROMTAIL_DATADIR?= /var/db/promtail + +USERS= ${LOKI_USER} ${PROMTAIL_USER} GROUPS= ${LOKI_GROUP} SUB_LIST= LOKI_USER=${LOKI_USER} \ LOKI_GROUP=${LOKI_GROUP} \ - LOKI_DATADIR=${LOKI_DATADIR} + LOKI_DATADIR=${LOKI_DATADIR} \ + PROMTAIL_USER=${PROMTAIL_USER} \ + PROMTAIL_DATADIR=${PROMTAIL_DATADIR} PLIST_SUB= ${SUB_LIST} @@ -372,7 +377,9 @@ post-extract: post-install: @${CP} ${WRKSRC}/cmd/loki/loki-local-config.yaml ${STAGEDIR}${PREFIX}/etc/loki.yaml.sample + @${CP} ${WRKSRC}/clients/cmd/promtail/promtail-local-config.yaml ${STAGEDIR}${PREFIX}/etc/promtail.yaml.sample @${MKDIR} ${STAGEDIR}${LOKI_DATADIR} @${MKDIR} ${STAGEDIR}${LOKI_DATADIR}/rules-temp + @${MKDIR} ${STAGEDIR}${PROMTAIL_DATADIR} .include diff --git a/sysutils/loki/files/patch-promtail-local-config.yaml b/sysutils/loki/files/patch-promtail-local-config.yaml new file mode 100644 index 000000000000..b02e5db10eb0 --- /dev/null +++ b/sysutils/loki/files/patch-promtail-local-config.yaml @@ -0,0 +1,11 @@ +--- clients/cmd/promtail/promtail-local-config.yaml.orig 2023-10-05 01:40:22.549761000 +0000 ++++ clients/cmd/promtail/promtail-local-config.yaml 2023-10-05 01:41:28.869261000 +0000 +@@ -3,7 +3,7 @@ + grpc_listen_port: 0 + + positions: +- filename: /tmp/positions.yaml ++ filename: /var/db/promtail/positions.yaml + + clients: + - url: http://localhost:3100/loki/api/v1/push diff --git a/sysutils/loki/files/promtail.in b/sysutils/loki/files/promtail.in new file mode 100644 index 000000000000..ff8c9464cbec --- /dev/null +++ b/sysutils/loki/files/promtail.in @@ -0,0 +1,70 @@ +#!/bin/sh + +# PROVIDE: promtail +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable promtail +# promtail_enable="YES" +# +# promtail_enable (bool): +# Set it to YES to enable promtail +# Set to NO by default +# promtail_user (string): +# Set user that promtail will run under +# Default is "%%PROMTAIL_USER%%" +# promtail_group (string): +# Set group that own promtail files +# Default is "%%LOKI_GROUP%%" +# promtail_config (string) +# Set full path to config file +# Default is "%%PREFIX%%/etc/promtail.yaml" +# promtail_logfile (string) +# Set full path to log file +# Default is "/var/log/promtail/promtail.log" +# promtail_loglevel (string) +# Set log level. Only log messages with the given severity or above. +# Valid levels: [debug, info, warn, error] +# Default is "warn" +# promtail_args (string) +# Set additional command line arguments +# Default is "" + +. /etc/rc.subr + +name=promtail +rcvar=promtail_enable + +load_rc_config $name + +: ${promtail_enable:="NO"} +: ${promtail_user:="%%PROMTAIL_USER%%"} +: ${promtail_group:="%%LOKI_GROUP%%"} +: ${promtail_config:="%%PREFIX%%/etc/promtail.yaml"} +: ${promtail_logfile:="/var/log/promtail/promtail.log"} +: ${promtail_loglevel:="warn"} + +pidfile="/var/run/${name}/${name}.pid" +required_files="${promtail_config}" + +procname="%%PREFIX%%/bin/promtail" +command="/usr/sbin/daemon" +command_args="-p ${pidfile} -t ${name} -o ${promtail_logfile} \ + ${procname} \ + --config.file=${promtail_config} \ + --log.level=${promtail_loglevel} \ + ${promtail_args}" + +start_precmd="promtail_start_precmd" + +promtail_start_precmd() { + if [ ! -d "/var/run/${name}" ]; then + install -d -m 0750 -o ${promtail_user} -g ${promtail_group} "/var/run/${name}" + fi + + if [ ! -d "/var/log/promtail" ]; then + install -d -m 0750 -o ${promtail_user} -g ${promtail_group} "/var/log/promtail" + fi +} + +run_rc_command "$1" diff --git a/sysutils/loki/pkg-plist b/sysutils/loki/pkg-plist index b39abf641010..301c053577b5 100644 --- a/sysutils/loki/pkg-plist +++ b/sysutils/loki/pkg-plist @@ -3,11 +3,15 @@ bin/loki-canary bin/logcli bin/promtail @sample etc/loki.yaml.sample +@sample etc/promtail.yaml.sample @owner %%LOKI_USER%% @group %%LOKI_GROUP%% @mode 750 @dir %%LOKI_DATADIR%% @dir %%LOKI_DATADIR%%/rules-temp +@owner %%PROMTAIL_USER%% +@mode 750 +@dir %%PROMTAIL_DATADIR%% @mode @group @owner