Grafana+InfluxDB+Collectd构建监控系统

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
简介:

架构原理

Contents

Collectd(数据采集,配置Server连接InfluxDB的25826端口) -> InfluxDB(数据存储,启用collectd插件监听25826端口) —> Grafana(数据展示)

  • Collectd : C 语言开发的一个守护(daemon)进程,周期性收集统计数据和存储,拥有丰富的插件包括监控Ceph,DRBD,OpenLDAP,ZK等,类似statD(graphite也可以用来采集数据,不过展示功能没有Grafana丰富),数据可以存储在Kafka,InfluxDB,OpenTSDB等上

  • InfluxDB: GO开发的开源分布式时序数据库,适合存储指标,时间,分析等数据

  • Grafana: 是一个开源的,具有丰富指标仪表盘的数据展示和图表编辑工具,支持Graphite,Elasticsearch,OpenTSDB,Prometheus和influxDB,Zabbix等

Collectd

  1. 安装collectd

yum -y  installperl-ExtUtils-Embedperl-ExtUtils-MakeMaker  liboping* 
wgethttps://collectd.org/files/collectd-5.5.0.tar.gz
tarxfcollectd-5.5.0.tar.gz
cdcollectd-5.5.0./configure --enable-cpu  --enable-df --enable-disk --enable-interface --enable-load --enable-memory --enable-ping --enable-swap --enable-users --enable-uptimemake && makeinstall
cpcontrib/redhat/init.d-collectd  /etc/rc.d/init.d/collectd
chmod +x /etc/rc.d/init.d/collectdln -s /opt/collectd/sbin/collectdmon  /usr/sbin/ln -s /opt/collectd/sbin/collectd  /usr/sbin/
  1. 配置collectd

    vim /etc/collectd.confBaseDir "/opt/collectd"PIDFile "/run/collectd.pid"Hostname "host.example.com"Interval 60<loadplugindf>Interval 120</loadplugin>LoadPlugindiskLoadPlugininterfaceLoadPluginloadLoadPluginmemoryLoadPluginnetworkLoadPluginprocessesLoadPluginusers<plugininterface>Interface "eth1"IgnoreSelectedfalse</plugin><pluginnetwork>Server "10.44.38.244" "25826"</plugin>
  2. 说明 
    默认collectd进程会每10s中调用注册在配置文件中的插件,默认全局参数interval=10s(10s上报一次数据到influxdb等),针对不同的插件可以配置不同的搜集数据的时间间隔interval

InfluxDB

  1. 安装并启动服务

    cat < <EOF | sudotee /etc/yum.repos.d/influxdb.repo
    [influxdb]
    name = InfluxDBRepository - RHEL \$releaseverbaseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
    enabled = 1gpgcheck = 1gpgkey = https://repos.influxdata.com/influxdb.key
    EOF
    yum -y installinfluxdb
    serviceinfluxdbstart
    启动后TCP端口:8083 为InfluxDB 管理控制台
      TCP端口:8086 为客户端和InfluxDB通信时的HTTPAPI
    启动后InfluxDB用户认证默认是关闭的,先创建用户:geekwolfgeekwolf
    命令行输入influx
  2. 基本使用

    [root@geekwolf ~]# influx
    Visithttps://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
    Connectedto http://localhost:8086 version 0.12.2InfluxDBshell 0.12.2> createdatabasecollectdb
    > createdatabasecollectdb
    > showdatabases
    name: databases
    \------
    name
    _internal
    collectdb
    > createusergeekwolfwithpassword 'geekwolf'> showusers
    user            admin
    geekwolf        false
    > grantalloncollectdbfromto geekwolf
    > helpshow
    Usage:
        connect <host:port>  connectsto anothernodespecifiedbyhost:port    auth                  promptsfor usernameand password
        pretty                togglesprettyprint for thejsonformat
        use <db_name>        setscurrentdatabase
        format <format>      specifiestheformatoftheserverresponses: json, csv, or column
        precision </format><format>    specifiestheformatofthetimestamp: rfc3339, h, m, s, ms, u or ns
        consistency <level>  setswriteconsistencylevel: any, one, quorum, or all    history              displayscommandhistory
        settings              outputsthecurrentsettingsfor theshell
        exit/quit/ctrl+d      quitstheinfluxshell
     
        showdatabases        showdatabasenames
        showseries          showseriesinformation
        showmeasurements    showmeasurementinformation
        showtagkeys        showtagkeyinformation
        showfieldkeys      showfieldkeyinformation
     
        A fulllist ofinfluxqlcommandscanbefoundat:    https://docs.influxdata.com/influxdb/v0.10/query_language/spec
  3. 启用认证

    修改配置文件启用认证
    sed -i ’s#auth-enabled = false#auth-enabled = true#g’ /etc/influxdb/influxdb.conf
    serviceinfluxdbrestart

配置InfluxDB支持Collectd

  1. 修改配置

    vim /etc/influxdb/influxdb.conf[collectd]
    enabled = true
    bind-address = "10.44.38.244:25826"database = "collectdb"typesdb = "/opt/collectd/share/collectd/types.db"batch-size = 5000batch-pending = 10batch-timeout = "10s"read-buffer = 0serviceinfluxdbrestart
  2. 查看metrics信息

[root@geekwolf ~]# influx
Visithttps://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.Connectedto http://localhost:8086 version 0.12.2InfluxDBshell 0.12.2> use collectdb
Usingdatabasecollectdb
> showfieldkeysname: cpu_value
---------------
fieldKey
value
 name: df_free
