• Prometheus学习笔记(2)Prometheus部署


    Prometheus的安装配置启动

    1、Prometheus二进制安装

    Prometheus下载链接:https://prometheus.io/download/

    Prometheus本身的存储是通过时间序列化存储的,所以对时间是很有要求的,系统时间需要通过ntp进行同步,避免因为时间造成数据无法显示。

    # 时间同步
    [root@prometheus ~]# ntpdate ntp1.aliyun.com
    [root@prometheus ~]# crontab -e
    */5 * * * * ntpdate ntp1.aliyun.com &> /dev/null
    
    # 下载
    [root@prometheus ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.14.0/prometheus-2.14.0.linux-amd64.tar.gz
    
    # 解压
    [root@prometheus ~]# tar -zxf prometheus-2.14.0.linux-amd64.tar.gz -C /usr/local
    [root@prometheus ~]# mv /usr/local/prometheus-2.14.0.linux-amd64 /usr/local/prometheus-2.14.0
    [root@prometheus ~]# ln -sv /usr/local/prometheus-2.14.0 /usr/local/prometheus
    
    # 配置自我监控
    [root@prometheus ~]# cd /usr/local/prometheus
    [root@prometheus ~]# vim prometheus.yaml
    global:
      scrape_interval:     15s # 全局配置,默认15s收集一次数据.
    
      # 配置外部标签
      external_labels:
        monitor: 'codelab-monitor'
    
    # 监控配置
    scrape_configs:
      # 监控任务名称,KV形式.
      - job_name: 'prometheus'
    
        # 覆盖前面的全局配置,以5s收集一次数据.
        scrape_interval: 5s
    
        # 目标监控主机和收集数据的端口
        static_configs:
          - targets: ['localhost:9090']
    
    # 启动
    [root@prometheus prometheus]# ./prometheus &
    [root@prometheus prometheus]# netstat -tulnp |grep 9090 
    [root@prometheus prometheus]# netstat -tulnp |grep 9090 
    tcp6       0      0 :::9090                 :::*                    LISTEN      21407/./prometheus  
    

    上面可以看到监听了9090端口,即可通过localhost:9090/metrics来获取指标数据,也可以通过浏览器直接访问localhost:9090通过web界面来查看数据。

    Prometheus的安装还是比较简单的,但是由于Prometheus没有使用systemd来进行管理,用./的方式启动并不方便,这里虽然使用&、nohup的挂起方式也不尽完美,那么这里再来2种守护进程方式运行prometheus。如下:

    • (1)安装screen工具,将prometheus放入后台运行
    [root@prometheus prometheus]# yum install screen -y
    [root@prometheus prometheus]# screen 
    [root@prometheus prometheus]# ./prometheus
    #按Ctrl+a+d后进入后台运行模式
    [root@prometheus prometheus]# screen -ls
    There is a screen on:
    	28915.pts-0.prometheus	(Detached)
    1 Socket in /var/run/screen/S-root.
    
    [root@prometheus prometheus]# ps -ef |grep prometheus
    root     28927 28916  6 15:07 pts/2    00:00:01 ./prometheus
    
    • (2)使用systemd进行管理
    [root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service 
    [Unit]
    Description=prometheus
    Documentation=https://prometheus.io/docs/introduction/overview
    After=network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target
    
    [Service]
    Type=simple
    PIDFile==/var/run/prometheus.pid
    ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.read-timeout=5m --web.max-connections=512 --storage.tsdb.retention=15d --storage.tsdb.path="data/" --query.max-concurrency=20 --query.timeout=2m
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    
    [root@prometheus ~]# systemctl daemon-reload
    [root@prometheus ~]# systemctl start prometheus
    [root@prometheus ~]# ps -ef |grep prometheus
    root     29688     1  1 16:31 ?        00:00:00 /usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.read-timeout=5m --web.max-connections=512 --storage.tsdb.retention=15d --storage.tsdb.path="data/" --query.max-concurrency=20 --query.timeout=2m
    [root@prometheus ~]# netstat -tulnp |grep 9090
    tcp6       0      0 :::9090                 :::*                    LISTEN      29707/prometheus    
    

    这里需要了解的几个启动优化的参数:

    • --config.file:指定prometheus的配置文件路径

    • --web.read-timeout:请求链接的最大等待时间,为了防止过多查询链接请求或太多的空闲链接占用资源

    • --web.max-connections:最大连接数设置

    • --storage.tsdb.retention:prometheus采集数据后会保存在内存和硬盘当中,设定保留数据的时长,避免高消耗

    • --storage.tsdb.path:指定采集监控数据保存的磁盘路径

    • --query.max-concurrency --query.timeout:这两个参数是用于在用户执行查询时,防止太多用户同时查询,也防止用户执行过大的查询而不退出,导致资源过载。

    2、Prometheus容器化安装

    直接使用官方的镜像启动,并映射prometheus.yml配置文件到本地进行管理

    [root@prometheus ~]# docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
    

    还有另外一种方式是通过自定义镜像方式启动Prometheus

    [root@prometheus ~]# vim dockerfile
    FROM prom/prometheus
    ADD prometheus.yml /etc/prometheus/
    
    [root@prometheus ~]# docker build -t my-prometheus .
    [root@prometheus ~]# docker run -p 9090:9090 my-prometheus
    
  • 相关阅读:
    springcloud
    redis实现Session
    深入理解Dip Ioc Di以及Ioc容器
    SQL Server 索引维护 索引碎片 填充因子
    SQL Server 非聚集索引的覆盖,连接交叉和过滤
    SQL Server 索引 聚集索引、非聚集索引、堆
    T-SQL存储过程
    T-SQl 批处理
    T-SQl 游标
    T-SQL 控制流语句
  • 原文地址:https://www.cnblogs.com/linuxk/p/12018006.html
Copyright © 2020-2023  润新知