zoukankan      html  css  js  c++  java
  • 【Prometheus专题】2. Prometheus监控组件安装

    本文档将介绍如何在CentOS7上安装prometheus各组件,包括prometheus本身,也有alertmanager
    prometheus所在的机器配置要求也不是很高, 正常8c16g1T的机器足够了,硬盘上需要考虑的长远一些,你的监控数据要保留多久,我这边四套k8s集群(pod数量200+), 加上一些基础资源比如zookpeer、kafka、redis的监控数据,一个月能用磁盘300G,各位在申请机器时最好申请500G+的,如果你要用prometheus监控你的node节点,最好1T+吧,因为拉监控的历史数据,一般都1个月起。


    各位请注意,我这边的数据盘挂载的目录是/srv; 如果你们的数据盘不是这个,请注意替换

    Prometheus

    下载并安装

    下载地址: https://github.com/prometheus/prometheus/releases/download/v2.22.0/prometheus-2.22.0.linux-amd64.tar.gz

    useradd -r -M -s /sbin/nologin   prometheus
    mkdir -p /srv/app; mkdir -p /srv/{data,logs,backup}/prometheus
    wget -c https://github.com/prometheus/prometheus/releases/download/v2.22.0/prometheus-2.22.0.linux-amd64.tar.gz
    tar -zxf prometheus-2.22.0.linux-amd64.tar.gz
    mv prometheus-2.22.0.linux-amd64 /srv/app/prometheus
    chown -Rf prometheus:prometheus /srv/{app,data,logs,backup}/prometheus
    

    添加服务启动

    vim /etc/systemd/system/prometheus.service 
    #写入以下内容
    [Unit]
    Description=Prometheus
    After=network.target alertmanager.target    #如果不使用告警模块alertmanager,可以把alertmanager.target去掉
    
    [Service]
    Type=simple
    User=prometheus
    ExecStart=/srv/app/prometheus/prometheus 
              --web.listen-address=localhost:9090 
              --web.external-url=http://localhost/prometheus 
              --web.page-title=Prometheus  
              --config.file=/srv/app/prometheus/prometheus.yml 
              --storage.tsdb.path=/srv/data/prometheus 
              --storage.tsdb.retention.tim=90d 
              --storage.tsdb.no-lockfile 
              --web.console.libraries="/srv/app/prometheus/console_libraries" 
              --web.console.templates="/srv/app/prometheus/consoles" 
              --web.enable-lifecycle
    ExecStop=/bin/kill -s QUIT $MAINPID
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    

    启动参数解析

    • --web.listen-address=localhost:9090 监听地址,建议监听本地,方便nginx代理+认证
    • --web.external-url=http://localhost/prometheus 类似root_url; nginx代理时可以定义location
    • --web.page-title=Prometheus web界面的标题,这个根据自己的情况自定义
    • --config.file=/srv/app/prometheus/prometheus.yml 配置文件的路径
    • --storage.tsdb.path=/srv/data/prometheus prometheus的监控数据存放目录
    • --storage.tsdb.retention=90d 监控数据保留多少天
    • --web.enable-lifecycle 当 Prometheus 有配置文件修改,我们可以采用 Prometheus 提供的热更新方法实现在不停服务的情况下实现配置文件的重新加载。

    设置开机启动

    systemctl enable prometheus
    systemctl start prometheus
    

    Alertmanager

    下载地址: https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz

    下载安装

    useradd -r -M -s /sbin/nologin   alertmanager
    mkdir -p /srv/{data,logs,backup}/alertmanager
    wget -c https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz
    tar -zxf alertmanager-0.21.0.linux-amd64.tar.gz
    mv alertmanager-0.21.0.linux-amd64 /srv/app/alertmanager
    chown -Rf alertmanager:alertmanager /srv/{app,data,logs,backup}/alertmanager
    

    添加服务启动

    vim /etc/systemd/system/alertmanager.service 
    #写入以下内容
    [Unit]
    Description=Alertmanager
    After=network.target
    
    [Service]
    Type=simple
    User=alertmanager
    ExecStart=/srv/app/alertmanager/alertmanager 
              --web.listen-address=localhost:9093 
              --web.external-url=http://localhost/alertmanager 
              --config.file=/srv/app/alertmanager/alertmanager.yml 
              --storage.path=/srv/data/alertmanager
    ExecStop=/bin/kill -s QUIT $MAINPID
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    

    启动参数解析

    • --web.listen-address=localhost:9093 服务监听地址
    • --web.external-url=http://localhost/alertmanager 服务root_url
    • --config.file=/srv/app/alertmanager/alertmanager.yml 服务配置目录
    • --storage.path=/srv/data/alertmanager 服务数据存储目录

    设置开机自启

    systemctl enable alertmanager
    systemctl start alertmanager
    

    看到这里你会发现并没有服务配置上的修改就已经把服务给启动了,其实不受影响的,默认的配置也是可以正常启动服务的。下一篇再来讲解prometheus和alertmanager的配置。

    Grafana

    数据库配置

    grafana比较特殊,虽然不需要外部数据库也是能够启动的,但是对于讲求备份来说是机器不安全和方便的;建议使用MySQL, 安装MySQL数据库的文档见: https://www.cnblogs.com/DevOpsTechLab/p/13581691.html ; 我这里就不再写一遍了

    创建需要的数据库以及用户并授权访问

    注意: 生产环境注意修改高强度密码, 但是不能有特殊字符,grafana对数据库密码特殊字符的支持程度不高(大坑!)

    mysql>create database grafana;
    mysql>grant all on grafana.* to 'grafana'@'%' identified by '12345678';    
    

    grafana下载安装并配置

    下载地址: https://dl.grafana.com/oss/release/grafana-7.2.1.linux-amd64.tar.gz

    useradd -r -M -s /sbin/nologin   grafana
    mkdir -p /srv/{data,logs,backup}/grafana
    wget https://dl.grafana.com/oss/release/grafana-7.2.1.linux-amd64.tar.gz
    tar -zxvf grafana-7.2.1.linux-amd64.tar.gz
    mv grafana-7.2.1  /srv/app/grafana
    chown -Rf grafana:grafana /srv/{data,logs,backup}/grafana
    

    修改配置

    vim  /srv/app/grafana/conf/defaults.ini
    #修改以下配置
    data = /srv/data/grafana
    logs = /srv/logs/grafana
    plugins = /srv/data/plugins
    root_url = http:///grafana
    type = mysql
    host = 127.0.0.1:3306
    name = grafana
    user = grafana
    password =12345678
    

    添加服务启动

    vim /etc/systemd/system/grafana.service 
    #写入以下内容
    [Unit]
    Description=Grafana
    After=network.target mysqld.target
    
    [Service]
    Type=simple
    User=grafana
    ExecStart=/srv/app/grafana/bin/grafana-server -homepath /srv/app/grafana
    ExecStop=/bin/kill -s QUIT $MAINPID
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    

    设置开机自启

    systemctl enable grafana
    systemctl start grafana
    

    Nginx代理以上服务

    server {
             listen       80;
             server_name  localhost;
             access_log    /var/log/nginx/access.log;
             error_log       /var/log/nginx/error.log;
             location /grafana/ {
                  proxy_pass         http://localhost:3000/;
                  #proxy_set_header   Authorization "";     #如果访问prometheus添加了http认证,建议增加这个配置
                  proxy_set_header   Host               $host;
                  proxy_set_header   X-Real-IP        $remote_addr;
                  proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
             }
             location /prometheus {
                  proxy_pass         http://localhost:9090;
                  proxy_set_header   Host                $host;
                  proxy_set_header   X-Real-IP        $remote_addr;
                  proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
             }
             location /alertmanager {
                  proxy_pass         http://localhost:9093;
                  proxy_set_header   Host               $host;
                  proxy_set_header   X-Real-IP        $remote_addr;
                  proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
             }
    }
    

    好了,到此,全部安装都结束了,配置上的问题,后面的篇章再讲。

  • 相关阅读:
    支付宝-单笔转账接口
    # Creating Server TCP listening socket *:6379: bind: No such file or directory
    Window 下安装 Redis,配置redis环境变量
    Ajax的跨域(一)
    web人脸识别(二)
    web人脸识别(一)
    给GridView添加列头复选框
    计算两个时间相差多少年月日的sql算法
    MUI下拉加载安卓手机无效的解决方法
    博主回来了!
  • 原文地址:https://www.cnblogs.com/DevOpsTechLab/p/13830314.html
Copyright © 2011-2022 走看看