1. 概述

  • Nagios负责收集数据,是一款开源的免费网络监视工具。
  • influxDB负责存储数据,是一个开源的时间序列数据库。比较适合存储监控或者部署记录这些时序数据。
  • Grafana负责数据的图形化展示,是一款跨平台的开源的度量分析和可视化工具。大多用于时序数据的监控方面。
  • nagios+influxdb+grafana的监控数据可视化流程

2. Nagios

  • 官网

  • Nagios 监控
  • Nagios部署与配置
  • 分为免费版的Nagios Core和企业版的Nagios XI
  • 功能
    • 能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。
    • 在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知
    • 也可以以插件的形式自己编写脚本采集和发送数据,Nagios有自己的一套逻辑去按需触发它。
  • 服务端(Nagios Core)安装
    • Nagios Core可安装在RHEL、Ubuntu、CentOS等平台。
    • 默认安装目录:/usr/local/nagios
  • Nagios在监控服务的性能和状态时,有以下几个概念:
    • Host
    • Host Group
    • Service
    • Service Group(AMP没用到)
  • Nagios Plugin Development(自定义插件开发)
    • Nagios Plugin API - v3
    • Nagios Plugin API - v4
    • Nagios Plugins Development Guidelines - v4
    • 总结(假设安装目录是/user/local/Nagios)
      • Nagios在安装时,官方手册有一步会调用源码中的命令创建服务的用户和用户组,都是nagios。web的账号是nagiosadmin
      • 插件运行在Nagios服务端
      • 插件的运行入口是一个cfg配置文件(/etc/objects/template.cfg是一个官方提供的demo)。
        • 要在安装目录下的/etc/nagios.cfg中注册该入口配置文件:cfg_file=/usr/local/nagios/etc/objects/mindsphere_MTA.cfg,然后重启。

          • 重启:sudo systemctl restart nagios.service
        • 其中定义了用到的command、service、host、hostgroup,供Nagios的web使用,可以在界面上查看和操作这些元素。
          • hostgroup

            • 定义中的members部分定义了包含哪些host,members字段中指定的host必须也要定义好,不然虽然页面不报错,但是连这个hostgroup也显示不出来
      • 查看日志
        • /usr/local/nagios/var/下面,包括archives子目录
        • 如果启动成功了,那么具体的错误日志在界面上到相应的service的Status Information中也可以看到
      • Nagios的服务分为网站和后台服务两部分,sudo systemctl restart nagios.service操作的是所有服务,sudo service nagios stop关的只是后台服务。
  1. # HOSTGROUP DEFINITION ##############################################
  2. define hostgroup {
  3. hostgroup_name MMM-V3
  4. alias MindSphere MTA App
  5. members PRODA-MMMDEV
  6. }
  1. * host
  2. * 定义中的contact_groupscontacts部分定义了联系人和联系组
  1. define host {
  2. use generic-host
  3. host_name PRODA-MMMDEV
  4. alias ProdA-MMMDEV
  5. address 127.0.0.1
  6. max_check_attempts 1
  7. action_url null
  8. notes_url null
  9. icon_image cf.png
  10. icon_image_alt CloudFoundry
  11. notes MMM running in MMMDEV Space on PRODA
  12. contact_groups MTALive,MMMViewUsers,admins
  13. contacts DevOps
  14. }
  1. * 这两个字段中用到的contact必须在/etc/objects/**contacts.cfg**(也可以放在自己这个配置文件中??)中定义好,不然启动就会报错。
  1. define contact {
  2. contact_name nagiosadmin ; Short name of user
  3. use generic-contact ; Inherit default values from generic-contact template (defined above)
  4. alias Nagios Admin ; Full name of user
  5. email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
  6. }
  7. define contactgroup {
  8. contactgroup_name MTALive
  9. alias MTALive
  10. members DevOps
  11. }
  1. * command
  1. define command {
  2. command_name check_MMMservice_ProdA-MMMOPS
  3. command_line /usr/local/nagios/myplugin/check_proda_apps.sh $ARG1$ $ARG2$
  4. }
  1. * service
  1. define service {
  2. use generic-service
  3. host_name PRODA-MMMDEV
  4. service_description SinumerikAlarmProtocol
  5. check_interval 2
  6. retry_interval 1
  7. check_command check_MMMservice_ProdA-MMMOPS!SinumerikAlarmProtocol!mcapps
  8. notes Checks status of service alarmprotocol on ProdA MMMOPS system
  9. contact_groups MTALive
  10. contacts DevOps
  11. notifications_enabled 1
  12. notification_period 24x7
  13. notification_options w,c,r,f,s
  14. }

3. influxDB

  • 官网

  • InfluxDB基本概念和操作
  • windows版influxDB安装与配置
  • influxDB1.6版安装与配置(windows环境)、Jmeter+influxDB+Grafana性能监控
  • 也有自带的web界面-Chronograf,也在官网下载。
  • 使用
    • influxdb

      • 添加influxdb解压包目录的环境变量后,命令行中用influxd打开influxdb服务,默认是8086端口。默认账号密码都是admin?小心别把命令行阻塞了,会导致各种操作暂停
      • influxdb.conf配置文件可以配置data、meta、wal三个目录的位置,端口等。
      • Linux
        • 启动服务:sudo influxd

          • 为什么一定要占用Terminal前台?有没有后台service运行的方式,类似nagios?
        • 默认安装目录:/usr/bin/influx、influxd等,/usr/lib/influxdb
        • 默认配置文件位置:/etc/influxdb/influxdb.conf
        • 启动命令行:和Windows一样
    • Chronograf
      • 运行Chronograf解压目录下的chronograf.exe运行Chronograf服务,默认是8888端口,可以在浏览器中打开操作
  • 数据库操作方式
    • 客户端命令行方式

      • 进入命令行:influx 、或者指定时间戳格式influx -precision rfc3339,或者打开influx.exe
      • 常用命令
        • 数据库操作

          • SHOW DATABASES
          • CREATE DATABASE "db_name"
          • DROP DATABASE "db_name"
          • USE "db_name"
        • 表操作
          • SHOW MEASUREMENTS ON "db_name"
          • insert "measurement_name","tag_name"=server01 value=442221834240i [选填1435362189575692182时间戳]
            • InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表。
            • DROP MEASUREMENT "measurement_name"
        • 数据操作
          • insert "measurement_name","tag_name"=server01 value=442221834240i [选填1435362189575692182时间戳]
          • 查询语句与SQL一样
          • 不能修改/删除数据
        • series操作
          • series表示这个表里面的数据,可以在图表上画成几条线,series主要通过tags排列组合算出来。
          • show series from measurement_name
    • HTTP API接口
    • 各语言API库
    • 基于WEB管理页面操作

4. Grafana

  • 官网

  • 可视化工具Grafana:简介及安装
  • Grafana学习笔记
  • 功能
    • 支持Elasticsearch、MySQL、Sql Server、PostgreSQL、influxDB、Graphite等多种数据源,以及多种查询语言。
    • 支持多种图表及各种显示设置,数据可基于查询语言。
    • 支持自定义界面布局。
    • 支持通知功能。
    • 支持以json格式导入导出界面设置,包含数据源、query、界面、alert、定时刷新等所有设置。
  • 使用(Dashboards->Home网页上会指导你一步步进行)
    • Install Grafana
    • Create your first data source
    • New dashboard
    • Invite your team
    • Install apps & plugins
  • 操作
    • 启动服务:运行grafana-server.exe(linux上是service grafana start),默认是3000端口,默认账号密码都是admin,第一次登陆后会让你设置新密码
    • 和Graphite类似,也是可以有多个Dashboard,每个Dashboard中可以自定义布局和使用哪些图形,新建一个Dashboard。
      • 在Dashboards页面可以导入panel,使用json文件或直接输入json配置
      • 在每个dashboard的配置页面可以修改当前的json配置
    • 在新的Dashboard中可以增加不同类型的图形。每个图形的title点Edit,在Metrics标签页可以拼接一个完整的查询语句来控制图表展示的数据。
    • 每一个页面是一个Dashboard,可以设置布局,包含多个panel
    • 每个图形是一个panel,点击标题后下单菜单的Edit可以进一步设置
      • 第一个面板设置Queries,可以设置数据源及查询等
      • 第二个面板设置Visualization,可以设置显示成点、线(默认不显示空值的话,会显示成一个个的点,要把Null value设成connected,才会忽略空值将点连成线)还是饼,还可以设置Axes、Legend等。
      • 第三个面板设置General,如标题什么的
      • 第四个面板设置Alert。重要实用,项目也在用

Nagios+InfluxDB+Grafana的更多相关文章

  1. nagios+influxdb+grafana的监控数据可视化流程

    nagios介绍 nagios是一款开源监控的应用,可用于监控本地和远程主机的日志.资源.死活等等诸多功能.通过snmp协议和nrpe协议. nagios的配置文件是由nconf上进行配置,然后点击生 ...

  2. [系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控

    之前在 nagios 上建立了 esxi 监控,指标少.配置麻烦.视觉效果差.最近我把 esxi 监控迁移到了 influxdb+grafana 平台上,无论是监控指标.可操作性还是视觉效果都有了很大 ...

  3. [转帖] 基于telegraf, influxdb, grafana 建立 esxi 监控

    [系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控 https://www.cnblogs.com/hahp/p/7677420.html 之前在 nagi ...

  4. 【jmeter】基于InfluxDB&Grafana的JMeter实时性能测试数据的监控和展示

    本文主要讲述如何利用JMeter监听器Backend Listener,配合使用InfluxDB+Grafana展示实时性能测试数据 关于JMeter实时测试数据 JMeter从2.11版本开始,命令 ...

  5. influxdb + Grafana可视化监控平台

    在centos6.5上influxdb + Grafana监控平台配置: 1.RedHat and CentOS users can install the latest stable version ...

  6. 基于telegraf+influxdb+grafana进行postgresql数据库监控

    前言 随着公司postgresql数据库被广泛应用,尤其是最近多个项目在做性能测试的时候都是基于postgresql的数据库,为了确定性能瓶颈是否会出现在数据库中,数据库监控也被我推上了日程.在网上找 ...

  7. Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警

    前言 这次主要分享通过Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警方案.通过执行耗时,定位哪些接口拖累了服务的性能:通过请求频次,设置适当的限流 ...

  8. 详解k8s原生的集群监控方案(Heapster+InfluxDB+Grafana) - kubernetes

    1.浅析监控方案 heapster是一个监控计算.存储.网络等集群资源的工具,以k8s内置的cAdvisor作为数据源收集集群信息,并汇总出有价值的性能数据(Metrics):cpu.内存.netwo ...

  9. .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.关于App.Metrics+InfluxDB+Grafana 1.1 App.Metrics App.Metrics是一款开源的支持. ...

随机推荐

  1. Easyui Datagrid 的Combobox 如何动态修改下拉选项,以及值的转换

    我是先将下拉选项的值通过datagrid的url查出来了,在每一行的row中 //项目结果选项卡的列表    $('#project_table').datagrid({        width : ...

  2. centos 和KVM安装

  3. 在EXCEL中使用SQL语句查询

    SQL语句在数据库使用中十分重要. 在EXCEL中可以不打开工作簿,就获取数据,对多工作簿操作很用,也很快. 对大量数据处理,比循环快很多,但是比词典方法还有点距离(可惜我还没有学会词典). 对数据库 ...

  4. Python常见函数用法

    1. shape()函数 在numpy模块 输入参数:类似数组(比如列表,元组)等,或是数组 返回:一个整型数字的元组,元组中的每个元素表示相应的数组每一维的长度 # shape[0]返回对象的行数, ...

  5. MyBatis 体系结构

  6. 使用OpenSsl自己CA根证书,二级根证书和颁发证书(亲测步骤)

    ---恢复内容开始--- 一.介绍 企业自用, 到证书机构签发证书的费用和时间等都可以省下..... SSl证书的背景功用.......(省略万字,不废话) 可以参考: SSL证书_百度百科 X509 ...

  7. FreeSWITCH 客户端fs_cli连接设置(acl)

    FreeSWITCH 默认配置只能 在本机连接, 要从 外面连接, 就要配置: acl.conf.xml::network-lists/list event_socket.conf.xml::appl ...

  8. C++11之 auto

    [C++11类型推导] 1.使用auto的时候,编译器根据上下文情况,确定auto变量的真正类型.auto在C++14中可以作为函数的返回值,因此auto AddTest(int a, int b)的 ...

  9. python 文件的读取&更新

    [python 文件的读取&更新] 任务抽象: 读取一个文件, 更新内容后, 重新写入文件. 实际应用: 磁盘上的一个配置文件, 读入内存后为一个dict, 对dict更新后重新写入磁盘. d ...

  10. js使用浏览器的另存为下载文件

    页面上的页面如下: 我需要根据返回的url下载文件: js: //判断浏览器类型 function myBrowser(){ var userAgent = navigator.userAgent; ...