美文网首页
puluomixiusi监控系统环境搭建

puluomixiusi监控系统环境搭建

作者: wolf4j | 来源:发表于2018-09-17 16:29 被阅读137次

    Prometheus是什么

    prometheus 是一个开源系统监控和报警的工具集合,由SoundCloud创建(http:// soundcloud.com/ ) , 从2012诞生之后, 今已经有许多公司和组织开始使用它 ,这个开源项目拥有大量的积极参与开发和建设的研发人员以及社区用户. 目前已经是一个独 立运行的开源的由各公司自行维护的监控项目。 2016年prometheus 加入了Cloud Native Computing Fondation (CNCF) ,并且成为继Kuernets之后第二个加入该组织的成员。

    Prometheus安装

    安装Prometheus之前我们必须先安装ntp时间同步,prometheus T_S 对系统时间的准确性要求很高,必须保证本机时间实时同步。本次安装以 centos7 为例。

    1. Prometheus下载

    首先 我们去到官网 下载版本 prometheus-2.1.0.linux-amd64.tar.gz

    下载命令:wget https://github.com/prometheus/prometheus/releases/download/v2.1.0/prometheus-2.1.0.linux- amd64.tar.gz

    2. Prometheus安装

    直接解压刚才下载好的安装包:tar -xvzf prometheus-2.1.0.linux-amd64.tar.gz

    3. Prometheus启动

    /prometheus/prometheus-2.1.0.linux-amd64# ./prometheus
    level=info ts=2018-09-17T02:52:48.046018649Z caller=main.go:225 msg="Starting Prometheus" version="(version=2.1.0, branch=HEAD, revision=85f23d82a045d103ea7f3c89a91fba4a93e6367a)"
    level=info ts=2018-09-17T02:52:48.046110981Z caller=main.go:226 build_context="(go=go1.9.2, user=root@6e784304d3ff, date=20180119-12:01:23)"
    level=info ts=2018-09-17T02:52:48.046144704Z caller=main.go:227 host_details="(Linux 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 iZm5eakzlq9sm4ycm9lw0wZ (none))"
    level=info ts=2018-09-17T02:52:48.046173673Z caller=main.go:228 fd_limits="(soft=65535, hard=65535)"
    level=info ts=2018-09-17T02:52:48.050261133Z caller=main.go:499 msg="Starting TSDB ..."
    level=info ts=2018-09-17T02:52:48.050295496Z caller=web.go:383 component=web msg="Start listening for connections" address=0.0.0.0:9090
    level=info ts=2018-09-17T02:52:48.058531965Z caller=main.go:509 msg="TSDB started"
    level=info ts=2018-09-17T02:52:48.05861944Z caller=main.go:585 msg="Loading configuration file" filename=prometheus.yml
    level=info ts=2018-09-17T02:52:48.059760017Z caller=main.go:486 msg="Server is ready to receive web requests."
    level=info ts=2018-09-17T02:52:48.059795986Z caller=manager.go:59 component="scrape manager" msg="Starting scrape manager..."
    
    

    启动之后默认运行的端口为:9090, 可以直接通过浏览器的IP+9090进行访问。

    访问效果如下:

    prometheus.png

    需要注意的一点是,通过浏览器直接访问的形式是没有账号密码验证的,如果希望加上验证的操作,可以使用类似apache httppass 方式添加。

    4. Prometheus配置

    prometheus-yml.png

    可以看到,在Prometheus的文件夹下面有一个prometheus.yml的文件,该文件在解压安装之后就会自动生成,其具体内容如下:

    # my global config
    global:
      scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
      evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
      # scrape_timeout is set to the global default (10s).
    
    # Alertmanager configuration
    alerting:
      alertmanagers:
      - static_configs:
        - targets:
          # - alertmanager:9093
    
    # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
    rule_files:
      # - "first_rules.yml"
      # - "second_rules.yml"
    
    # A scrape configuration containing exactly one endpoint to scrape:
    # Here it's Prometheus itself.
    scrape_configs:
      # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
      - job_name: 'prometheus'
    
        # metrics_path defaults to '/metrics'
        # scheme defaults to 'http'.
    
        static_configs:
          - targets: ['localhost:9090']
    

    下面我们来详细说一下配置文件的具体含义:

    • scrape_interval:抓取采样数据的时间间隔, 默认每15秒去被监控机上采样一次。
    • evaluation_interval:prometheus多长时间会进行一次监控规则的评估(具体的规则我们可以自定义)。
    • Alertmanager:是prometheus的一个用于管理和发出报警的插件
    • 接下来是prometheus配置采集节点的设置:
      • job_name:定义一个job的名称
      • targets:定义监控节点的 targets,targets可以并列写入多个节点,中间使用逗号分割,配置内容为:机器名+端口号

    至此, 一个prometheus_server就搭建完成了,prometheus就可以通过配置文件识别监控的节点,持续开始采集数据进行监控。

    node-exporter

    光有prometheus_server是不够的,我们需要给监控节点搭建第一个exporter 用来采样需要被监控节点的数据。node_exporter是一个以http_server方式运行在后台,并且持续不断采集 Linux
    系统中 各种操作系统本身相关的监控参数的程序。

    1. exporter下载

    官网下载node_exporter。

    image.png

    下载链接:wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0/node_exporter-0.16.0.linux-amd64.tar.gz

    2. exporter安装

    使用 tar 命令直接解压即可。

    3. exporter运行

    解压完成之后,系统会默认生成一个node_exporter的可执行文件,直接运行即可。

    image.png

    运行效果如下:

    INFO[0000] Starting node_exporter (version=0.16.0, branch=HEAD, revision=d42bd70f4363dced6b77d8fc311ea57b63387e4f)  source="node_exporter.go:82"
    INFO[0000] Build context (go=go1.9.6, user=root@a67a9bc13a69, date=20180515-15:52:42)  source="node_exporter.go:83"
    INFO[0000] Enabled collectors:                           source="node_exporter.go:90"
    INFO[0000]  - arp                                        source="node_exporter.go:97"
    INFO[0000]  - bcache                                     source="node_exporter.go:97"
    INFO[0000]  - bonding                                    source="node_exporter.go:97"
    INFO[0000]  - conntrack                                  source="node_exporter.go:97"
    INFO[0000]  - cpu                                        source="node_exporter.go:97"
    INFO[0000]  - diskstats                                  source="node_exporter.go:97"
    INFO[0000]  - edac                                       source="node_exporter.go:97"
    INFO[0000]  - entropy                                    source="node_exporter.go:97"
    INFO[0000]  - filefd                                     source="node_exporter.go:97"
    INFO[0000]  - filesystem                                 source="node_exporter.go:97"
    INFO[0000]  - hwmon                                      source="node_exporter.go:97"
    INFO[0000]  - infiniband                                 source="node_exporter.go:97"
    INFO[0000]  - ipvs                                       source="node_exporter.go:97"
    INFO[0000]  - loadavg                                    source="node_exporter.go:97"
    INFO[0000]  - mdadm                                      source="node_exporter.go:97"
    INFO[0000]  - meminfo                                    source="node_exporter.go:97"
    INFO[0000]  - netdev                                     source="node_exporter.go:97"
    INFO[0000]  - netstat                                    source="node_exporter.go:97"
    INFO[0000]  - nfs                                        source="node_exporter.go:97"
    INFO[0000]  - nfsd                                       source="node_exporter.go:97"
    INFO[0000]  - sockstat                                   source="node_exporter.go:97"
    INFO[0000]  - stat                                       source="node_exporter.go:97"
    INFO[0000]  - textfile                                   source="node_exporter.go:97"
    INFO[0000]  - time                                       source="node_exporter.go:97"
    INFO[0000]  - timex                                      source="node_exporter.go:97"
    INFO[0000]  - uname                                      source="node_exporter.go:97"
    INFO[0000]  - vmstat                                     source="node_exporter.go:97"
    INFO[0000]  - wifi                                       source="node_exporter.go:97"
    INFO[0000]  - xfs                                        source="node_exporter.go:97"
    INFO[0000]  - zfs                                        source="node_exporter.go:97"
    INFO[0000] Listening on :9100                            source="node_exporter.go:111"
    

    可以看到,exporter的默认运行端口为:9100

    grafana

    Grafana是一款近几年新兴的开源数据绘图工具平台,默认支持以下几种数据源作为输入:

    image.png

    1. grafana下载&&安装

    官网下载地址

    具体的安装过程,官网给出了详细的教程,在此不在赘述

    image.png

    2. grafana运行

    启动命令:service grafana-server start

    启动之后,可以使用service grafana-server status查看grafana的状态。

     service grafana-server status
    ● grafana-server.service - Grafana instance
       Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled)
       Active: active (running) since Wed 2018-08-29 11:11:42 CST; 2 weeks 5 days ago
         Docs: http://docs.grafana.org
     Main PID: 8493 (grafana-server)
       CGroup: /system.slice/grafana-server.service
    

    启动之后,默认的端口为:3000,可以在浏览器上直接通过:IP+3000 访问。

    image.png

    进入grafana主页,设置相应的数据源( Data Sources)

    image.png

    主要需要去设置Type和URL这两项:

    image.png

    之后就进入 new dashboard的 主界面

    image.png

    创建自己所需要的监控数据模版。
    dashboard支持导入功能,我们可以直接将一个好的demo导入到自己的监控面板中,具体可以参照如下链接:https://grafana.com/dashboards?utm_source=grafana_search

    grafana支持两种导入方式,一种是通过官网固定的ID号码,一种是导入其对应的json文件格式,具体如下图:

    image.png

    至此,一个简单的监控环境就可以运行起来。

    相关文章

      网友评论

          本文标题:puluomixiusi监控系统环境搭建

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