一、安装

1.1、配置influxdb yum源

[root@node ~]# cat /etc/yum.repos.d/influxdb.repo

[influxdb]

name = InfluxDB Repository - RHEL \$releasever

baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable

enabled = 1

gpgcheck = 1

gpgkey = https://repos.influxdata.com/influxdb.key

1.2、安装Grafana+influxdb+telegraf

安装influxdb

yum install influxdb

安装telegraf

yum install telegraf

安装grafana

wget https://dl.grafana.com/oss/release/grafana-6.1.3-1.x86_64.rpm

yum localinstall grafana-6.1.3-1.x86_64.rpm

1.3、软件版本

InfluxDB version: 1.7.4

Telegraf version: 1.10.2

Grafana version: 6.1.3

1.4、启动服务,添加开机启动

systemctl start influxdb.service

systemctl start telegraf.service

systemctl start grafana-server.service

systemctl enable influxdb.service

systemctl enable telegraf.service

systemctl enable grafana-server.service

1.5、查看grafana界面

grafana默认监听在3000端口,默认用户名admin,密码admin

二、数据采集之telegraf

Telegraf是用Go写的代理程序,可以用于收集系统和服务的统计数据,是TICK技术栈的一部分。它具备输入插件,可以直接从系统获取指标数据,从第三方API获取指标数据,甚至可以通过statsd和Kafka获取指标数据。它还具备输出插件,可以将采集的指标发送到各种数据存储,服务和消息队列。比如InfluxDB,Graphite,OpenTSDB,Datadog,Librato,Kafka,MQTT,NSQ等等,目前Telegraf尚不支持Oracle数据库统计数据的实时监控。

三、数据存储之InfluxDB

InfluxDB是一个时间序列数据库,旨在处理高写入和查询负载,主要用于存储系统的监控数据

InfluxDB有三大特性:

• Time Series (时间序列):可以使用与时间有关的相关函数(如最大,最小,求和等)

• Metrics(度量):你可以实时对大量数据进行计算

• Eevents(事件):它支持任意的事件数据

特点

• Schemaless(无结构),可以是任意数量的列

• Scalable(可扩展):min, max, sum, count, mean, median 一系列函数,方便统计

• Native HTTP API, 内置http支持,使用http读写

• Powerful Query Language 类似sql

• 自带压力测试工具等,功能强大

四、数据展示之Grafana

Grafana是一个开源指标分析和可视化套件,常用于可视化基础设施的性能数据和应用程序分析的时间序列数据。也可以应用于其他领域,包括工业传感器,家庭自动化,天气和过程控制。但请注意,我们使用Grafana最关心的是如何把数据进行聚合后进行展示。

Grafana支持多种不同的时序数据库数据源,Grafana对每种数据源提供不同的查询方法,而且能很好的支持每种数据源的特性。它支持下面几种数据源:Graphite、Elasticsearch、CloudWatch、InfluxDB、OpenTSDB、Prometheus、MySQL、Postgres、Microsoft SQL Server (MSSQL)。每种数据源都有相应的文档,可以将多个数据源的数据合并到一个单独的仪表板上。

五、配置监控主机状态及mysql运行状态

5.1、创建数据库

[root@node ~]# influx

> create user "mysql-server"with password '123456'

> create database myserverDB

5.2、配置本机的influxdb数据库为期望的输出源-output

[root@node ~]# vim /etc/telegraf/telegraf.conf

[[outputs.influxdb]]

urls = ["http://127.0.0.1:8086"]

database = "myserverDB"

5.3、配置监控项-input

配置基本监控项

[root@node ~]# cat /etc/telegraf/telegraf.d/telegraf.conf

[[inputs.net]]

interfaces = ["eth0,eth1,lo"]

[[inputs.cpu]]

##Whether to report per-cpu stats or not

percpu = true

##Whether to report total system cpu stats or not

totalcpu = true

