一、背景介绍

本监控方案支持对Windows Server服务器集群的全面监控,方案提供丰富的图表展示, 以及对异常问题进行邮件的实时报警。

本系统由Collectd(操作系统数据搜集)、logstash(业务数据搜集)、Influxdb(数据存储)、Grafana(图表展示和预警)四个子系统组成。

Collectd 是一个商业产品,但可以下载其免费版本,安装后已windows服务的形式运行,提供了配置界面(虽然很多模块不支持),总体而言操作比较方便。

logstash是一个完全开源的工具,可以进行日志收集、分析。

Influxdb 是一个开源,分布式,时间序列,事件,可度量和无外部依赖的数据库。

Grafana 是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。同时也提供了细致的预警功能。

二、 Collectd

  1. 下载Collectd安装包
     2. 安装Collectd
        执行exe文件,安装提示完成安装。

3. 修改配置:

      由于是免费版本,收集时间不能调整,默认是5分钟。下面是几个重要的配置项:
        a. Hostname(默认会获取主机名,但使用IP会更直观)
        

     b. 内存选项设置,选择上“Report values in percent”选项,数据会以百分比的形式存储。
        

     c. collectd中设置influxDB目标地址,推送数据。
        

 

4. 修改完成后即可正常使用Collectd

        安装后默认服务是启动的,修改配置后需要重启SSC Service。

