Prometheus

Overview

This is a flavour containing the prometheus time series database along with the alertmanager notification tool configured for email alerts.

The flavour includes a local consul agent instance to be available that it can connect to (see configuration below). You can, e.g., use the consul pot flavour on this site to run consul.

Installation

  • Create a ZFS data set on the parent system beforehand zfs create -o mountpoint=/mnt/prometheusdata zroot/prometheusdata

  • Create your local jail from the image or the flavour files.

  • Clone the local jail

  • Mount in the ZFS data set you created pot mount-in -p <jailname> -m /mnt -d /mnt/prometheusdata

  • Optionally export the ports after creating the jail: pot export-ports -p <jailname> -e 9090:9090 -e 9100:9100 -e 3000:3000

  • Adjust to your environment:

    sudo pot set-env -p <jailname> -E DATACENTER=<datacentername> \
      -E NODENAME=<nodename> -E IP=<IP address of this system> \
      -E CONSULSERVERS='<correctly formatted list of quoted IP addresses>' \
      -E SCRAPECONSUL='<correctly formatted list of quoted IP addresses>' \
      -E SCRAPENOMAD='<correctly formatted list of quoted IP addresses>' \
      -E SMTPHOSTPORT="smtp.host.com:25" -E SMTPFROM="alertmanager@example.com" \
      -E ALERTADDRESS="<email address to notify>" \
      [-E SMTPUSER=<smtp auth user> -E SMTPPASS=<smtp auth password>] \
      [-E REMOTELOG=<remote syslog IP>] [-E DNSFORWARDERS=<none|list of IPs>]
    

The CONSULSERVERS parameter defines the consul server instances, and must be set as

  • CONSULSERVERS='"10.0.0.2"' or
  • CONSULSERVERS='"10.0.0.2", "10.0.0.3", "10.0.0.4"' or
  • CONSULSERVERS='"10.0.0.2", "10.0.0.3", "10.0.0.4", "10.0.0.5", "10.0.0.6"'

The SCRAPECONSUL parameter is a list of consul servers with port for TLS (usually 8501), to pass into prometheus.yml.

The SCRAPENOMAD parameter is a list of nomad servers with port for TLS (usually 4646), to pass into prometheus.yml.

The REMOTELOG parameter is the IP address of a remote syslog server to send logs to, such as for the loki flavour on this site.

The DNSFORWARDERS parameter is a space delimited list of IPs to forward DNS requests to. If set to none or left out, no DNS forwarders are used.

The SMTPHOSTPORT parameter is for alertmanager and must be entered in as smtphostname:port.

The SMTPFROM parameter is the alertmanager FROM email address.

The SMTPUSER and SMTPPASS parameters are for SMTP authentication.

The ALERTADDRESS parameter is the email address to send notifications to.

Usage

Note: Some of the information below might be outdated. Accessing endpoints requires mTLS, it’s recommended to place them behind a user facing proxy.

To access prometheus open the following in a browser:

  • http://:9090
  • http://:9090/targets/

To access this node’s own metrics, visit:

  • http://:9100/metrics

or run fetch -o - 'https://127.0.0.1:9100/metrics'

To see the targets being captured via consul, visit

  • http://:9090/targets

To access Grafana open the following in a browser and accept the self-signed certificate:

  • https://:3000

Persistent Storage

Persistent storage will be in the ZFS data set zroot/prometheusdata, available inside the image at /mnt

If you stop the image, the data will still exist, and a new image can be started up and still use it.

If you need to change the directory parameters for the ZFS data set, adjust the mount-in command accordingly for the source directory as mounted by the parent OS.

Do not adjust the image destination mount point at /mnt because Prometheus is configured to use this directory for data.

Custom alerts

You can copy-in custom alerts to /mnt/prometheus/alerts before starting the image.

Alertmanager

To query the alertmanager config via cli:

amtool config show --alertmanager.url=http://localhost:9093

To query the alertmanager live alerts via cli:

amtool -o extended alert --alertmanager.url=http://localhost:9093

Getting Started

How To Use The Ready-Made Image

FreeBSD 14.0:
pot import -p prometheus-amd64-14_0 -t 0.15.4 -U https://potluck.honeyguide.net/prometheus

