Telegraf+InfluxDB+Grafana搭建服务器监控平台

tags:网站

个人网站:https://wanghualong.cn/


效果展示

本站服务器状态监控:https://status.wanghualong.cn
20190525: 监控已作废,现在本站监控是用 Prometheus+node_exporter 搭建的。

前言

要搭建服务器监控平台,总共分三步:
第一步,数据采集;
第二步,数据存储;
第三步,数据可视化。

其中,数据存储连接数据采集与数据可视化,是非常重要的中间环节。本文非常凑巧的选择了时序数据库InfluxDB。(@(滑稽)为什么巧,当然不是因为我只会用这个)

InfluxDB是一款优秀的时间序列数据库,适合存储设备性能、日志、物联网传感器等带时间戳的数据。能轻松处理高写入和高查询负载(数据采集与数据可视化非常常见的场景)。具体介绍请参阅InfluxDB官方文档:https://docs.influxdata.com/influxdb/。

数据采集方面有非常多的选择,~~你甚至可以自己开发一个。~~这里为了方便直接选择Influxdata官方出品的采集工具Telegraf ,毕竟是全家桶产品。Telegraf详情介绍:https://docs.influxdata.com/telegraf。

可视化方面选择了超高颜值、功能强大的开源可视化利器Gafana,具体颜值有多高,功能有多强大,本文就不再赘述了,直接上官网:https://grafana.com/grafana。

我甚至还给Grafana做了一下中文的本地汉化:https://github.com/WangHL0927/grafana-chinese。

Grafana从早期版本就对InfluxDB有着完善的支持。

最终平台的方案:
Telegraf(数据采集)+InfluxDB(数据存储)+Grafana(数据可视化)。


搭建实战

InfluxDB与Grafana直接使用官方容器进行部署,方便快捷。服务器需先安装Docker,具体步骤参考本站文章CentOS7安装Docker。

1 部署InfluxDB

docker run -d -p 8086:8086 --name=influxdb influxdb

以上命令dcoker会自动从仓库下载最新版本的influxdb镜像,后台运行一个名为influxdb的容器并映射主机8086端口到容器8086端口。

若想将数据存储到宿主机而非容器内,可使用以下命令启动挂载本地目录到容器内。

# $pwd为当前工作目录,可替换为其它宿主机目录docker run -d -p 8086:8086 -v $PWD:/var/lib/influxdb --name=influxdb influxdb

启动InfluxDB容器后,通过http接口访问进行测试。

curl -G http://localhost:8086/query --data-urlencode "q=show databases"

若influxdb运行正常,则会返回如下结果:

# 链接查询参数为show databases 数据库会返回所有的数据库名,新安装的influxdb默认只有一个"_internal"
# 数据库。{"results":[{"statement_id":0,"series":[{"name":"databases","columns":["name"],"values":[["_internal"],["telegraf"]]}]}]}

influxdb容器管理

# 启动
docker start influxdb# 停止
docker stop influxdb# 重启
docker restart influxdb

2 安装Telegraf

下载安装

Telegraf为了方便配置调试,选择直接在宿主机安装。

# 以CentOS为例
# 下载Telegraf
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.6.3-1.x86_64.rpm# 安装Telegraf
sudo yum localinstall telegraf-1.6.3-1.x86_64.rpm

配置Telegraf

用户可修改Telegraf配置文件进行采集项的配置。配置文件默认位于/etc/telegraf/telegraf.conf
在本文方案中,需要配置数据输出项(输出到influxdb),其它项使用telegraf默认即可。

按照示例配置influxdb url、database名称

