golang
文章平均质量分 59
21秋招拒做分母
这个作者很懒,什么都没留下…
展开
-
LogCollector07: LogTransfer
需要完成什么?程序启动加载配置文件:左边连接哪个kafka,连的kafka的topic是什么。右边连哪个es,es哪个索引,按照什么样的频率去写?[kafka]address=127.0.0.1:9092topic=web_log[es]address=192.168.0.106:9200index=webmax_chan_size=10000goroutine_num=16在model包中,建立config的struct。在main中:1.加载配置文件。2.连接es。(封装.原创 2021-03-13 16:21:05 · 108 阅读 · 0 评论 -
LogCollector08: 总结
1.项目架构2.为什么不用elk3.如何保证日志不丢失?重启后能继续收集。发给kafka,发一条会有一个ack。记录读到哪个日志文件的offset。万一重新启动了,可以继续收集日志。4.kafka几种模式5.etcd的watch原理。最底层用的websocket。6.es相关知识点。etcd里有各个服务器日志存放的路径,它们各不相同。拿着ip,拼了一个字段key,去etcd里拉取配置。(用占位符拼接)然后就是logagent。读配置文件,连接etcd,连接之后暂时能获取一次配置。拿原创 2021-03-13 16:20:44 · 267 阅读 · 1 评论 -
LogCollector07: Kibana
Kibana介绍与安装kibana可以用来搜索、查看并和寸纯在elasticsearch索引中的数据进行交互。brew install kibana保证和es都是v7修改配置文件:为什么不用filebeat而写一个logagent?服务器太多,没必要filebeat一个个要写配置。我们把logagent的配置文件放在etcd里,相当于做了web的一个配置中心。logagent做了一个实时watch,从etcd里把最新的收集项的配置拿到,这样就不用去服务器改配置文件了。公司有现成的配置中心,原创 2021-03-12 20:03:06 · 74 阅读 · 0 评论 -
LogCollector06: ElasticSearch
ElasticsearchElasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机。Elasticsearch能做什么当你经营一家网上商店,你可以让你的客户搜索你卖的商品。在这种情况下,你可以使用E原创 2021-03-11 23:23:15 · 105 阅读 · 0 评论 -
LogCollector04: Grafana可视化工具
grafana展示数据的工具,监控数据可视化搜索引擎找官网下载下载地址:https://grafana.com/grafana/download安装mac:brew install grafana位置:/usr/local/Cellar/grafana/7.4.3启停命令通过下面命令可以后台启动/停止grafana,默认端口3000// startbrew services start grafana// stopbrew services stop grafana浏览原创 2021-03-11 19:58:56 · 176 阅读 · 0 评论 -
LogCollector05: SysTransfer
系统架构梳理为什么不直接写在influxdb里呢?部署信息收集的工具和grafana不在一个机器上。上千台机器全部往influxdb里写,数据容易丢(influx集群服务需要收费),但是延迟增加了。为了解决延迟性的问题,写入influxdb的时候多起几个goroutine,只要发送到kafka立刻读出来。...原创 2021-03-11 19:56:53 · 71 阅读 · 0 评论 -
LogCollector03: influxDB
influxDB好处:每隔五秒收集一次上章几个维度的数据,放在mysql里非常占数据,且io查询相当慢。需要一种按时间来索引的时序数据库,它按时间存储。InfluxDB是一个开源分布式时序、事件和指标数据库。使用Go语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。安装下载https://portal.influxdata.com/downloads/】Mac和Linux用户可以点击https://v2.docs.influxdata.com/v2.0/get-started/下载。原创 2021-03-11 15:03:45 · 93 阅读 · 0 评论 -
LogCollector02: gopsutil
gopsutilpsutil是一个跨平台进程和系统监控的Python库,而gopsutil是其Go语言版本的实现。本文介绍了它的基本使用。Go语言部署简单、性能好的特点非常适合做一些诸如采集系统信息和监控的服务,本文介绍的gopsutil库是知名Python库:psutil的一个Go语言版本的实现。安装go get github.com/shirou/gopsutil使用:采集CPU相关信息:import "github.com/shirou/gopsutil/cpu"// cpu in原创 2021-03-11 13:34:27 · 219 阅读 · 0 评论 -
LogCollector01:LogAgent的设计
日志收集的agent开发配置文件版logagentini配置文件解析cfg , err := ini.Load("./conf/config.ini")if err != nil { logrus.Error("load config failed,err:%v", err) return}kafkaAddr := cfg.Section("kafka").Key("address").String()fmt.Println(kafkaAddr)初始化kafka// Init 是初始原创 2021-03-05 17:03:23 · 502 阅读 · 0 评论 -
Kafka和Zookeeper的配置
1.项目架构可以用zookeeper管理Kafka集群原创 2021-03-05 17:01:33 · 731 阅读 · 0 评论 -
Java极速转golang
var:e := 100constconst ( a, b = iota+1, iota+2 // iota = 0, a = iota + 1, b = iota + 2, a = 1, b = 2 c, d // iota = 1, c = iota + 1, d = iota + 2, c = 2, d = 3 e, f // iota = 2, e = iota + 1, f = iota + 2, e = 3, f = 4 g, h = iota * 2, i.原创 2021-02-28 12:53:29 · 526 阅读 · 0 评论