With Signify Verification:
fetch https://potluck.honeyguide.net/potluck.pub; pot import -p prometheus-amd64-14_0 -t 0.15.4 -C potluck.pub -U https://potluck.honeyguide.net/prometheus

If you don’t want to use the default pot bridged network configuration but instead need an individual network setup (e.g. assign a host IP address), after importing it you can simply clone the jail like that (em0 is the host network adapter in this example):
pot clone -P prometheus-amd64-14_0 -p my-cloned-jail -N alias -i "em0|10.10.10.10"

Note: Some images might require specific network configuration, double check the Overview-chapter at the top.

Alternatively: Create a Jail With This Flavour Yourself

1. Create Flavour Files

Save all files and directories from https://github.com/hny-gd/potluck/tree/master/prometheus to /usr/local/etc/pot/flavours/

2. Create Jail From Flavour

Run
pot create -b <FreeBSD Version> -p <jailname> -t single -N public-bridge -f fbsd-update

with your FreeBSD version (e.g. 14.0) and the name your jail should get.

Note: Some images might require specific network configuration, double check the Overview-chapter at the top.

Version History

0.15.4

  • Add Loki metrics Consul service as a scrape target

0.15.3

  • Make sure prometheus and alertmanager are started when an already provisioned image boots a second time

0.15.2

  • Optimize reloading of services on cert rotation

0.15.1

  • Version bump for new base image

0.14.0

  • Workaround to fix consul-template restart

0.13.1

  • Version bump for FBSD14 base image

0.12.7

  • Protect admin web api endpoint in nginx proxy
  • Web admin api endpoint is still disabled by default, but can be enabled temporarily for maintenance tasks

0.12.6

  • Make consul-template retry more often

0.12.5

  • Extend retention from 15 days to 2 years

0.12.4

  • Update consul configuration to new version
  • Fix _app label in node-exporter

0.12.3

  • Disable QNAME minimization in unbound (consul can’t handle it)

0.12.2

  • Add support from prometheus-json-metrics-exporter (implementation to be provided by user)

0.12.1

  • Add support from prometheus-log-exporter (implementation to be provided by user)

0.12.0

  • Remove SCRAPEDATABASES parameter
  • Discover postgres-exporters automatically

0.11.8

  • Add new parameter DNSFORWARDERS to allow controlling how unbound is configured
  • Add reseason support to allow restarting grafana with fresh credentials
  • Repair config generation

0.11.7

  • Version bump for layered images

0.11.6

  • Correct further bug in consulmetricsproxy config

0.11.5

  • Correct bug in consulmetricsproxy config

0.11.4

  • Make consul node_names non-FQDN

0.11.3

  • Fix nomad-client metrics retrieval

0.11.2

  • Major rework of templates, certificate issuing, and token/entity/group/role structure

0.11.1

  • Fixing alert rules to remove invalid rulesets

0.11.0

  • Update README.md
  • Connect prometheus to nomad, consul, and vault using mTLS over nginx proxies

0.10.9

  • Improve metrics collection

0.10.8

  • Remove alertmanager rule copy-in from /root
  • Preload custom rules simply by pre-loading /mnt/prometheus/alerts

0.10.7

  • Serve prometheus and alertmanager over mTLS

0.10.6

  • Fixing broken alert rulesets

0.10.5

  • Updating config, alerts and alertmanager templates

0.10.4

  • Merged PR 26, incrementing version in changelog

0.10.3

  • Dummy entry, missing version increment

0.10.2

  • Dummy entry, missing version increment

0.10.1

  • Dummy entry, missing version increment

0.10.0

  • Many improvements to service mesh components

0.9.29

  • Rebuild for FreeBSD 12_3 and 13 & pot 13

0.9.28

  • Updating version for merge

0.9.27

  • Fixing missing certs directory

0.9.26

  • Adding syslog-ng back

0.9.25

  • Implementing metric pki and new cook setup

0.9.24

  • Setting stricter permissions on key.pem

0.9.23

  • Removing sftppass, unsetting consul sysrc parameters where needed

0.9.22

  • General security updates, and updating changelog this time

0.9.21

  • Tweaking mandatory variables for optional parameters

0.9.20

  • Bug-fix on gossip key

0.9.19

  • Implementing mandatory variables

0.9.18

  • Prometheus alertmanager added

0.9.17

  • Adding in postgres_exporter config to scrape