###############################################################################
#                            OUTPUT PLUGINS                                   #
################################################################################ Configuration for sending metrics to InfluxDB
[[outputs.influxdb]]## The full HTTP or UDP URL for your InfluxDB instance.#### Multiple URLs can be specified for a single cluster, only ONE of the## urls will be written to each interval.# urls = ["unix:///var/run/influxdb.sock"]# urls = ["udp://127.0.0.1:8089"]# influxdb http地址,由于是宿主机直接安装,直接访问本地8086端口即可。urls = ["http://127.0.0.1:8086"]## The target database for metrics; will be created as needed.# 数据库名,不存在会自动创建,默认"telegraf"database = "telegraf"## If true, no CREATE DATABASE queries will be sent.  Set to true when using## Telegraf with a user without permissions to create databases or when the## database already exists.# 跳过创建数据库skip_database_creation = false## Name of existing retention policy to write to.  Empty string writes to## the default retention policy.# retention_policy = ""## Write consistency (clusters only), can be: "any", "one", "quorum", "all"# write_consistency = "any"## Timeout for HTTP messages.# 超时时间timeout = "5s"## HTTP Basic Auth# username = "telegraf"# password = "metricsmetricsmetricsmetrics"## HTTP User-Agent# user_agent = "telegraf"## UDP payload size is the maximum packet size to send.# udp_payload = 512## Optional SSL Config# ssl_ca = "/etc/telegraf/ca.pem"# ssl_cert = "/etc/telegraf/cert.pem"# ssl_key = "/etc/telegraf/key.pem"## Use SSL but skip chain & host verification# insecure_skip_verify = false## HTTP Proxy override, if unset values the standard proxy environment## variables are consulted to determine which proxy, if any, should be used.# http_proxy = "http://corporate.proxy:3128"## Additional HTTP headers# http_headers = {"X-Special-Header" = "Special-Value"}## HTTP Content-Encoding for write request body, can be set to "gzip" to## compress body or "identity" to apply no encoding.# content_encoding = "identity"## When true, Telegraf will output unsigned integers as unsigned values,## i.e.: "42u".  You will need a version of InfluxDB supporting unsigned## integer values.  Enabling this option will result in field type errors if## existing data has been written.# influx_uint_support = false

Telegraf提供的采集内容非常丰富,将相应配置项取消注释并重启Telegraf即可生效。其它更多配置项请参考Telegraf官方文档:https://docs.influxdata.com/telegraf

启动Telegraf

# 启动
systemctl start telegraf# 停止
systemctl stop telegraf# 重启
systemctl restart telegraf# 查看服务状态
systemctl status telegraf

部署Grafana

Grafana同样采用官方docker镜像进行快速部署。

docker run -d -p 3000:3000 --name=grafana grafana/grafana

以上命令docker会拉取最新版grafana镜像,运行名为grafana的容器,并映射宿主机3000端口。

初次启动,grafana会创建数据库,时间稍长,稍后即可访问http://localhost:3000打开grafana登录页面。
输入默认用户名密码登录(admin)。

按照主页向导完成初次配置。

1 添加数据源

点击添加数据源,按照下图配置选择influxdb添加一个influxdb数据源。

url需配置成正确的宿主机ip和端口(防火墙需放行8086),若不想暴露数据库端口,可换成influxdb容器的ip地址(需自行进入容器查看,容器重启后可能会发生变化)避免数据库暴露至公网。

InfluxDB Details需填写数据名(默认telegraf)、用户名和密码(默认均为root)。

填写完成后,点击Save&Test按钮,若访问正常,会出现Data source is working提示,否则请检查配置内容以及网络(防火墙)。


添加仪表板

返回主页,点击添加仪表板按钮添加新仪表板,点击Graph创建一个Graph Panel。

点击标题展开菜单,选择Edit进入面板编辑。

选择Metrics选项卡配置面板数据。

如图示配置可显示一条CPU-total的数据曲线。

还可添加多条查询,同时在一个panel显示多条曲线。

配置完成后点击上方保存按钮保存仪表板。

Grafana详细的使用方法请参考官方文档:http://docs.grafana.org/或本站其它教程。

可以尽情发挥自已创意。

本站Demo:https://status.wanghualong.cn/
默认用户名密码:guest

