免费方案:Kibana 监控 windows server 服务器系统资源,内网穿透
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 优势
- 强大的搜索功能,elasticsearch可以以分布式搜索的方式快速检索,而且支持DSL的语法来进行搜索,简单的说,就是通过类似配置的语言,快速筛选数据。
- 完美的展示功能,可以展示非常详细的图表信息,而且可以定制展示内容,将数据可视化发挥的淋漓尽致。
- 分布式功能,能够解决大型集群运维工作很多问题,包括监控、预警、日志收集解析等。
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服务器。
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的架构通过Beats做数据收集,通过logstash做数据采集和转换,存储到elasticsearch中,通过kibana进行可视化分析/展示。
另外其它监控系统 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 )
进入 Dashboard,选择 [Metricbeat System] Host overview ,面板
通过dashboard可以查看到 kesgo服务器的各方面数据。可以通过 time range进行时间区间选择,查看不同时间段监控数据。
五,性能
Metricbeat, frp占用内存,CPU,以及数据发送带宽都极低。对性能影响极小。
六,维护
内网穿透
几种方法:
写入到内网 路由器 端口映射 NAT
内网安装使用nat123并通过全映射方式,实现外网对FTP的访问。
选择使用:
Frp工具(免费,支持windows,linux) https://github.com/fatedier/frp/releases
kesgo搭建frp: 内网穿透 frp部署.note (后续更新)
七,Troubleshooting
kesgo上面做了 vbs脚本,添加frp自启动;Metricbeat 作为服务设为自启动。
frpc端在159上做了自启动/后台运行。
上一篇: Centos7下搭建Gitlab服务器
下一篇: C#调用科大讯飞离线语音合成TTS