0.9.16

  • Updates needed to support Nomad and Vault dashboards in Grafana image

0.9.15

  • Setup for tls-client-validation

0.9.14

  • Turning off flow-control in syslog-ng, setting 120s time_reopen, and reducing log-fifo parameter

0.9.13

  • Clearing syslog-ng /dev/console entries to remove log spam

0.9.12

  • Updates to syslog-ng and standardising cert.pem key.pem ca.pem

0.9.11

  • Implementing syslog-ng with tls for remote logging

0.9.10

  • Switched to quarterly package sources

0.9.9

  • Removing Grafana to own flavour

0.9.8

  • Optional remote logging capability added

0.9.7

  • Node-exporter TLS

0.9.6

  • Vault integration

0.9.5

  • Persistent storage added at /mnt

0.9.4

  • Changed method of Grafana startup to fix non-starting instance

0.9.3

  • Updates for grafana default datasource and dashboard, removing specific targets adjustment in favour of consul

0.9.2

  • Correcting consul published service name to use “node-exporter”

0.9.1

  • Updating to use consul for announcing node_exporter as a service

0.9

  • First test build of Prometheus with node_exporter and Grafana7

These images were built on Thu Aug 8 16:25:02 UTC 2024

Manual Image Download Links

prometheus-amd64-14_0_0.15.4.xz ( )
prometheus-amd64-14_0_0.15.4.xz.skein ( ) prometheus-amd64-14_0_0.15.4.xz.skein.sig ( ) prometheus-amd64-14_0_0.15.4.xz.meta ( )

Jenkins Pot Creation Logs

prometheus-amd64-14_0_0.15.4:


prometheus/prometheus:
copy-in -s /usr/local/etc/pot/flavours/prometheus.d/local -d /root/.pot_local
prometheus/prometheus.sh:
#!/bin/sh

# Based on POTLUCK TEMPLATE v3.0
# Altered by Michael Gmelin
#
# EDIT THE FOLLOWING FOR NEW FLAVOUR:
# 1. RUNS_IN_NOMAD - true or false
# 2. If RUNS_IN_NOMAD is false, can delete the <flavour>+4 file, else
#    make sure pot create command doesn't include it
# 3. Create a matching <flavour> file with this <flavour>.sh file that
#    contains the copy-in commands for the config files from <flavour>.d/
#    Remember that the package directories don't exist yet, so likely copy
#    to /root
# 4. Adjust package installation between BEGIN & END PACKAGE SETUP
# 5. Adjust jail configuration script generation between BEGIN & END COOK
#    Configure the config files that have been copied in where necessary

# Set this to true if this jail flavour is to be created as a nomad
# (i.e. blocking) jail.
# You can then query it in the cook script generation below and the script
# is installed appropriately at the end of this script
RUNS_IN_NOMAD=false

# set the cook log path/filename
COOKLOG=/var/log/cook.log

# check if cooklog exists, create it if not
if [ ! -e $COOKLOG ]
then
    echo "Creating $COOKLOG" | tee -a $COOKLOG
else
    echo "WARNING $COOKLOG already exists"  | tee -a $COOKLOG
fi
date >> $COOKLOG

# -------------------- COMMON ---------------

STEPCOUNT=0
step() {
  STEPCOUNT=$(("$STEPCOUNT" + 1))
  STEP="$*"
  echo "Step $STEPCOUNT: $STEP" | tee -a $COOKLOG
}

exit_ok() {
  trap - EXIT
  exit 0
}

FAILED=" failed"
exit_error() {
  STEP="$*"
  FAILED=""
  exit 1
}

set -e
trap 'echo ERROR: $STEP$FAILED | (>&2 tee -a $COOKLOG)' EXIT

# -------------- BEGIN PACKAGE SETUP -------------

step "Bootstrap package repo"
mkdir -p /usr/local/etc/pkg/repos
# only modify repo if not already done in base image
# shellcheck disable=SC2016
test -e /usr/local/etc/pkg/repos/FreeBSD.conf || \
  echo 'FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly" }' \
    >/usr/local/etc/pkg/repos/FreeBSD.conf
ASSUME_ALWAYS_YES=yes pkg bootstrap

step "Touch /etc/rc.conf"
touch /etc/rc.conf