## Iftrue, collect raw CPU time metrics.

collect_cpu_time = false

# Read metrics about disk usage by mountpoint

[[inputs.disk]]

## Bydefault, telegraf gather stats for all mountpoints.

##Setting mountpoints will restrict the stats to the specified mountpoints.

#mount_points = ["/"]

##Ignore some mountpoints by filesystem type. For example (dev)tmpfs (usually

##present on /run, /var/run, /dev/shm or /dev).

ignore_fs = ["tmpfs", "devtmpfs"]

# Read metrics about disk IO by device

[[inputs.diskio]]

[[inputs.kernel]]

[[inputs.mem]]

[[inputs.processes]]

[[inputs.swap]]

[[inputs.system]]

[[inputs.netstat]]

配置mysql监控项

[root@node ~]# cat /etc/telegraf/telegraf.d/telegraf_mysql.conf

[[inputs.mysql]]

interval = "5m"

servers = ["tcp(127.0.0.1:3306)/"]

perf_events_statements_digest_text_limit = 120

perf_events_statements_limit = 250

perf_events_statements_time_limit = 86400

table_schema_databases = [""]

gather_table_schema = false

gather_process_list = true

gather_info_schema_auto_inc = true

gather_slave_status = true

gather_binary_logs = false

gather_table_io_waits = false

gather_table_lock_waits = false

gather_index_io_waits = false

gather_event_waits = false

gather_file_events_stats = false

interval_slow = "30m"

5.4、配置grafana界面

选择Data Sources,添加需要的数据源

创建主机仪表盘

可以通过访问https://grafana.com/dashboards 来查看已经由其他用户共享的仪表盘,选取合适的使用,缩短上手时间

将合适的模版import导入,我这里用的是https://grafana.com/dashboards/1443, 注意模版与telegraf input配置一致。

可以看到如下界面

六、通过自定义脚本采集监控数据

6.1、在influxdb数据库创建mysql_run_status库

create user "admin" with password '123456'

create database mysql_run_status

6.2、在被监控主机上创建监控脚本,并开启mysql

通过influxDB数据库http接口上传数据,0为up,1为down

[root@node2 local]# systemctl start mariadb

[root@node2 local]# cat mysql_status.sh

#!/bin/bash

systemctl status mariadb.service |grep running &>/dev/null

if [ $? -eq 0 ];then

echo "mysql_status=0" > temp_mysql_run

else

echo "mysql_status=1" > temp_mysql_run

fi

IP=192.168.143.131

test=`cat temp_mysql_run`

curl -i -XPOST 'http://192.168.143.130:8086/write?db=mysql_run_status' --data-binary "mysql_run_status,ip=$IP,$test count=1"

6.3、执行监控脚本,查看入库情况

./mysql_status.sh &> /dev/null

> select * from mysql_run_status

name: mysql_run_status

time count ip mysql_status

---- ----- -- ------------

1556267694277201332 1 192.168.143.131 0

6.4、grafana展示

连接数据源

创建仪表盘

