开源监控利器grafana

前言:

做运维的很重要的基础工作就是监控,之前都是统计数据入库,然后前端js图表插件出图,费时费力,可定制性差

前几天接触到了ELK(logstash, elasticsearch, kibana)这套日志收集展示工具集,的确很方便,但是手头没有那么大的存储啊

也不是所有的日志数据都需要,然后就发现了grafana + influxdb的解决方案

简介:

先给出这两个工具的官网

http://grafana.org/

http://influxdb.com/

建议各位看官先大体浏览下这两个工具的介绍和文档

grafana是前端展示界面,要放到apache或nginx下,不需要php环境奥

influxdb是一个时间序列的数据库,你插入的每条数据会自动附加上两个字段,一个时间,一个序列号(用来作为主键的)

ps: influxdb的0.8版本不支持centos 5,只能是centos6以上,所以centos5的还是用0.7的版本

安装:

influxdb就一个rpm包,没有其他依赖,是用go语言写的,go发展很迅猛啊

influxdb会监听4个端口

tcp        0      0 0.0.0.0:8099                0.0.0.0:*                   LISTEN      29458/influxdb
tcp        0      0 0.0.0.0:8083                0.0.0.0:*                   LISTEN      29458/influxdb
tcp        0      0 0.0.0.0:8086                0.0.0.0:*                   LISTEN      29458/influxdb
tcp        0      0 0.0.0.0:8090                0.0.0.0:*                   LISTEN      29458/influxdb

其中单机使用只需要用到两个,另外两个是分布式部署时采用的

8083 web管理端 http://ip:8083  用户名和密码都是 root

8086 api接口调用端

配置

grafana配置

重命名配置文件

mv config-sample.js config.js

    // InfluxDB example setup (the InfluxDB databases specified need to exist)
    datasources: {
      influxdb: {
        type: ‘influxdb‘,
        url: "http://10.75.25.103:8086/db/directmessage",
        username: ‘root‘,
        password: ‘root‘,
      },
      grafana: {
        type: ‘influxdb‘,
        url: "http://10.75.25.103:8086/db/grafana",
        username: ‘root‘,
        password: ‘root‘,
        grafanaDB: true
      },
    },

这里配置了两个数据源,第一个是你要存储的监控数据,第二个是grafana用的

当然了你需要提前在influxdb的界面里建立好这两个库(这里就不演示influxdb web界面的登陆和建库操作了)

现在浏览器打开grafana

这个界面是我配置好的,你看到的样子是黑色的官网上那个样子,界面自带黑白两个主题

为了便于理解grafana的配置方法

这里要说明一下收集数据的过程,我用的python收集

从日志中收集了两个字段 status和type

python脚本如下

#!/usr/bin/python
# push log to influxdb on 10.75.25.103

import time
from influxdb import client as influxdb

host = ‘10.75.25.103‘
port = 8086
username = ‘root‘
password = ‘root‘
database = ‘directmessage‘

db = influxdb.InfluxDBClient(host, port, username, password, database)
log_fn = ‘/data1/multimedia/logs/scribe.log‘

f = open(log_fn)
f.seek(0,2)
while True:
    line = f.readline()
    try:
        lines = line.split(‘\t‘)
        post_data=[("name","multimedia"),("columns" ,["status", "type"]),("points",[[lines[5], lines[6]]])]
        data = [
            {"name":"multimedia",
             "columns" : ["status", "type"],
             "points" : [[lines[5], lines[6]]]

            }
        ]
        db.write_points(data)
    except:
        f.close()
        f = open(log_fn)
        f.seek(0,2)
        time.sleep(5)

influxdb提供了python的模块,用pip安装即可,如果不觉得麻烦也可以用shell的curl

下面是grafana最主要的配置项,其余自己摸索下就可以了

如果grafana的config.js配置没问题,点击输入框会自动提示字段的

这里就相当于你要展示那些字段,类似sql语法

第一个multimedia是python脚本中的name,相当于mysql中的表

select后面的 count(type) 是你要在图表中展示那些数据

后面的漏斗相当于 sql的where status = ‘succ‘

group by time 60s 相当于你用cron一分钟收集一次数据