# this is important, otherwise running /etc/rc from cook will
# overwrite the IP address set in tinirc
step "Remove ifconfig_epair0b from config"
# shellcheck disable=SC2015
sysrc -cq ifconfig_epair0b && sysrc -x ifconfig_epair0b || true

step "Disable sendmail"
service sendmail onedisable

step "Disable sshd"
service sshd onedisable || true

step "Create /usr/local/etc/rc.d"
mkdir -p /usr/local/etc/rc.d

step "Update package repository"
pkg update -f

# we need consul for consul agent
step "Install package consul"
pkg install -y consul

step "Install package consul-template"
pkg install -y consul-template

step "Patching consul-template rc scripts"
sed -i '' 's/^\(start_precmd=consul_template_startprecmd\)$/\1;'\
'extra_commands=reload/'  /usr/local/etc/rc.d/consul-template || true

step "Install package prometheus"
pkg install -y prometheus

step "Install package alertmanager"
pkg install -y alertmanager

step "Install package node_exporter"
pkg install -y node_exporter

step "Install package syslog-ng"
pkg install -y syslog-ng

step "Install package openssl"
pkg install -y openssl

step "Install package sudo"
pkg install -y sudo

step "Install package curl"
pkg install -y curl

step "Install package jq"
pkg install -y jq

step "Install package jo"
pkg install -y jo

step "Install package nginx"
pkg install -y nginx

step "Install package vault"
pkg install -y vault

step "Clean package installation"
pkg clean -y

# -------------- END PACKAGE SETUP -------------

#
# Create configurations
#

#
# Now generate the run command script "cook"
# It configures the system on the first run by creating the config file(s)
# On subsequent runs, it only starts sleeps (if nomad-jail) or simply exits
#


# this runs when image boots
# ----------------- BEGIN COOK ------------------


step "Clean cook artifacts"
rm -rf /usr/local/bin/cook /usr/local/share/cook

step "Install pot local"
tar -C /root/.pot_local -cf - . | tar -C /usr/local -xf -
rm -rf /root/.pot_local

