概述

Prometheus是一个开源的服务监控系统,它通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。它提供了一个简单的网页界面、一个功能强大的查询语言以及HTTP接口等等。Prometheus通过安装在远程机器上的exporter来收集监控数据,这里用到了以下两个exporter:
Grafana是一个开源的功能丰富的数据可视化平台,通常用于时序数据的可视化。它内置了以下数据源的支持:
并可以通过插件扩展支持的数据源。
架构图
下面是本次部署的架构图
安装并运行Prometheus
1.在 Monitor 上安装 Prometheus
安装至/opt/prometheus
$ wget https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-1.5.2.linux-amd64.tar.gz $ tar zxvf prometheus-1.5.2.linux-amd64.tar.gz $ mv prometheus-1.5.2.linux-amd64 /opt/prometheus
2.在安装目下编辑配置文件 prometheus.yml
vim /opt/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). # Attach these labels to any time series or alerts when communicating with # external systems (federation, remote storage, Alertmanager). external_labels: monitor: 'codelab-monitor' # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first.rules" # - "second.rules" # 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'] # 以下是添加的部分 - job_name: linux static_configs: - targets: ['172.30.251.214:9100'] labels: instance: db1 - job_name: mysql static_configs: - targets: ['172.30.251.214:9104'] labels: instance: db1
其中:172.30.251.214是MySQL的IP,端口则是对应的exporter的监听端口。
3.启动Prometheus
[loya@centos6 prometheus]$ ./prometheus INFO[0000] Starting prometheus (version=1.5.2, branch=master, revision=bd1182d29f462c39544f94cc822830e1c64cf55b) source=main.go:75 INFO[0000] Build context (go=go1.7.5, user=root@a8af9200f95d, date=20170210-14:41:22) source=main.go:76 INFO[0000] Loading configuration file prometheus.yml source=main.go:248 INFO[0000] Loading series map and head chunks... source=storage.go:373 INFO[0000] 0 series loaded. source=storage.go:378 INFO[0000] Starting target manager... source=targetmanager.go:61 INFO[0000] Listening on :9090 source=web.go:259
Prometheus内置了一个web界面,可以通过http://monitor_host:9090进行访问:
在Status->Targets页面下,可以看到我们配置的两个Target,它们的State为DOWN。
4.接下来需要在被监控机器上安装并运行exporter
下载exporters并解压:
$ mkdir /opt/prometheus/prometheus_exporters $ cd /opt/prometheus/prometheus_exporters $ wget https://github.com/prometheus/node_exporter/releases/download/v0.14.0-rc.1/node_exporter-0.14.0-rc.1.linux-amd64.tar.gz $ wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.9.0/mysqld_exporter-0.9.0.linux-amd64.tar.gz $ tar zxvf node_exporter-0.14.0-rc.1.linux-amd64.tar.gz $ tar zxvf mysqld_exporter-0.9.0.linux-amd64.tar.gz # 将各自的可执行文件移动到/opt/prometheus/prometheus_exporters $ ll /opt/prometheus/prometheus_exporters total 24464 -rwxr-xr-x 1 root root 12182376 Feb 23 19:01 mysqld_exporter -rwxr-xr-x 1 root root 12862209 Feb 23 19:01 node_exporter
运行node_exporter
$ cd /opt/prometheus/prometheus_exporters $ ./node_exporter INFO[0000] Starting node_exporter (version=0.14.0-rc.1, branch=master, revision=5a07f4173d97fa0dd307db5bd3c2e6da26a4b16e) source="node_exporter.go:136" INFO[0000] Build context (go=go1.7.4, user=root@ed143c8f2fcd, date=20170116-16:00:03) source="node_exporter.go:137" INFO[0000] No directory specified, see --collector.textfile.directory source="textfile.go:57" INFO[0000] Enabled collectors: source="node_exporter.go:156" INFO[0000] - entropy source="node_exporter.go:158" INFO[0000] - loadavg source="node_exporter.go:158" INFO[0000] - stat source="node_exporter.go:158" INFO[0000] - diskstats source="node_exporter.go:158" INFO[0000] - textfile source="node_exporter.go:158" INFO[0000] - vmstat source="node_exporter.go:158" INFO[0000] - meminfo source="node_exporter.go:158" INFO[0000] - filefd source="node_exporter.go:158" INFO[0000] - filesystem source="node_exporter.go:158" INFO[0000] - mdadm source="node_exporter.go:158" INFO[0000] - netdev source="node_exporter.go:158" INFO[0000] - sockstat source="node_exporter.go:158" INFO[0000] - time source="node_exporter.go:158" INFO[0000] - zfs source="node_exporter.go:158" INFO[0000] - edac source="node_exporter.go:158" INFO[0000] - hwmon source="node_exporter.go:158" INFO[0000] - netstat source="node_exporter.go:158" INFO[0000] - uname source="node_exporter.go:158" INFO[0000] - conntrack source="node_exporter.go:158" INFO[0000] Listening on :9100 source="node_exporter.go:176"
mysqld_exporter需要连接到MySQL,所以需要MySQL权限,我们为其创建用户并赋予所需的权限:
mysql> GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'prom'@'localhost' identified by 'abc123'; mysql> GRANT SELECT ON performance_schema.* TO 'prom'@'localhost';
创建.my.cnf文件并运行mysqld_exporter:
$ cd /opt/prometheus/prometheus_exporters $ $ cat << EOF > .my.cnf [client] user=prom password=abc123 EOF $ $ ./mysqld_exporter -config.my-cnf=".my.cnf" INFO[0000] Starting mysqld_exporter (version=0.9.0, branch=master, revision=8400af20ccdbf6b5e0faa2c925c56c48cd78d70b) source=mysqld_exporter.go:432 INFO[0000] Build context (go=go1.6.3, user=root@2c131c66ca20, date=20160926-18:28:09) source=mysqld_exporter.go:433 INFO[0000] Listening on :9104 source=mysqld_exporter.go:451
回到Prometheus web界面Status->Targets,可以看到两个Target的状态已经变成UP了:
安装和运行Grafana
安装:
Grafana 的安装官方文档比较清晰,这里不再赘述。
配置:
编辑配置文件/etc/grafana/grafana.ini,修改dashboards.json段落下两个参数的值:
[dashboards.json] enabled = true path = /var/lib/grafana/dashboards
导入Prometheus Dashboard:
$ git clone https://github.com/percona/grafana-dashboards.git $ cp -r grafana-dashboards/dashboards /var/lib/grafana
启动:
$ /etc/init.d/grafana-server start
通过http://monitor_host:3000访问Grafana Web界面(缺省帐号/密码为admin/admin)
登录后,通过Data Sources页面添加数据源:
然后就可以通过选择不同的仪表盘(左上角)和时间段(右上角)来呈现图表了:
System Overview:
MySQL Overview:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# prometheus
# mysql
# grafana
# 性能监控
# Prometheus 入门教程之SpringBoot 实现自定义指标监控
# Prometheus的安装和配置教程详解
# 详解如何在Linux系统上安装cpolar内网穿透
# 如何使用cpolar 内网穿透将本地 web 网站发布上线(无需服务器)
# Prometheus+cpolar如何在手机上也能监控服务器状态?
# 可以通过
# 是一个
# 可以看到
# 开源
# 配置文件
# 目下
# 则是
# 架构图
# 所需
# 内置了
# 帐号
# 机器上
# 为其
# 这篇文章
# 谢谢大家
# 监控系统
# 连接到
# 密码为
# 可执行文件
# 文档
相关文章:
如何获取上海专业网站定制建站电话?
宝塔建站后网页无法访问如何解决?
建站之星如何开启自定义404页面避免用户流失?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
如何选购建站域名与空间?自助平台全解析
如何在阿里云域名上完成建站全流程?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
ppt制作免费网站有哪些,ppt模板免费下载网站?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何通过虚拟机搭建网站?详细步骤解析
建站之星如何快速更换网站模板?
如何确保FTP站点访问权限与数据传输安全?
公司网站的制作公司,企业网站制作基本流程有哪些?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
外贸公司网站制作哪家好,maersk船公司官网?
建站主机SSH密钥生成步骤及常见问题解答?
如何选择适合PHP云建站的开源框架?
如何访问已购建站主机并解决登录问题?
开封网站制作公司,网络用语开封是什么意思?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
如何在Golang中引入测试模块_Golang测试包导入与使用实践
如何挑选高效建站主机与优质域名?
如何在宝塔面板中创建新站点?
建站主机是否属于云主机类型?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
如何用AWS免费套餐快速搭建高效网站?
如何快速生成橙子建站落地页链接?
如何通过西部数码建站助手快速创建专业网站?
北京专业网站制作设计师招聘,北京白云观官方网站?
建站之星导航配置指南:自助建站与SEO优化全解析
香港网站服务器数量如何影响SEO优化效果?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
已有域名如何免费搭建网站?
小型网站建站如何选择虚拟主机?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
广州建站公司哪家好?十大优质服务商推荐
如何快速启动建站代理加盟业务?
如何在阿里云高效完成企业建站全流程?
如何快速搭建高效可靠的建站解决方案?
宝塔新建站点报错如何解决?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
建站之星如何防范黑客攻击与数据泄露?
如何在腾讯云免费申请建站?
如何自定义建站之星模板颜色并下载新样式?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
如何快速搭建二级域名独立网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。