puluomixiusi监控系统环境搭建

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259

推荐阅读更多精彩内容

  • 主机数据收集 主机数据的采集是集群监控的基础;外部模块收集各个主机采集到的数据分析就能对整个集群完成监控和告警等功...
    梅_梅阅读 6,598评论 0 7
  • 前提 最近公司在联合运维做一套全方位监控的系统,应用集群的技术栈是SpringCloud体系。虽然本人没有参与具体...
    zhrowable阅读 7,119评论 0 22
  • 人们常说理想很丰满,现实很骨感。而伟大的人生从来都是平淡的生活累积而来。毕竟“现在”是“过去”的积累,“未来”是现...
    黑页饮马槽阅读 241评论 0 0
  • 模板 isalpha(a)判断是否为字母 tolower(a)字母转换为小写 一头文件 1排序sort(a,a+n...
    _弓长_大人阅读 476评论 0 0
  • A姑娘与M先生相识已久,只是从前他们的关系仅限于相识罢了。缘分这种事情真的很奇妙,他让本属于两个世界的人相遇相识甚...
    香蕉鱼阅读 748评论 10 2