后面的type 就是 group by type

好了其余都是页面展示的微调。

收工。

时间: 2024-08-25 20:44:28

开源监控利器grafana的相关文章

【开源监控】Grafana介绍与安装

Grafana介绍与安装 Grafana介绍 场景:由于业务场景,有多个组织机构.需要在某个组织结构下,完成对本机构下的系统的实时监控以及可视化展示.底层已经用zabbix对监控指标做了数据的采集. 因此,通过使用Grafana开源工具.保证数据的可视化展示. Grafana是一个跨平台的开源的分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知. 其特点: 丰富的可视化显示插件,包括热图.折线图.饼图,表格等等. 多数据源,支持多数据源Graphite,InfluxDB,Op

MySQL-MongoDB开源监控利器PMM增加slack报警功能

这里介绍下如何增加报警功能,话说没有报警功能的监控都是不是好监控! pmm的监控类型主要有,其实应该说是Grafana email   #最常用的,但是缺点就是依赖服务商的SMTP服务器,经常会有延迟,被当成垃圾邮件 官方的配置教程: https://www.percona.com/blog/2017/01/23/mysql-and-mongodb-alerting-with-pmm-and-grafana/?utm_source=tuicool&utm_medium=referral webh

开源监控利器,高大上的OMD

参考文档: 官方参考: http://omdistro.org/doc/quickstart_redhat http://omdistro.org/doc/configuration_basics https://labs.consol.de/repo/stable/#_6 http://mathias-kettner.de/checkmk.html http://mathias-kettner.de/cms_wato.html 其他参考: https://www.digitalocean.co

基于InfluxDB+Grafana打造大数据监控利器--转

这是一个大数据爆发的时代.面对信息的激流.多元化数据的涌现,我们在获取.存储.传输.理解.分析.应用.维护大数据时,无疑需要一种便捷的信息交流通道,以便快速.有效.准确地理解和驾驭这个过程.本文将通过时序数据库(InfluxDB)+Grafana的实践,来介绍如何将数据便捷地展现出来. 一.InfluxDB 开源的分布式时序.时间和指标数据库,使用Go语言编写,无需外部依赖.其中,时间序列数据库是数据格式里包含Timestamp字段的数据,比如某一时间用户上网流量.通话详单等.但是,有什么数据不

监控利器Nagios之一:监控本地NFS和外部HTTP、MySQL服务

监控利器Nagios之一:监控本地NFS和外部HTTP.MySQL服务 Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios的特点: 1.监控服务http.MySQL.nfs.tcp.ping等 2.监控主机资源cpu.负载.I/O.虚拟及内存磁盘利用率等 3.支持邮件微信等报警通信. 4.可选we

初探分布式监控利器zabbix

Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案.    被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据    Server端:通过收集SNMP和agent发送的数据,写入数据库(MySQL, ORACLE)再通过php+apache在web前端展示. zabbix运行条件:    Server:Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下(或者LNMP),对硬件要求低   

kubernetes生态--交付prometheus监控及grafana炫酷dashboard到k8s集群

由于docker容器的特殊性,传统的zabbix无法对k8s集群内的docker状态进行监控,所以需要使用prometheus来进行监控: 什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB).Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本. 2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prom

k8s实践17:监控利器prometheus helm方式部署配置测试

监控利器prometheus helm方式部署配置测试 1.部署helm 部署helm参考方法 后面使用helm部署grafana和prometheus,因此首先需要部署helm,保证helm能正常使用. 部署helm客户端过程见下: [[email protected] helm]# curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh % Total % Receive

监控利器---Zabbix(一)

开源监控软件对比 Cacti(英文含义仙人掌) 是一套基于PHP.MySQL.SNMP和RRDtool开发的网络流量监测图形分析工具,它通过snmpget来获取数据使用RRDtool绘图,简化RRDtool使用.提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构.主机设备以及任何一张图,还可以与LDAP结合进行用户认证,同时也能自定义模板.在历史数据展示监控方面,其功能相当不错. Cacti通过添加模板,使不同设备的监控添加具有可复用性,并且具备可自定义绘图的功能,具有强大的运