欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

免费方案:Kibana 监控 windows server 服务器系统资源,内网穿透

程序员文章站 2022-04-30 09:27:58
...

kibana 监控服务器


目录预览

1、需求说明
    1.1 工具选择
2、metricbeat工具介绍
3、安装部署
    3.1 下载
    3.2 配置
    3.3 安装
    3.4 启动
4、验证
5、性能
6、维护
7、Troubleshooting

一, 需求说明

1.1 监控需求

随着公司平台和外网项目的更多使用,针对项目的云平台部署运用、和服务器的图形化监控需求被提上日程。本文档记录监控平台的选型到实际应用的过程。

1.2 监控选择

收集和分析日志是应用开发中至关重要的一环,互联网大规模、分布式的特性决定了日志的源头越来越分散,产生的速度越来越快,传统的手段和工具显得日益力不从心。在规模化场景下,grep、awk 无法快速发挥作用,我们需要一种高效、灵活的日志分析方式,可以给故障处理,问题定位提供更好的支持。ELK平台高效的日志收集和分析系统,是目前比较流行的日志收集方解决方案。
苏宁,Sina、饿了么、携程、华为、美团、freewheel、畅捷通 、新浪微博、大讲台、魅族、IBM…… 这些公司都在使用ELK。它是免费、开源、实用、易用的监控架构,很多公司利用它来搭建可视化的海量日志分析平台。

1.3 ELK 优势

  1. 强大的搜索功能,elasticsearch可以以分布式搜索的方式快速检索,而且支持DSL的语法来进行搜索,简单的说,就是通过类似配置的语言,快速筛选数据。
  2. 完美的展示功能,可以展示非常详细的图表信息,而且可以定制展示内容,将数据可视化发挥的淋漓尽致。
  3. 分布式功能,能够解决大型集群运维工作很多问题,包括监控、预警、日志收集解析等。

ELK组件在海量日志系统的运维中,可用于解决:
- 分布式日志数据集中式查询和管理
- 系统监控,包含系统硬件和应用各个组件的监控
- 故障排查
- 安全信息和事件管理
- 报表功能

ELK组件在大数据运维系统中,主要可解决的问题如下:
- 日志查询,问题排查,上线检查
- 服务器监控,应用监控,错误报警,Bug管理
- 性能分析,用户行为分析,安全漏洞分析,时间管理

同时elastic官网提供足够详细的文档,学习相对比较集中和能够获取到足够的帮助资料。官方更新版本迅速能带来更多的功能适用。但同时带来了干扰(不同软件更替针对不同版本,比如topbeat在kibana 5开始弃用;老版本kibana支持导入dashboard等)

1.4 选择参考:

公司项目大多数依赖windows server,所以采集工具需要能采集到windows服务器数据。
公司大多数外网服务器使用云服务器,受限于资源(特别是带宽),采集数据本身不能消耗太多服务器系统资源和使用太多带宽。
ELK本身消耗大量内存,CPU和数据磁盘空间资源。ELK只能部署到本地(无单独服务器使用)
受限于ELK部署在本地,外网服务器数据要能写入到内网ELK(后续研究)
持续性的监控,通过时间周期回看查询。

总结:能在windows服务器上收集数据,并且不影响本身服务器的业务。前期最小化开支(不用单独购买ELK部署服务器)。数据采集后能存储到本地内网。数据展示图形化,直观和丰富。

下图:ELK的使用资源监控 (内存使用3G+, CPU 1G+, 大量数据存储)只能本地部署,或者单独ELK服务器。
免费方案:Kibana 监控 windows server 服务器系统资源,内网穿透

1.2 监控选择

前段时间做了各种docker部署,针对各种服务能使用docker的情况会尽量选用docker部署。本次监控使用 kibana平台集成elasticsearch,logstash,kibana的ELK docker (ELK 是 elastic 公司旗下三款产品 ElasticSearch 、Logstash 、Kibana 的首字母组合。)。通过docker-compose 部署在159服务器上。

kibana介绍:

Kibana 是一个开源的分析和可视化平台,旨在与 Elasticsearch 合作。Kibana 提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据。

本文档不针对ELK具体介绍。当前使用docker ELK版本为kibana 6.4 (当前kibana版本为7.0)

ELK 架构图

免费方案:Kibana 监控 windows server 服务器系统资源,内网穿透

图中可以看到kibana的架构通过Beats做数据收集,通过logstash做数据采集和转换,存储到elasticsearch中,通过kibana进行可视化分析/展示。

免费方案:Kibana 监控 windows server 服务器系统资源,内网穿透