Telegraf+InfluxDB+Grafana搭建服务器监控平台相关推荐

  1. CentOS7下Telegraf+InfluxDB+Grafana 搭建服务器监控平台

    转载来源 : 作者:DevOps海洋的渔夫 链接:https://www.jianshu.com/p/0a8192751dce 来源:简书 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  2. 性能测试从入门到高级进阶之路(二):小白教程influxdb+grafana+jmeter性能监控平台

    先看效果:  一.背景:         公司要办第二阶段的架构师选拔,所以需要搞个性能比赛.本人是公司公司测试工程师,负责现场比赛压测,因为有公司外的评委,所以需要搭建一套influxdb+graf ...

  3. 技术分享 | 使用 Zabbix + Grafana 搭建服务器监控系统

    搭建 Linux 服务器监控的目的是防止以下现象:自己有一台阿里云服务器内存是 2g 的 , 多开一些软件就会把内存和 CPU 使用率弄的很高,最终导致服务器卡死. 所以基于这个痛点,想知道当前的 C ...

  4. telegraf监控mysql数据库_部署Telegraf+Influxdb+Grafana 架构来监控 MySQL

    前段时间小编写了一篇:使用Nginx+Telegraf+Influxb+Grafana构建高逼格Nginx集群监控系统!文章,详细了介绍了 采集器telegraf, 时序数据库influxdb , 数 ...

  5. 浅谈Telegraf+InfluxDB+Grafana快速搭建简易实时监控系统

    监控从来都是一个很宽泛的问题,任何可能出问题的地方都需要加入监控.全量监控的确是监控的终极目标.在搭建一套监控系统前,需要结合实际的系统情况和发展趋势进行考量.在作者看来,一套监控系统应主要由数据采集 ...

  6. Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql

    Telegraf+InfluxDB+Grafana快速搭建实时监控系统  监控postgresql 转载于:https://www.cnblogs.com/gaoyuechen/p/10081026. ...

  7. Telegraf+InfluxDB+Grafana大数据运维监控系统

    目  录 运维监控系统介绍 0课程安排及资料介绍 1海量日志监控告警系统介绍-ELK 2大数据定制化运维监控系统介绍-Flink 3自动化运维监控系统介绍 InfluxDB时序数据库 4InfluxD ...

  8. 技术实践丨Prometheus+Grafana搭建HBase监控仪表盘

    摘要:Grafana+Prometheus是目前非常流行的监控方案,图形化展示非常强大. 本文分享自华为云社区<Prometheus+Grafana搭建HBase监控仪表盘>,原文作者:L ...

  9. jeecgboot 前端环境搭建_如何从零开始搭建前端监控平台?

    前端监控与优化,一直是前端领域的重要研究方向.尤其在当下页面功能繁杂.页面延迟容忍度降低的时代,一套符合自身业务需要的监控平台,往往能让页面性能优化事半功倍. 现在市面上的大多数监控平台都是对性能.网 ...

最新文章

  1. .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现...
  2. 【C语言练习】将100~200之间的素数输出
  3. 读书二十二载,信念很简单,把书念下去,然后走出去,不枉活一世。
  4. Memcached 一致性哈希算法PHP实现
  5. js 时间获取格式化 fmt
  6. CCF202009-2 风险人群筛查
  7. linux调用线程函数,作为线程调用的C函数-Linux Userland程序
  8. 汇编语言王爽 实验十五
  9. 【浏览器兼容性问题解决方案】
  10. 广域通信网知识点笔记
  11. 不知道rar压缩包密码可以解密么,rar压缩包有密码怎么解开?
  12. eRPC:通过实现双向请求的串行通讯传输(dual serial transport)支持client/server混合运行
  13. 计算机if函数得出三个结果,Excel如果if函数有多个条件,应该怎么使用
  14. 【品牌营销策划方案】2020碧桂园x江小白创意引爆策略方案【白酒】【IP】【创意营销】
  15. navigationview菜单项点击之后跳转_饿了么、美团外卖等小程序APPID和跳转PATH获取...
  16. ps快速将白底图片变为透明图片
  17. logit方程怎么写_微分方程(2)-一阶常微分方程的解法
  18. vscode一格式化就报错?各种风格问题各种报错烦不胜烦,教你如何用好vue的eslint风格配置...
  19. 一个外语达人的经验(转自天涯)
  20. LightOJ - Travel Company(Spfa)

热门文章

  1. Abaqus和Python结合实例
  2. java 画正方体直观图_用斜二测画法画水平放置的边长为的正方形的直观图,则所得直观图的面积为...
  3. python是什么?他的特点是什么?
  4. 论文导读 | 事件抽取技术发展现状
  5. 网游创业失败全攻略[转帖]
  6. 【分区工具】新买的硬盘怎么分区?
  7. DialogInterface.OnClickListener和View.OnClickListener
  8. MySQL修改字段的默认值和空值
  9. 用FME创建AutoCAD的尺寸注记
  10. 排序二叉树及其Java实现