美文网首页
Prometheus 组件 部署(systemd 服务管理)

Prometheus 组件 部署(systemd 服务管理)

作者: 偷油考拉 | 来源:发表于2024-04-21 16:11 被阅读0次

    一、prometheus 部署

    1. 下载二进制包

    wget https://github.com/prometheus/prometheus/releases/download/v2.45.4/prometheus-2.45.4.linux-amd64.tar.gz
    

    2. 创建运行用户 prometheus

    sudo useradd -rs /bin/false prometheus
    

    3. 创建运行目录

    sudo mkdir -p /lvmdata/prometheus/data-prometheus
    sudo chown -R prometheus:prometheus /lvmdata/prometheus/
    

    4. 部署文件

    tar xzf prometheus-2.45.4.linux-amd64.tar.gz && cd prometheus-2.45.4.linux-amd64
    sudo install -o prometheus -g prometheus -m 0755 prometheus /usr/local/bin/prometheus
    sudo install -o prometheus -g prometheus -m 0755 promtool /usr/local/bin/promtool
    sudo install -o prometheus -g prometheus -m 0755 prometheus.yml /lvmdata/prometheus/prometheus.yml
    sudo install -o prometheus -g prometheus -m 0755 promtool /usr/local/bin/promtool
    sudo sh -c "cp -r console* /lvmdata/prometheus/ && chown -R prometheus:prometheus /lvmdata/prometheus/"
    

    5. 创建 systemd service 文件 /etc/systemd/system/prometheus.service

    执行如下命令:

    sudo tee /etc/systemd/system/prometheus.service<<EOF
    [Unit]
    Description=Prometheus
    Wants=network-online.target 
    After=network-online.target
    
    [Service]
    Type=simple
    User=prometheus
    Group=prometheus
    Restart=always
    ExecStart=/usr/local/bin/prometheus \
      --config.file=/lvmdata/prometheus/prometheus.yml \
      --web.console.libraries=/lvmdata/prometheus/console_libraries \
      --web.console.templates=/lvmdata/prometheus/conf/consoles \
      --storage.tsdb.path=/lvmdata/prometheus/data-prometheus \
      --storage.tsdb.retention.time=30d 
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    sudo systemctl daemon-reload
    sudo systemctl enable --now prometheus
    

    6. 重新加载配置文件

    Prometheus 可以在运行时重新加载配置文件,而不用重启

    curl -i -XPOST localhost:9090/-/reload
    curl -X POST http://127.0.0.1:9090/-/reload
    

    二、alertmanager 部署

    1. 下载二进制包

    wget https://github.com/prometheus/alertmanager/releases/download/v0.27.0/alertmanager-0.27.0.linux-amd64.tar.gz
    

    2. 创建运行用户 alertmanager

    sudo useradd -rs /bin/false alertmanager
    

    如果与prometheus共同部署,也可以直接使用 prometheus 用户名

    3. 部署文件

    tar xzf alertmanager-0.27.0.linux-amd64.tar.gz && cd alertmanager-0.27.0.linux-amd64
    sudo install -o prometheus -g prometheus -m 0755 prometheus /usr/local/bin/prometheus
    sudo install -o prometheus -g prometheus -m 0755 amtool /usr/local/bin/amtool
    sudo install -o prometheus -g prometheus -m 0755 alertmanager.yml /lvmdata/prometheus/alertmanager.yml
    

    4. 创建 systemd service 文件 /etc/systemd/system/alertmanager.service

    sudo tee /etc/systemd/system/alertmanager.service<<EOF
    [Unit]
    Description=Alertmanager
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    User=prometheus
    Group=prometheus
    Type=simple
    WorkingDirectory=/lvmdata/prometheus/
    ExecStart=/usr/local/bin/alertmanager \
        --config.file=/lvmdata/prometheus/alertmanager.yml \
        --storage.path=/lvmdata/prometheus/data-alertmanager \
        --web.external-url http://0.0.0.0:9093
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    sudo systemctl daemon-reload
    sudo systemctl enable --now alertmanager
    

    三、node_exporter 部署

    Node Exporter Setup on Linux Nodes - VMware
    node-exporter - Prometheus
    node-exporter - Github

    1. 下载二进制包

    wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
    

    2. 创建运行用户 node_exporter

    sudo useradd -rs /bin/false node_exporter
    

    3. 部署二进制文件

    将解压后的 node_exporter 二进制文件部署到 /usr/local/bin/

    sudo install -o node_exporter -g node_exporter -m 0755 node_exporter /usr/local/bin/node_exporter
    

    4. 创建 systemd service 文件 /etc/systemd/system/node_exporter.service

    sudo tee /etc/systemd/system/node_exporter.service<<EOF
    [Unit]
    Description=Node Exporter
    After=network.target
     
    [Service]
    User=node_exporter
    Group=node_exporter
    Type=simple
    ExecStart=/usr/local/bin/node_exporter
     
    [Install]
    WantedBy=multi-user.target
    EOF
    
    sudo systemctl daemon-reload
    sudo systemctl enable --now node_exporter
    

    四、process-exporter 部署

    https://prometheus.io/docs/instrumenting/exporters/#miscellaneous
    https://github.com/ncabatoff/process-exporter

    注意事项
    As /proc/[pid]/io are set by the kernel as read only to the process' user (see #137), to get these values you should run process-exporter either as that user or as root. Otherwise, we can't read these values and you'll get a constant 0 in the metric.
    在运行环境中,可以配置运行账户固定为1002,然后指定 process-exporter 用户组为1002。

    1. 二进制部署

    • 下载二进制包
    wget https://github.com/ncabatoff/process-exporter/releases/download/v0.8.2/process-exporter-0.8.2.linux-amd64.tar.gz
    
    • 创建运行用户 process_exporter
    sudo useradd -rs /bin/false process-exporter
    
    • 部署二进制文件

    将解压后的 process_exporter 二进制文件部署到 /usr/local/bin/

    sudo install -o process_exporter -G 1002 -m 0755 process_exporter /usr/local/bin/process_exporter
    
    • 创建 systemd service 文件 /etc/systemd/system/process_exporter.service
    sudo tee /etc/systemd/system/node_exporter.service<<EOF
    [Unit]
    Description=process-exporter
    After=network.target
    
    [Service]
    User=root
    Type=simple
    ExecStart=/usr/local/bin/process-exporter --config.path=/lvmdata/process-exporter/process-name.yaml
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    EOF
    

    2. 使用 rpm 包部署

    • 下载rpm包,并部署
    wget https://github.com/ncabatoff/process-exporter/releases/download/v0.8.2/process-exporter_0.8.2_linux_amd64.rpm
    rpm -ivh process-exporter_0.8.2_linux_amd64.rpm
    

    Created symlink /etc/systemd/system/multi-user.target.wants/process-exporter.service/usr/lib/systemd/system/process-exporter.service.

    • 查看服务配置文件
    [Unit]
    Description=Process Exporter for Prometheus
    
    [Service]
    User=root
    Type=simple
    EnvironmentFile=-/etc/default/process-exporter
    ExecStart=/usr/bin/process-exporter $OPTS
    KillMode=process
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
    • 解析安装文件
    [root@VM-99-12-centos ~]# rpm -ql process-exporter
    /etc/default/process-exporter
    /etc/process-exporter/all.yaml
    /lib/systemd/system/process-exporter.service
    /usr/bin/process-exporter
    
    • 环境变量配置文件
    [root@VM-99-12-centos ~]# cat /etc/default/process-exporter 
    # process-exporter startup flags
    OPTS='--config.path /etc/process-exporter/all.yaml --web.listen-address=:9256'
    
    • 监控配置文件
    [root@VM-99-12-centos ~]# cat /etc/process-exporter/all.yaml 
    process_names:
      - name: "{{.Comm}}"
        cmdline: 
        - '.+'
    

    相关文章

      网友评论

          本文标题:Prometheus 组件 部署(systemd 服务管理)

          本文链接:https://www.haomeiwen.com/subject/bycvxjtx.html