-------------
fieldKey
value
 name: df_used
-------------
fieldKey
value
 name: disk_read
---------------
fieldKey
value
> select * fromcpu_valuelimit 15;name: cpu_value
---------------
time                    host                    instance        type    type_instance  value1461657293000000000    host.example.com        1              cpu    idle            1.59845e+061461657293000000000    host.example.com        1              cpu    system          23161461657293000000000    host.example.com        1              cpu    nice            5081461657293000000000    host.example.com        0              cpu    steal          01461657293000000000    host.example.com        1              cpu    user            116191461657293000000000    host.example.com        1              cpu    interrupt      01461657293000000000    host.example.com        1              cpu    steal          01461657293000000000    host.example.com        1              cpu    wait            1721461657293000000000    host.example.com        1              cpu    softirq        01461657303000000000    host.example.com        1              cpu    wait            1721461657303000000000    host.example.com        1              cpu    softirq        01461657303000000000    host.example.com        1              cpu    nice            5081461657303000000000    host.example.com        0              cpu    idle            1.587007e+061461657303000000000    host.example.com        0              cpu    softirq        1271461657303000000000    host.example.com        0              cpu    interrupt      54

安装配置Grafana

yuminstallhttps://grafanarel.s3.amazonaws.com/builds/grafana-3.0.0-beta51460725904.x86_64.rpm目录结构/usr/sbin/grafana-server/etc/init.d/grafana-server          上述命令的拷贝,启动脚本/etc/sysconfig/grafana-server      环境变量/etc/grafana/grafana.ini            配置文件/var/log/grafana/grafana.log        日志文件/var/lib/grafana/grafana.db    sqlite3数据库
 
启动服务: servicegrafana-serverstart
        chkconfiggrafana-serveron

访问地址:http://10.44.38.244:3000 默认账号为admin admin关闭Grafana注册功能:

sed -i ’s/#allow_sign_up = true/allow_sign_up = false/g’  /etc/grafana/grafana.ini,重启服务
  • 界面添加InfluxDB数据源及监控例子即可





















本文转自super李导51CTO博客,原文链接: http://blog.51cto.com/superleedo/1893877 ,如需转载请自行联系原作者
相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
2月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
284 3
|
10天前
|
存储 数据采集 Prometheus
Grafana Prometheus Altermanager 监控系统
Grafana、Prometheus 和 Alertmanager 是一套强大的开源监控系统组合。Prometheus 负责数据采集与存储,Alertmanager 处理告警通知,Grafana 提供可视化界面。本文简要介绍了这套系统的安装配置流程,包括各组件的下载、安装、服务配置及开机自启设置,并提供了访问地址和重启命令。适用于希望快速搭建高效监控平台的用户。
78 20
|
7天前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana监控Linux主机
通过本文的步骤,我们成功地在 Linux 主机上使用 Prometheus 和 Grafana 进行了监控配置。具体包括安装 Prometheus 和 Node Exporter,配置 Grafana 数据源,并导入预设的仪表盘来展示监控数据。通过这种方式,可以轻松实现对 Linux 主机的系统指标监控,帮助及时发现和处理潜在问题。
35 7
|
12天前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
97 3
|
12天前
|
Prometheus Cloud Native Linux
Prometheus+Grafana新手友好教程:从零开始搭建轻松掌握强大的警报系统
本文介绍了使用 Prometheus 和 Grafana 实现邮件报警的方案,包括三种主要方法:1) 使用 Prometheus 的 Alertmanager 组件;2) 使用 Grafana 的内置告警通知功能;3) 使用第三方告警组件如 OneAlert。同时,详细描述了环境准备、Grafana 安装配置及预警设置的步骤,确保用户能够成功搭建并测试邮件报警功能。通过这些配置,用户可以在系统或应用出现异常时及时收到邮件通知,保障系统的稳定运行。
63 1
|
2月前
|
数据采集 Prometheus 监控
监控堆外第三方监控工具Grafana
监控堆外第三方监控工具Grafana
40 5
|
2月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
253 0
|
5月前
|
Prometheus 数据可视化 Cloud Native
构建交互式的 Grafana 仪表盘
【8月更文第29天】Grafana 是一个功能强大的数据可视化工具,它支持多种数据源并能够创建高度定制化的仪表盘。通过使用交互式面板,用户可以更直观地探索数据并进行数据分析。本文将介绍如何设计和实现用户友好的交互式面板,以提高数据分析效率,并提供具体的代码示例。
251 2
|
5月前
|
Prometheus 监控 数据可视化
Grafana 插件生态系统:扩展你的监控能力
【8月更文第29天】Grafana 是一个流行的开源平台,用于创建和共享统计数据的仪表板和可视化。除了内置的支持,Grafana 还有一个强大的插件生态系统,允许用户通过安装插件来扩展其功能。本文将介绍一些 Grafana 社区提供的插件,并探讨它们如何增强仪表盘的功能性。
335 1
|
4月前
|
运维 Kubernetes 监控
Loki+Promtail+Grafana监控K8s日志
综上,Loki+Promtail+Grafana 监控组合对于在 K8s 环境中优化日志管理至关重要,它不仅提供了强大且易于扩展的日志收集与汇总工具,还有可视化这些日志的能力。通过有效地使用这套工具,可以显著地提高对应用的运维监控能力和故障诊断效率。
440 0