step "Set file ownership on cook scripts"
chown -R root:wheel /usr/local/bin/cook /usr/local/share/cook
chmod 755 /usr/local/share/cook/bin/*


# ----------------- END COOK ------------------


# ---------- NO NEED TO EDIT BELOW ------------

step "Make cook script executable"
if [ -e /usr/local/bin/cook ]
then
    echo "setting executable bit on /usr/local/bin/cook" | tee -a $COOKLOG
    chmod u+x /usr/local/bin/cook
else
    exit_error "there is no /usr/local/bin/cook to make executable"
fi

#
# There are two ways of running a pot jail: "Normal", non-blocking mode and
# "Nomad", i.e. blocking mode (the pot start command does not return until
# the jail is stopped).
# For the normal mode, we create a /usr/local/etc/rc.d script that starts
# the "cook" script generated above each time, for the "Nomad" mode, the cook
# script is started by pot (configuration through flavour file), therefore
# we do not need to do anything here.
#

# Create rc.d script for "normal" mode:
step "Create rc.d script to start cook"
echo "creating rc.d script to start cook" | tee -a $COOKLOG

# shellcheck disable=SC2016
echo '#!/bin/sh
#
# PROVIDE: cook
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
. /etc/rc.subr
name="cook"
rcvar="cook_enable"
load_rc_config $name
: ${cook_enable:="NO"}
: ${cook_env:=""}
command="/usr/local/bin/cook"
command_args=""
run_rc_command "$1"
' > /usr/local/etc/rc.d/cook

step "Make rc.d script to start cook executable"
if [ -e /usr/local/etc/rc.d/cook ]
then
  echo "Setting executable bit on cook rc file" | tee -a $COOKLOG
  chmod u+x /usr/local/etc/rc.d/cook
else
  exit_error "/usr/local/etc/rc.d/cook does not exist"
fi

if [ "$RUNS_IN_NOMAD" != "true" ]
then
  step "Enable cook service"
  # This is a non-nomad (non-blocking) jail, so we need to make sure the script
  # gets started when the jail is started:
  # Otherwise, /usr/local/bin/cook will be set as start script by the pot
  # flavour
  echo "enabling cook" | tee -a $COOKLOG
  service cook enable
fi

# -------------------- DONE ---------------
exit_ok

prometheus/prometheus+1:
prometheus/prometheus+1.sh:

prometheus/prometheus+2:
prometheus/prometheus+2.sh:

prometheus/prometheus+3:
prometheus/prometheus+3.sh:

prometheus/prometheus+4:
prometheus/prometheus+4.sh:
=====>  Create conf dir (/mnt/srv/pot/jails/prometheus-amd64-14_0/conf)
=====>  Cloning freebsd-potluck-amd64-14_0_0_0_27 with snap 
=====>  clone zroot/srv/pot/jails/freebsd-potluck-amd64-14_0_0_0_27/m@1723048271 into zroot/srv/pot/jails/prometheus-amd64-14_0/m
=====>  Flavour: fbsd-update
=====>  Starting prometheus-amd64-14_0 pot for the initial bootstrap
=====>  mount /mnt/srv/pot/jails/prometheus-amd64-14_0/m/tmp
defaultrouter: 10.192.0.1 -> 10.192.0.1
===>  Starting the pot prometheus-amd64-14_0
=====>  Pot prometheus-amd64-14_0 jail params are: allow.set_hostname=false allow.raw_sockets allow.socket_af allow.chflags exec.clean mount.devfs enforce_statfs=2 sysvshm=new sysvsem=new sysvmsg=new children.max=0 devfs_ruleset=4 stop.timeout=10 name=prometheus-amd64-14_0 host.hostname=prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net osrelease=14.0-RELEASE-p9 path=/mnt/srv/pot/jails/prometheus-amd64-14_0/m persist vnet vnet.interface=epair0b
ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg /usr/local/lib/compat/pkg
32-bit compatibility ldconfig path: /usr/lib32
Starting Network: lo0 epair0b.
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
	options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
	inet 127.0.0.1 netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
	groups: lo
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
epair0b: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
	options=8<VLAN_MTU>
	ether 02:7a:57:6f:b6:0b
	inet 10.192.0.3 netmask 0xffc00000 broadcast 10.255.255.255
	groups: epair
	media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
	status: active
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
add host 127.0.0.1: gateway lo0 fib 0: route already in table
add net default: gateway 10.192.0.1
add host ::1: gateway lo0 fib 0: route already in table
add net fe80::: gateway ::1
add net ff02::: gateway ::1
add net ::ffff:0.0.0.0: gateway ::1
add net ::0.0.0.0: gateway ::1
Clearing /tmp (X related).
Updating /var/run/os-release done.
Creating and/or trimming log files.
Updating motd:.
Starting syslogd.
Starting sendmail_submit.
Starting cron.

Thu Aug  8 16:20:19 UTC 2024
/usr/local/etc/pot/flavours/fbsd-update.sh -> /mnt/srv/pot/jails/prometheus-amd64-14_0/m/tmp/fbsd-update.sh
=====>  Executing fbsd-update script on prometheus-amd64-14_0
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 14.0-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 14.0-RELEASE-p9.
No updates are available to install.
=====>  Stop the pot prometheus-amd64-14_0
=====>  Remove p466b4f042514a epair network interfaces
=====>  unmount /mnt/srv/pot/jails/prometheus-amd64-14_0/m/tmp
=====>  unmount /mnt/srv/pot/jails/prometheus-amd64-14_0/m/dev
=====>  Flavour: prometheus
=====>  Executing prometheus pot commands on prometheus-amd64-14_0
=====>  mount /mnt/srv/pot/jails/prometheus-amd64-14_0/m/tmp
=====>  Source /usr/local/etc/pot/flavours/prometheus.d/local copied in the pot prometheus-amd64-14_0
=====>  unmount /mnt/srv/pot/jails/prometheus-amd64-14_0/m/tmp
=====>  /mnt/srv/pot/jails/prometheus-amd64-14_0/m/dev is already unmounted
=====>  Starting prometheus-amd64-14_0 pot for the initial bootstrap
=====>  mount /mnt/srv/pot/jails/prometheus-amd64-14_0/m/tmp
defaultrouter: 10.192.0.1 -> 10.192.0.1
===>  Starting the pot prometheus-amd64-14_0
=====>  Pot prometheus-amd64-14_0 jail params are: allow.set_hostname=false allow.raw_sockets allow.socket_af allow.chflags exec.clean mount.devfs enforce_statfs=2 sysvshm=new sysvsem=new sysvmsg=new children.max=0 devfs_ruleset=4 stop.timeout=10 name=prometheus-amd64-14_0 host.hostname=prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net osrelease=14.0-RELEASE-p9 path=/mnt/srv/pot/jails/prometheus-amd64-14_0/m persist vnet vnet.interface=epair0b
ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg /usr/local/lib/compat/pkg
32-bit compatibility ldconfig path: /usr/lib32
Starting Network: lo0 epair0b.
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
	options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
	inet 127.0.0.1 netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
	groups: lo
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
epair0b: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
	options=8<VLAN_MTU>
	ether 02:56:9b:cb:77:0b
	inet 10.192.0.3 netmask 0xffc00000 broadcast 10.255.255.255
	groups: epair
	media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
	status: active
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
add host 127.0.0.1: gateway lo0 fib 0: route already in table
add net default: gateway 10.192.0.1
add host ::1: gateway lo0 fib 0: route already in table
add net fe80::: gateway ::1
add net ff02::: gateway ::1
add net ::ffff:0.0.0.0: gateway ::1
add net ::0.0.0.0: gateway ::1
Clearing /tmp (X related).
Updating /var/run/os-release done.
Creating and/or trimming log files.
Updating motd:.
Starting syslogd.
Starting sendmail_submit.
Starting cron.

Thu Aug  8 16:20:52 UTC 2024
/usr/local/etc/pot/flavours/prometheus.sh -> /mnt/srv/pot/jails/prometheus-amd64-14_0/m/tmp/prometheus.sh
=====>  Executing prometheus script on prometheus-amd64-14_0
WARNING /var/log/cook.log already exists
Step 1: Bootstrap package repo
pkg already bootstrapped at /usr/local/sbin/pkg
Step 2: Touch /etc/rc.conf
Step 3: Remove ifconfig_epair0b from config
Step 4: Disable sendmail
sendmail disabled in /etc/rc.conf
sendmail_submit disabled in /etc/rc.conf
sendmail_msp_queue disabled in /etc/rc.conf
Step 5: Disable sshd
sshd disabled in /etc/rc.conf
Step 6: Create /usr/local/etc/rc.d
Step 7: Update package repository
Updating FreeBSD repository catalogue...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] Fetching meta.conf: . done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] Fetching data.pkg: .......... done
Processing entries: .......... done
FreeBSD repository update completed. 34465 packages processed.
All repositories are up to date.
Step 8: Install package consul
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	consul: 1.19.0_2

Number of packages to be installed: 1

The process will require 124 MiB more space.
24 MiB to be downloaded.
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Fetching consul-1.19.0_2.pkg: .......... done
Checking integrity... done (0 conflicting)
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Installing consul-1.19.0_2...
===> Creating groups
Creating group 'consul' with gid '469'
===> Creating users
Creating user 'consul' with uid '469'
===> Creating homedir(s)
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Extracting consul-1.19.0_2: ..... done
Step 9: Install package consul-template
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	consul-template: 0.38.1_2

Number of packages to be installed: 1

The process will require 13 MiB more space.
4 MiB to be downloaded.
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Fetching consul-template-0.38.1_2.pkg: .......... done
Checking integrity... done (0 conflicting)
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Installing consul-template-0.38.1_2...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Extracting consul-template-0.38.1_2: ..... done
Step 10: Patching consul-template rc scripts
Step 11: Install package prometheus
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	prometheus: 2.49.1_5

Number of packages to be installed: 1

The process will require 170 MiB more space.
36 MiB to be downloaded.
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Fetching prometheus-2.49.1_5.pkg: .......... done
Checking integrity... done (0 conflicting)
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Installing prometheus-2.49.1_5...
===> Creating groups
Creating group 'prometheus' with gid '478'
===> Creating users
Creating user 'prometheus' with uid '478'
===> Creating homedir(s)
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Extracting prometheus-2.49.1_5: .......... done
Step 12: Install package alertmanager
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	alertmanager: 0.26.0_6

Number of packages to be installed: 1

The process will require 46 MiB more space.
13 MiB to be downloaded.
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Fetching alertmanager-0.26.0_6.pkg: .......... done
Checking integrity... done (0 conflicting)
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Installing alertmanager-0.26.0_6...
===> Creating groups
Creating group 'alertmanager' with gid '479'
===> Creating users
Creating user 'alertmanager' with uid '479'
===> Creating homedir(s)
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Extracting alertmanager-0.26.0_6: ....... done
Step 13: Install package node_exporter
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	node_exporter: 1.6.1_7

Number of packages to be installed: 1

The process will require 11 MiB more space.
4 MiB to be downloaded.
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Fetching node_exporter-1.6.1_7.pkg: .......... done
Checking integrity... done (0 conflicting)
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Installing node_exporter-1.6.1_7...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Extracting node_exporter-1.6.1_7: .......... done
=====
Message from node_exporter-1.6.1_7:

--
If upgrading from a version of node_exporter <0.15.0 you'll need to update any
custom command line flags that you may have set as it now requires a
double-dash (--flag) instead of a single dash (-flag).
The collector flags in 0.15.0 have now been replaced with individual boolean
flags and the -collector.procfs` and -collector.sysfs` flags have been renamed
to --path.procfs and --path.sysfs respectively.
Step 14: Install package syslog-ng
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 10 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	e2fsprogs-libuuid: 1.47.1
	glib: 2.80.4,2
	ivykis: 0.43.2
	json-c: 0.17
	libffi: 3.4.6
	mpdecimal: 4.0.0
	pcre2: 10.43
	py311-packaging: 24.1
	python311: 3.11.9
	syslog-ng: 4.7.1

Number of packages to be installed: 10

The process will require 241 MiB more space.
34 MiB to be downloaded.
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/10] Fetching ivykis-0.43.2.pkg: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [2/10] Fetching mpdecimal-4.0.0.pkg: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [3/10] Fetching py311-packaging-24.1.pkg: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [4/10] Fetching glib-2.80.4,2.pkg: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [5/10] Fetching syslog-ng-4.7.1.pkg: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [6/10] Fetching pcre2-10.43.pkg: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [7/10] Fetching libffi-3.4.6.pkg: ........ done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [8/10] Fetching json-c-0.17.pkg: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [9/10] Fetching e2fsprogs-libuuid-1.47.1.pkg: ....... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [10/10] Fetching python311-3.11.9.pkg: .......... done
Checking integrity... done (0 conflicting)
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/10] Installing mpdecimal-4.0.0...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/10] Extracting mpdecimal-4.0.0: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [2/10] Installing libffi-3.4.6...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [2/10] Extracting libffi-3.4.6: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [3/10] Installing python311-3.11.9...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [3/10] Extracting python311-3.11.9: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [4/10] Installing py311-packaging-24.1...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [4/10] Extracting py311-packaging-24.1: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [5/10] Installing pcre2-10.43...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [5/10] Extracting pcre2-10.43: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [6/10] Installing ivykis-0.43.2...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [6/10] Extracting ivykis-0.43.2: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [7/10] Installing glib-2.80.4,2...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [7/10] Extracting glib-2.80.4,2: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [8/10] Installing json-c-0.17...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [8/10] Extracting json-c-0.17: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [9/10] Installing e2fsprogs-libuuid-1.47.1...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [9/10] Extracting e2fsprogs-libuuid-1.47.1: .......... done
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [10/10] Installing syslog-ng-4.7.1...
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [10/10] Extracting syslog-ng-4.7.1: .......... done
==> Running trigger: glib-schemas.ucl
Compiling glib schemas
No schema files found: doing nothing.
==> Running trigger: gio-modules.ucl
Generating GIO modules cache
=====
Message from python311-3.11.9:

--
Note that some standard Python modules are provided as separate ports
as they require additional dependencies. They are available as:

py311-gdbm       databases/py-gdbm@py311
py311-sqlite3    databases/py-sqlite3@py311
py311-tkinter    x11-toolkits/py-tkinter@py311
=====
Message from syslog-ng-4.7.1:

--
syslog-ng is now installed!  To replace FreeBSD's standard syslogd
(/usr/sbin/syslogd), complete these steps:

1. Create a configuration file named /usr/local/etc/syslog-ng.conf
   (a sample named syslog-ng.conf.sample has been included in
   /usr/local/etc). Note that this is a change in 2.0.2
   version, previous ones put the config file in
   /usr/local/etc/syslog-ng/syslog-ng.conf, so if this is an update
   move that file in the right place

2. Configure syslog-ng to start automatically by adding the following
   to /etc/rc.conf:

        syslog_ng_enable="YES"

3. Prevent the standard FreeBSD syslogd from starting automatically by
   adding a line to the end of your /etc/rc.conf file that reads:

        syslogd_enable="NO"

4. Shut down the standard FreeBSD syslogd:

     kill `cat /var/run/syslog.pid`

5. Start syslog-ng:

     /usr/local/etc/rc.d/syslog-ng start
Step 15: Install package openssl
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed
Step 16: Install package sudo
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed
Step 17: Install package curl
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed
Step 18: Install package jq
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed
Step 19: Install package jo
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed
Step 20: Install package nginx
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	nginx: 1.26.1,3

Number of packages to be installed: 1

The process will require 2 MiB more space.
554 KiB to be downloaded.
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Fetching nginx-1.26.1,3.pkg: .......... done
Checking integrity... done (0 conflicting)
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Installing nginx-1.26.1,3...
===> Creating groups
Using existing group 'www'
===> Creating users
Using existing user 'www'
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Extracting nginx-1.26.1,3: .......... done
=====
Message from nginx-1.26.1,3:

--
Recent version of the NGINX introduces dynamic modules support.  In
FreeBSD ports tree this feature was enabled by default with the DSO
knob.  Several vendor's and third-party modules have been converted
to dynamic modules.  Unset the DSO knob builds an NGINX without
dynamic modules support.

To load a module at runtime, include the new `load_module'
directive in the main context, specifying the path to the shared
object file for the module, enclosed in quotation marks.  When you
reload the configuration or restart NGINX, the module is loaded in.
It is possible to specify a path relative to the source directory,
or a full path, please see
https://www.nginx.com/blog/dynamic-modules-nginx-1-9-11/ and
http://nginx.org/en/docs/ngx_core_module.html#load_module for
details.

Default path for the NGINX dynamic modules is

/usr/local/libexec/nginx.
Step 21: Install package vault
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	vault: 1.14.1_7

Number of packages to be installed: 1

The process will require 179 MiB more space.
37 MiB to be downloaded.
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Fetching vault-1.14.1_7.pkg: .......... done
Checking integrity... done (0 conflicting)
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Installing vault-1.14.1_7...
===> Creating groups
Creating group 'vault' with gid '471'
===> Creating users
Creating user 'vault' with uid '471'
[prometheus-amd64-14_0.vsf00002.cpt.za.honeyguide.net] [1/1] Extracting vault-1.14.1_7: ..... done
=====
Message from vault-1.14.1_7:

--
The vault user created by the vault package is now a member of the daemon
class, which will allow it to use mlock() when started by the rc script. This
will not be reflected in systems where the user already exists. Please add the
vault user to the daemon class manually by running:

pw usermod -L daemon -n vault

or delete the user and reinstall the package.

You may also need to increase memorylocked for the daemon class in
/etc/rc.conf to more than 1024M (the default) or more:

vault_limits_mlock="2048M"

Or to disable mlock, add:

disable_mlock = 1

to /usr/local/etc/vault.hcl
Step 22: Clean package installation
Nothing to do.
Step 23: Clean cook artifacts
Step 24: Install pot local
Step 25: Set file ownership on cook scripts
Step 26: Make cook script executable
setting executable bit on /usr/local/bin/cook
Step 27: Create rc.d script to start cook
creating rc.d script to start cook
Step 28: Make rc.d script to start cook executable
Setting executable bit on cook rc file
Step 29: Enable cook service
enabling cook
cook enabled in /etc/rc.conf
=====>  Stop the pot prometheus-amd64-14_0
=====>  Remove p466b4f063514a epair network interfaces
=====>  unmount /mnt/srv/pot/jails/prometheus-amd64-14_0/m/tmp
=====>  unmount /mnt/srv/pot/jails/prometheus-amd64-14_0/m/dev
===>  exporting prometheus-amd64-14_0 @ 1723134150 to /tmp/prometheus-amd64-14_0_0.15.4.xz

This site © Honeyguide Group (Pty) Ltd, all the hosted software their respective license owners 2020 - 2021 - Disclaimer