telegraf输出MySQL_Grafana+influxdb+telegraf初探-快速监控主机与mysql相关推荐

  1. ubuntu上 grafana + influxdb + telegraf 安装配置

    apt安装 Grafana 一个纯粹的HTML/JS应用,其功能非常强大,访问InfluxDB时不会有跨域访问的限制.只要配置好数据源为InfluxDB之后就可以,剩下的工作就是配置图表. Influ ...

  2. grafana + influxdb + telegraf , 构建性能监控平台

    注:我是在Centos7上安装的,下面是我的安装过程,对于Ubuntu 15.04+给了对应的参照. influxdb 安装 wget https://dl.influxdata.com/influx ...

  3. 使用Innobackupex快速搭建(修复)MySQL主从架构

    2019独角兽企业重金招聘Python工程师标准>>> 使用Innobackupex快速搭建(修复)MySQL主从架构 MySQL的主从搭建大家有很多种方式,传统的mysqldump ...

  4. docker mysql 操作_[Docker] Docker 快速搭建本地MySQL开发环境

    [Docker] Docker 快速搭建本地MySQL开发环境 关于 Docker 的安装使用本文不再赘述,有兴趣的可以通过官网或是浏览我的专栏文章了解.今天着重给大家介绍下如何利用Docker快速搭 ...

  5. 织梦数据库改mysql前缀_织梦快速批量修改MYSQL数据库表前缀与表名实例操作

    这篇文章主要为大家详细介绍了织梦快速批量修改MYSQL数据库表前缀与表名实例操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 我们在安装织梦系统的时候,有一次 ...

  6. JumpServer1.5.8堡垒机专题课--prometheus监控主机和MySQL

    JumpServer1.5.8堡垒机专题课--prometheus监控主机和MySQL

  7. 视频教程-MySQL数据库应用快速入门培训课程-MySQL

    MySQL数据库应用快速入门培训课程 5年JAVA 开发经验,2年系统架构经验,PMP项目管理资格认证,ACP 项目管理认证,工作过程同时参与性能.自动化测试工作,负责测试部门的测试架构,项目服务器运 ...

  8. mysql主从节点不一致_一种粗暴快速的解决mysql主从不同步错误的思路

    一种粗暴快速的解决mysql主从不同步错误的思路 mysql主从经常会出现主从数据不同步的问题,脏数据会造成主从同步中断, 出现大量ERROR,如1032,1062等错误.常规方法是逐条删除脏数据或者 ...

  9. 使用Docker快速安装部署mysql

    使用Docker快速安装部署mysql的前提:首先需要确保已经安装了Docker环境 如果没有安装Docker的话,可以参考上一篇的内容:Linux上安装Docker 有了Docker环境后,就可以使 ...

最新文章

  1. 不要签字!不要签字!不要签字!最近违法裁员猖獗,这里单独给大家一些应对参考!...
  2. MySQL数据库初识(基础语句)
  3. java怎样开关语句随机数 不重复_怎样用java产生一个指定范围而且不重复的随机数?...
  4. codevs1219 骑士遍历(棋盘DP)
  5. java 注解scheduler_使用spring的@Scheduled注解执行定时任务,启动项目不输出警告
  6. 老话题:自己编写只截窗口客户区的截屏软件(VB2010)
  7. 吴恩达机器学习 5.正则化
  8. Python中计算文件的MD5值
  9. mysql where连接_MySQL连接查询on和where的区别和顺序
  10. eclipse中文版官方下载
  11. 芯片的原理应用与分类
  12. 基于深度学习模型(1D CNN)实现钓鱼网站检测
  13. 高质量程序设计指南(笔记)
  14. LiveData介绍
  15. “穷人思维”和“富人思维”有什么区别?
  16. .net mvc core网站发布的几种方式
  17. 卡巴斯基实验室被独立研究机构评选为领导者
  18. 美国北亚利桑那大学计算机在线硕士,美国北亚利桑那大学在职研究生招生类型...
  19. (转)我所经历的大数据平台发展史(四):互联网时代 • 下篇
  20. 前端开发规范:CSS 代码规范指南

热门文章

  1. java set hashcode_Java学习笔记_180724_HashSet_hashCode()
  2. for循环利用可迭代对象与迭代器完成工作的本质
  3. 安装linux出现基础系统出错,Linux系统出错提示信息详解
  4. bigdecimal如何做除法_二胎家庭如何平衡两个孩子的关系?聪明的父母都懂这四个法则...
  5. 关于深度学习,我们写了一本1400页的全栈手册
  6. 干货 | 搞定用户画像只需5个步骤
  7. 看完这篇Linux基本的操作就会了
  8. Android官方开发文档Training系列课程中文版:分享简单数据之从其它APP接收简单数据
  9. 国科大prml10-无监督学习
  10. hdu 2197 本原串