纯本地搭建 EFK 管理远程服务器日志

项目staging环境日志难以搜索,计划搭建EFK管理日志,但是EFK内存消耗太大,再新增云服务器不划算,打算搭建在本地(16G内存)。

什么是 EFK

EFK不是一个软件,而是一套解决方案,并且都是开源软件,其中 ELasticsearch 负责日志保存和搜索,FileBeat 负责收集日志,Kibana 负责界面。

  1. Elasticsearch
    Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  2. FileBeat
    Filebeat 隶属于 Beats,搜集日志数据并上载到 ElasticsearchLogstashRedis 等平台。
  3. Kibana
    Kibana 提供日志分析的友好 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

环境现状

  1. 本地环境:Windows 10,Intel(R) Core(TM) i5-7500 CPU,内存 16G
  2. 远程环境:SUSE Linux Enterprise Server 11,可用内存不足 1G
  3. 本地可以启虚拟机,但没钱买额外的云服务器。

最初想法

目前有3种思路:

  1. 本地启动Elasticsearch、Kibana、Filebeat,服务器启动FTP,并映射到本地网络驱动器,Filebeat配置从网络驱动器读取log。
  2. 本地启动Elasticsearch、Kibana,用反向代理工具FRP暴露Elasticsearch的9200端口到公网(注意配置鉴权),远程启动Filebeat,输出到本地的Elasticsearch。
  3. 本地启动Elasticsearch、Kibana,Logstash,远程启动Filebeat、Redis,远程的Filebeat输出到Redis,本地的Logstash从Redis上读取,转发给Elasticsearch。

负载均衡:ELB, ALB, NLB, CLB

负载均衡的作用

对多台云服务器进行流量分发的服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。

  1. 提高可用性和访问速度
    在单个可用区或多个可用区内的多个目标之间自动分配流量。
  2. 运行状况检查
    检测无法正常运行的目标、停止向它们发送流量,然后将负载分散到剩余的正常运行的目标上。
  3. 安全性功能
    创建和管理与负载均衡器关联的安全组,以提供更多联网和安全选项。
  4. TLS 终止
    提供集成化证书管理和 SSL/TLS 解密,可以灵活地集中管理负载均衡器的 SSL 设置,并从应用程序上卸载 CPU 密集型工作。

给Hexo博客配置Azure CI持续集成实现自动部署

封面来源: 10th Magnitude

这是篇瞎球折腾笔记。
CI是个好东西,前段时间看了一本关于DevOps的书,对持续集成有了一定了解。
Hexo博客本身拥有很简洁的编译、部署过程:

1
2
hexo g
hexo d

但是简单的基础是前戏太多:
配置SSH,拉项目,拉子模块,安装NodeJS,安装脚手架,安装依赖……
虽然命令多,但是比较单一,便首先想到了给Hexo写CI脚本。

使用的第一个平台是腾讯云开发者平台(dev.tencent.com),它提供基于Jenkinsfile的持续集成beta版本
优点:免费,全中文界面,配置简单易于上手,支持Jenkins,国内服务速度快
缺点:目前功能较少,不支持上传secret files,无法配置SSH,npm依赖下载缓慢

hexo d命令是需要调用git push的,不支持SSH就凉了,过程就不讲了,在经过一番折腾后,我选择放弃了这个平台。

第二选择是自己搭建Jenkins,一番折腾后,发现自己的VPS性能太差,而且Windows版一些配置难以用配置文件完成,要手动配置,考虑到未来迁移起来会困难,逐放弃……

优点:完全免费,网上资料丰富
缺点:配置复杂,需要自行搭建,性能依赖于VPS性能

最后成功地在巨硬(Microsoft)Azure DevOps上配置好了,跟大家分享步骤!

优点:免费(一个月1800分钟、1个并行job),runner质量高,配置方便
缺点:Web hook不稳定,2次遇到GitHub调不通而没有自动触发Trigger的情况,与其他CI配置不兼容,参考资料较少

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×