首页 > 编程知识 正文

elk日志收集,搭建日志服务器

时间:2023-05-06 12:19:18 阅读:40848 作者:4276

背景需求:业务发展越来越大,服务器越来越多,各种访问日志、APP应用日志、错误日志量越来越多,运营商无法很好地管理日志开发者的故障排除,在服务器上查询日志不便的运营者需要一些数据,需要我们运送到服务器进行日志分析。

ELK介绍:

ELK是三个开源软件的缩写: Elasticsearch、Logstash和Kibana,它们是开源软件。 由于当前已将Beats工具添加到原始elk堆栈成员中,因此将其重命名为elastic堆栈。 Beats是一种轻量级的日志收集处理工具(Agent ),资源消耗少,适合在每个服务中收集日志并传输到Logstash,官方也推荐使用。

构建步骤:经过上述说明,大家应该也理解了一点。 构建此平台至少需要3/4的软件(可以没有文件beat )。 kibana表示elasticsearch将搜索日志堆栈以过滤文件beat并收集日志。 本文假设您有docker环境,并且有基本的docker使用经验

镜像(统一版本中可以避免许多漏洞() dockerpullkibana :6.8.2 dockerpullelasticsearch :6.8.2 dockerpullmobz/Elasticsearch-head336006 es插件dockerpulllogstash :6.8.2 dockerpulldocker.elastic.co/beats/file beat 3:6 代理设置和docker镜像源docker更改速度较慢。如果有桌面,可以直接更改;否则,可以创建配置文件并更改传送门

另外,增加docker的内存,以防发生紧急情况。

构建es:docker run-d-p 920033609200-p 930033609300-- nameelasticsearch-e ' discovery.type=single-node ' elasticseeese

如果发生错误,请检查错误日志。

es-head:docker run-d-p 910033609100 docker.io/mobz/elastic search-head :9105也同样访问了localhost:9100,并且以下结果成功

es-head无法连接到es可能是因为es没有在域之间打开。 进入es容器内部,找到config文件下的elasticsearch.yml,并将其添加到此文件中。

http.CORS.enabled : true http.CORS.allow-origin : ' * '然后重新启动es后,es-head可以连接到es。

kiba na:docker run-d-p 560133605601-- linkelasticsearch-eelasticsearch _ URL=3http://elastic search 33609200 kiba na :0 之前使用了link。 将电子搜索IP地址添加到kibana容器的hosts文件中。 现在,您可以通过定义的name直接访问es服务。

如果容器成功启动,es-head应该会显示以下信息:

访问localhost:5601可以获得以下结果:

这样我们的kibana已经成功了,es也已经启动了,接下来是收集日志的服务。

生成文件beat和日志统计信息:首先,这两个兄弟声明需要一点配置文件。 我们想把这两个配置文件集中存储在整个文件夹里。 mkdir elktest #是主目录下的:~/elktest路径cdelktestouchfilebeat.ymltouchlogstash

vimfilebeat.ymlfilebeat.prospectors :-paths :--/home/elk/logs/user/a.log multiline 3360 pattern 3360 ^ {1} d {2} negate :真匹配: after fields : doc _ type : user-paths 3360-/home/elk/logs/service/a . negate :真匹配: after fields 3360 doc _ type : service output.log stash : #输出地址hosts : [ {3} log stash 33660 vimlogstash.conf input { beats { port=' 5044 ' } filter { JSON { source=' message ' } output { stdout { codec=ruby DDE }

mkdir logdir自己构建了一些日志,随便写什么,文件和文件夹名称不更改,已经在配置文件中对应了。 构建完成后,你的目录结构必须这样长:

创建容器:

docker run-it---- namelogstash---linkelasticsearch-d-p 504433605044-v~~/elk测试/log stash.conf :/UNF sharr log stash.conflogstash :6.8.2 docker run---namefilebeat---linklog stash-d-v~/elk test/file beat . elk/logs/user/- v~~/elk测试/logdir/service/3360/home/elk/logs /

如果不是这种情况,您可以检查容器是否正在运行以及是否存在错误日志。 您也可以在logstash容器中使用ping elasticsearch,在filebeat容器中使用ping logstash,以检查路径是否正常。

根据Kibana的说法,索引的方向:

创建完成后,添加要显示的字段。 内容在消息中。 正好是a.log上的内容。

至此,我们的elk已经完成了。 成功构建的合作伙伴将为晚餐增添鸡腿!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。