三 logstash

 
    2.  配置logstash(收集业务日志)
      日志格式:
  1. 10.180.8.88 /parQuery/123 655
  2. 10.180.5.77 /orderQuery/pnr 317
  3. 10.180.5.77 /orderQuery/pnr 250
  4. 10.180.5.77 /parQuery/123 44
  5. 10.180.8.88 /parQuery/123 442
  6. 10.180.5.77 /orderQuery/pnr 195
  7. 10.180.5.77 /orderQuery/pnr 303
       在\bin目录下创建logstash.conf文件,并按照如下格式配置logstash(解析收集业务日志):
  1. input {
  2. file { # 文件路径 path => "F:/projects/Test/*.log" }
  3. }
  4. filter {
  5. #定义数据的格式
  6. grok {
  7. match => { "message" => "%{IPV4:client} %{GREEDYDATA:request} %{NUMBER:duration}"}
  8. }
  9. mutate { convert => { "duration" => "integer" }}
  10. }
  11. output {
  12. stdout{codec => json}
  13. influxdb {
  14. db => "test"       #influxDB数据库名
  15. host => "localhost"           #influxDB服务地址
  16. port => "8086"                #influxDB端口
  17. user => "username"            #influxDB初始化的用户名
  18. password => "password"        #influxDB初始化的秘密
  19. allow_time_override => true    #允许覆盖time事件中的列?
  20. coerce_values => {            # 转换类型
  21. "duration" => "integer"
  22. }
  23. data_points => {                #键/值对的哈希表示要发送到指定数据库的数据
  24. "client" => "%{client}"
  25. "request" => "%{request}"
  26. "duration" => "%{duration}"
  27. }
  28. }
  29. }
    3.在bin目录下创建run.bat,写入一下脚本:        
  1. logstash.bat -f logstash.conf
        执行run.bat启动logstash。

四、 Influxdb

  • 安装Influxdb

1. 下载influxdb安装包

https://dl.influxdata.com/influxdb/releases/influxdb-1.3.4_windows_amd64.zip

2. 解压influxdb
       

3. 根目录创建run.bat文件用于启动influxDB,写入“influxd.exe -config F:\monitor\influxdb-1.3.4-1\influxdb.conf”,使influxdb.conf文件生效,也可通过环境变量来设置相关配置信息。

  • Influxdb 配置

1.   这三个配置是跟数据存储相关的配置influxdb.conf,默认放在了系统用户根目录下,可以进行修改。

2. 打开collectd端口

 
  • Influxdb 启动

    执行创建的run.bat文件。
     
  • Influxdb 注意事项

  1. 注意涉及到influxdb 相关数据文件路径及相关读写权限问题,涉及配置文件:$INFLUXDB_HOME/influxdb.conf
  2. 在1.3版本以上取消了WEB管理的模块,可使用influx.exe通过命名操作influxDB
  3. 创建管理员账号:CREATE USER username WITH PASSWORD password WITH ALL PRIVILEGES
  4. Influxdb 查询语句类似普通SQL,但细节差异较多,详见官网
  5. 由于数据量较多,当查询数据时,尽量使用limit 对查询结果进行限制,以免数据库崩溃

五、 Grafana

  • 安装配置Grafana

1. 下载Grafana:

https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.5.2.windows-x64.zip

2. 解压后修改\conf\defaults.ini文件,配置STMP,预警邮件会使用到    

     3. 执行bin\grafana-server.exe文件启动Grafana
  • Grafana启动页面

     默认登录密码为admin/admin,请及时修改为强密码
  • Grafana配置数据源

    1. 登录Grafana,点击页面左上角Grafana图标,选择DataSource
        

         2. 点击 Add data source 
        

 3. 填写数据源相关字段
 

 4. 点击Add 即可添加完成。
  • Grafana添加数据图表

    1. 添加Dashboards

     2. 选择视图样式

         3. 进入编辑模式

         4. 对视图进行编辑

         5. 保存Dashboard。

 
  • Grafana添加预警

    1.进入通知频道

     2. 添加频道

 3. 设置频道信息、收件人地址。

 4. 测试并保存。

 5. 进入Dashboard编辑模式,新建预警。

 6. 配置预警信息

 7. 保存完成,接收到预警邮件。

 
  • Grafana注意事项

1. 登录地址为:http://IP:3000/login

2. 默认登录密码为admin/admin,请及时修改为强密码,添加数据源和数据图表等权限都需要该账户具有编辑权限才可以进行操作,需要用admin进行权限赋予。

 

collectd+logstash+influxdb+grafana构建windows服务器应用监控系统的更多相关文章

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

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

  2. window平台基于influxdb + grafana + jmeter 搭建性能测试实时监控平台

    一.influxdb 安装与配置 1.1 influxdb下载并安装 官网无需翻墙,但是下载跳出的界面需要翻墙,我这里提供下载链接:https://dl.influxdata.com/influxdb ...

  3. Spring Boot Actutaur + Telegraf + InFluxDB + Grafana 构建监控平台

    完成一套精准,漂亮图形化监控系统从这里开始第一步 Telegraf是收集和报告指标和数据的代理 它是TICK堆栈的一部分,是一个用于收集和报告指标的插件驱动的服务器代理.Telegraf拥有插件或集成 ...

  4. 微服务监控之二:Metrics+influxdb+grafana构建监控平台

    系统开发到一定的阶段,线上的机器越来越多,就需要一些监控了,除了服务器的监控,业务方面也需要一些监控服务.Metrics作为一款监控指标的度量类库,提供了许多工具帮助开发者来完成自定义的监控工作. 使 ...

  5. 基于 Njmon + InfluxDB + Grafana 实现性能指标实时可视监控

    引言 最近逛 nmon 官网时,发现了一个新工具 njmon,功能与 nmon 类似,但输出为 JSON 格式,可以用于服务器性能统计. 可以使用 njmon 来向 InfluxDB 存储服务器性能统 ...

  6. 使用Vert.x构建Web服务器和消息系统

    如果你对Node.js感兴趣,Vert.x可能是你的下一个大事件:一个建立在JVM上一个类似的架构企业制度. 这一部分介绍Vert.x是通过两个动手的例子(基于Vert.x 2.0). 当Node.j ...

  7. Grafana+Prometheus打造全方位立体监控系统

    前言 本文主要介绍如何使用Grafana和Prometheus以及node_exporter对Linux服务器性能进行监控.下面两张图分别是两台服务器监控信息: 服务器A 服务器B 概述 Promet ...

  8. 利用Metrics+influxdb+grafana构建监控平台(转)

    转自http://www.jianshu.com/p/fadcf4d92b0e 这里再配合Influxdb和Grafana可以构建一个非常漂亮的实时监控界面. Grafana监控界面 采集数据(Met ...

  9. Telegraf+Influxdb+Grafana(Windows下本机简易监控系统搭建)

    1.文件名称 telegraf-1.5.0_windows_amd64.zip influxdb-1.4.2_windows_amd64.zip grafana-4.6.3.windows-x64.z ...

随机推荐

  1. iOS Framework: Introducing MKNetworkKit (MKNetworkKit介绍,入门,翻译)

    这片文章也有塞尔维亚-克罗地亚语(由Jovana Milutinovich翻译)和日语(由@noradaiko翻译) 如果有个一个网络库能够自动的为你处理cache该有多好啊. 如果有一个网络库能够在 ...

  2. GO语言_用redis作为url队列的爬虫

    // Copyright 2016 laosj Author @songtianyi. All Rights Reserved. // // Licensed under the Apache Lic ...

  3. C - The C Answer (2nd Edition) - Exercise 1-16

    /* Revise the main routine of the longest-line program so it will correctly print the length of arbi ...

  4. C++11中的原子操作(atomic operation)(转)

    所谓的原子操作,取的就是“原子是最小的.不可分割的最小个体”的意义,它表示在多个线程访问同一个全局资源的时候,能够确保所有其他的线程都不在同一时间内访问相同的资源.也就是他确保了在同一时刻只有唯一的线 ...

  5. 内核顶层Makefile相关1

    http://www.groad.net/bbs/simple/?f104.htm $(Q) 变量 内核 Makefile 文件 238 行到 259 行的注释中知道,$(Q) 变量的作用是决定是否在 ...

  6. Windows 10遭遇百万粉丝“围攻”(挑刺)

    9月30日,微软公布Win 10技术预览版,征求反馈意见. 出人意料的是.截止10月14日.在短短两周内,竟有百万粉丝下载试用(所谓"測试"),反馈了20万条改动意见.对此,微软真 ...

  7. android IPC通信(上)-sharedUserId&&Messenger

    看了一本书,上面有一章解说了IPC(Inter-Process Communication,进程间通信)通信.决定结合曾经的一篇博客android 两个应用之间的通信与调用和自己的理解来好好整理总结一 ...

  8. angular input file 上传文件

    <body > <div ng-controller="fileCtrl"> <form ng-submit="submit(obj)&qu ...

  9. erlang取列表中某个值的位置

    有个需求,比如在一个列表中,取出一个元素的位置,如果出现重复都取出.例如:List = [2,3,10,324,88,29,12],可以求大于某个值的位置,也可以取某个值的位置. 废话少说,直接上代码 ...

  10. Android-Bundle的说明和用法

    1.Bundle类的作用 Bundle类是一种数据载体,类似于Map,用于存放key-value名值对形式的值.相对于Map,它提供了各种常用类型的putXxx()/getXxx()方法, 如:put ...