另外其它监控系统 cAdvisor+InfluxDB+Grafana 也做了部署和尝试,本文档选型ELK所以不做耕作介绍。

二者区别:

Grafana + InfluxDB用于纯时间序列指标(特别是监控应用程序和服务器),ELK用于监控/诊断日志文件源等。
随着elastic公司快速迭代开发, 目前kibana同样具备更多数据采集和可视化数据的面板设计,同时Beats等工具集成到elasticsearch和kibana使用,使kibana具有更大的发挥空间。

二, metricbeat工具介绍

用于从系统和服务收集指标。从 CPU 到内存,从 Redis 到 Nginx,Metricbeat 能够以一种轻量型的方式,输送各种系统和服务统计数据。
您可以获取系统级的 CPU 使用率、内存、文件系统、磁盘 IO 和网络 IO 统计数据,以及获得如同系统上 top 命令类似的各个进程的统计数据。
Metricbeat 提供多种内部模块,用于从服务中收集指标,例如 Apache、NGINX、MongoDB、MySQL、PostgreSQL、Prometheus、Redis 等等。安装简单,完全零依赖性。只需在配置文件中启用您所需的模块即可。
Metricbeat 是 Elastic Stack 的一部分,因此能够与 Logstash、Elasticsearch 和 Kibana 无缝协作。无论您要使用 Logstash 转换或充实指标,还是在 Elasticsearch 中随意处理一些数据分析,亦或在 Kibana 中构建和分享仪表板,Metricbeat 都能轻松地将您的数据发送至最关键的地方。

三,安装部署

官方文档:

第1步:安装Metricbeat
第2步:配置Metricbeat
第3步:在Elasticsearch中加载索引模板
第4步:设置Kibana仪表板
第5步:启动Metricbeat
第6步:查看示例Kibana仪表板
APT和YUM的存储库

本公司基本使用windows server服务器,本次使用 windows版本安装部署服务器。
从下载页面下载Metricbeat Windows zip文件 。
将zip文件的内容解压缩到C:\Program Files。
将metricbeat--windows`目录重命名为Metricbeat。
以管理员身份打开PowerShell提示符(右键单击PowerShell图标,然后选择“以管理员身份运行”)。
在PowerShell提示符下,运行以下命令将Metricbeat安装为Windows服务:

A),安装metricbeat服务。
PS > cd 'C:\Program Files\Metricbeat'
PS C:\Program Files\Metricbeat> .\install-service-metricbeat.ps1
B),配置metricbeat.yml文件

主要kibana和elasticsearch的配置。

setup.kibana:
  host: "192.168.0.159:5601"
output.elasticsearch:
  hosts: ["192.168.0.159:9200"]

kesgo上面做了内网穿透,通过 vhost_http_port = 9201 来转发 elasticsearch的9200,和kibana的5601

setup.kibana:
  host: "www.abccom.com:9201"
output.elasticsearch:
  hosts: ["kibana.abccom.com:9201"]
C),手动加载模板 到 elasticsearch (powershell 执行)
PS > .\metricbeat.exe setup --template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["192.168.0.159:9200"]'
D),kibana加载模板 (powershell 执行)
PS > .\metricbeat.exe setup --dashboards

四,验证

访问:http://192.168.0.111:5601
进入 management,kibana的Index Patterns设置,能看到 metricbeat-* 已被加载。设为默认 (default index )
免费方案:Kibana 监控 windows server 服务器系统资源,内网穿透

进入 Dashboard,选择 [Metricbeat System] Host overview ,面板
免费方案:Kibana 监控 windows server 服务器系统资源,内网穿透

通过dashboard可以查看到 kesgo服务器的各方面数据。可以通过 time range进行时间区间选择,查看不同时间段监控数据。
免费方案:Kibana 监控 windows server 服务器系统资源,内网穿透

五,性能

Metricbeat, frp占用内存,CPU,以及数据发送带宽都极低。对性能影响极小。
免费方案:Kibana 监控 windows server 服务器系统资源,内网穿透

六,维护

内网穿透

几种方法:
写入到内网 路由器 端口映射 NAT
内网安装使用nat123并通过全映射方式,实现外网对FTP的访问。

选择使用:
Frp工具(免费,支持windows,linux) https://github.com/fatedier/frp/releases
kesgo搭建frp: 内网穿透 frp部署.note (后续更新)

七,Troubleshooting

kesgo上面做了 vbs脚本,添加frp自启动;Metricbeat 作为服务设为自启动。
frpc端在159上做了自启动/后台运行。

相关标签: 监控