Ubuntu 安装 prometheus

这篇博客详细介绍了如何下载并安装Prometheus 2.40.4版本,包括将可执行文件移动到/usr/bin,配置文件转移,创建prometheus用户,设置权限,创建服务启动配置文件,并提供了启动、停止和重启服务的命令。此外,还提到了配置文件的重新加载方法,需要开启--web.enable-admin-api选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官网下载链接
这里选择下载最新版

wget https://github.com/prometheus/prometheus/releases/download/v2.40.4/prometheus-2.40.4.linux-amd64.tar.gz
tar -xf prometheus-2.40.4.linux-amd64.tar.gz
cd prometheus-2.40.4.linux-amd64

将可执行命令转移到/usr/bin

mv prometheus promtool /usr/bin/

将配置文件转移

mkdir /etc/prometheus/
cp -r console_libraries consoles /etc/prometheus/

添加prometheus用户

useradd -M -r -s /bin/false prometheus

创建所需路径并赋予权限

mkdir /etc/prometheus /var/lib/prometheus/metrics2 /var/run/prometheus /var/log/prometheus
chown -R prometheus:prometheus /var/lib/prometheus/ /etc/prometheus/ /var/run/prometheus /var/log/prometheus

创建prometheus服务启动配置文件

cd /etc/init.d/
vim prometheus

配置文件参考内容

#!/bin/sh
# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing.
if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
    set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script
fi
### BEGIN INIT INFO
# Provides:          prometheus
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Monitoring system and time series database
# Description:       Prometheus is a systems and services monitoring system. It
#                    collects metrics from configured targets at given
#                    intervals, evaluates rule expressions, displays the
#                    results, and can trigger alerts if some condition is
#                    observed to be true.
### END INIT INFO

# Author: Martín Ferrari <tincho@debian.org>

DESC="monitoring system and time series database"
DAEMON=/usr/bin/prometheus
NAME=prometheus
USER=prometheus
PIDFILE=/var/run/prometheus/prometheus.pid
LOGFILE=/var/log/prometheus/prometheus.log
CFGFILE=/etc/prometheus/prometheus.yml

HELPER=/usr/bin/daemon
HELPER_ARGS="--name=$NAME --output=$LOGFILE --pidfile=$PIDFILE --user=$USER"

ARGS="--config.file=/etc/prometheus/prometheus.yml \
      --web.console.templates=/etc/prometheus/consoles \
      --web.console.libraries=/etc/prometheus/console_libraries \
      --storage.tsdb.path=/var/lib/prometheus/metrics2/ \
      --storage.tsdb.retention.time=180d \
      --query.max-samples=200000000 \
      --web.enable-admin-api \
      --storage.tsdb.wal-compression \
      --web.enable-lifecycle"

config_check()
{
    retcode=0
    errors="$(/usr/bin/promtool check config $CFGFILE 2>&1)" || retcode=$?
    if [ $retcode -ne 0 ]; then
        log_failure_msg
        echo "Configuration test failed. Output of config test was:" >&2
        echo "$errors" >&2
        return $retcode
    fi
}

do_start_prepare()
{
    mkdir -p `dirname $PIDFILE` || true
    chown -R $USER: /var/lib/prometheus/metrics2
    chown -R $USER: `dirname $LOGFILE`
    chown -R $USER: `dirname $PIDFILE`
}

do_start_cmd()
{
    # Return
    #   0 if daemon has been started
    #   1 if daemon was already running
    #   2 if daemon could not be started
    $HELPER $HELPER_ARGS --running && return 1
    config_check || return 2
    $HELPER $HELPER_ARGS -- $DAEMON $ARGS || return 2
    return 0
}

do_stop_cmd()
{
    # Return
    #   0 if daemon has been stopped
    #   1 if daemon was already stopped
    #   2 if daemon could not be stopped
    #   other if a failure occurred
    $HELPER $HELPER_ARGS --running || return 1
    $HELPER $HELPER_ARGS --stop || return 2
    # wait for the process to really terminate
    for n in 1 2 3 4 5; do
        sleep $n
        $HELPER $HELPER_ARGS --running || break
    done
    $HELPER $HELPER_ARGS --running || return 0
    return 2
}

do_reload()
{
    log_daemon_msg "Reloading $DESC configuration files" "$NAME"
    $HELPER $HELPER_ARGS --running || return 1
    config_check || return 2
    helper_pid=$(cat $PIDFILE)
    if [ -z "$helper_pid" ]; then
        log_failure_msg "Unable to find PID"
        return 1
    fi
    start-stop-daemon --stop --signal 1 --quiet \
        --ppid "$helper_pid" --exec "$DAEMON"
    log_end_msg $?
}

服务的启 停 重启

chmod +x /etc/init.d/prometheus
/etc/init.d/prometheus start/stop/restart

proemtheus配置文件重新加载(前提是开启了–web.enable-admin-api选项)

curl -X POST http://localhost:9090/-/reload
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值