zoukankan      html  css  js  c++  java
  • Grafana+Influxdb+Telegraf监控mysql



    相关内容原文地址:

    51CTO博客:元婴期:Grafana+influxdb+telegraf初探-快速监控主机与mysql

    博客园:东山絮柳仔:通过官网模板轻松实现Grafana的可视化界面配置(以MySQL监控项为例)



    一、安装

    这个地方,我在看许多教程的时候,一直没看明白,走了一个误区,将Influxdb,telegraf,Grafana全部安在了一台服务器A上,而我需要监控的Mysql安装在服务器C上,当我使用InfluxDb监控Mysql时,始终监控不到数据,后来,我将Influxdb和Telegraf安装在装有mysql的服务器上,然后通过服务器A的Grafana去配置,数据完美出来。

    1.1安装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.2启动服务,添加开机启动

    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.3查看grafana界面

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

    http://localhost://3000

    在这里插入图片描述

    二、数据采集之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)。每种数据源都有相应的文档,可以将多个数据源的数据合并到一个单独的仪表板上。

    4.1通过官网模板轻松实现Grafana的可视化界面配置(以MySQL监控项为例)

    1. 可以通过访问 https://grafana.com/dashboards 来查看已有仪表盘模板,选取合适的使用。
    2. 根据实际情况,进行刷选:
      在这里插入图片描述
    3. 选中,双击,获取详情。

    在这里插入图片描述

    1. 获取模板详情后,需要记下(或直接点击Copy ) ID
      在这里插入图片描述
    2. 回到自己的Grafana节点,打开Import界面

    在这里插入图片描述

    1. 在Import 界面输入之前查询得到的IP
      在这里插入图片描述
    2. 为导进去的模板命令,并指定将模板放在那个文件下和绑定已有的数据源
      在这里插入图片描述
    3. 导入成功,查看已导入的界面。
      在这里插入图片描述

    五、配置监控主机状态及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,添加需要的数据源。
    在这里插入图片描述

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

    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展示

    连接数据源。
    在这里插入图片描述

  • 相关阅读:
    CSS3实现10种Loading效果(转)
    Editorial Board 、co-editor、ediitor、editor-in-chief的区别
    Android必知必会-使用okhttp的PUT方式上传文件
    Android项目开发填坑记-so文件引发的攻坚战
    Android开发学习之路--RxAndroid之操作符
    Libgdx教程目录
    Android开发学习之路--RxAndroid之lambda
    Android开发学习之路--RxAndroid之初体验
    Android必知必会-获取视频文件的截图、缩略图
    Android开发学习之路--Annotation注解简化view控件之初体验
  • 原文地址:https://www.cnblogs.com/aixing/p/13327266.html
Copyright © 2011-2022 走看看