如何通过web页面方式动态查看服务器日志信息?

如何通过web页面方式动态查看服务器日志信息?,第1张

系统日志的话,我是用的elk。业务日志的话。我这边日志量有点大。每台机器每小时有1-2G的日志。我尽量是采用的定时任务集中存放在一台机器上。和elk有点类似,但是我没解压。开发那边有授权他们登陆这台日志机器查看。如果是开发临时要看实时日志的话。运维房间摆了2台电脑。可以来这边操作。线上所有操作记录要有日志可查哦。免得他们当开发环境临时改了个啥后续影响正常环境我们不知道。

ELK是 Elasticsearch 、Filebeat、Logstash、Kibana的简称。

jdk版本推荐18以上,ELK各版本推荐一致,下载可搜索官网。

设当前服务器目录为 /root

jdk-8u171-linux-x64targz 已上传到 /root 目录下

设当前服务器目录为 /root

logstash-624targz 已上传到 /root 目录下

设当前服务器目录为 /root

logstash-624targz 已上传到 /root 目录下

21 日志的采集

灵活性是我们选择日志采集方案更看重的因素,所以logstash属于首先方案, 它可以兼顾多种不同系统和应用类型等因素的差异,从源头上进行一些初步的日志预处理。

logstash唯一的小缺憾是它的不轻便, 因为它是使用jruby开发并跑在java虚拟机上的agent, 当然啦,同时也是优点,即各种平台上都可以用。

22 日志的汇总与过滤

kafka在我们挖财已经属于核心的中间件服务, 所以, 日志的汇总自然而然会倾向于使用kafka。

日志的过滤和处理因为需求的多样性,可以直接对接订阅kafka, 然后根据各自的需求进行日志的定制处理, 比如过滤和监控应用日志的异常,即使通过zabbix进行预警; 或者数据仓库方面在原始日志的基础上进行清洗和转换,然后加载到新的数据源中;

23 日志的存储

原始的日志存储我们采用ElasticSearch, 即ELK技术栈中E的原本用途,遵循ELK技术栈中各个方案之间的通用规范, 比如日志如索引采用logstash与kibana之间约定的index pattern。

日志的衍生数据则日志使用各方根据需求自行选择。

24 日志的分析与查询

ELK技术栈中的Kibana已经可以很好的满足这一需求,这里我们不折腾。

3 需要解决哪些技术问题?

因为我们在ELK技术栈的处理链路上插入了一些扩展点,所以,有些问题需要解决和澄清

31 logstash与kafka的对接

ELK技术栈中, Logstash和Elastic Search是通过logstash的elasticsearch或者elasticsearch_http这几个output直接对接的, 为了让logstash转而对接kafka,我们有几种选择:

logstash-kafka

logstash-output-kafka

logstash的httpoutput

第一种和第二种方案都需要编译打包相应的依赖到logstash,然后随同logstash一起部署到服务结点, 虽然可以work, 但依赖重, 资源消耗多, 通用性不强;

个人更倾向于第三种方案,即使用logstash默认提供的http这个output, 因为http比较通用, 而且本身我们的kafka前面就有为了多系统对接而提供的http proxy方案部署。另外,依赖的管理和升级都在服务端维护,对每个服务结点是透明的。 当然, 唯一的弱点是效率可能不如基于长连接的消息传递高,只是暂时不是问题,即使将来成为瓶颈,也可以通过sharding的形式进行扩展。

32 kafka到elastic search的数据链路对接

kafka和es之间我们要加入一套日志过滤与处理系统, 这套系统是我们发挥整个体系最大威力的地方。 在整个系统的处理pipeline中,我们可以根据需求添加任意需要的Filter/Processor, 比如服务于应用报警的Filter/Processor,服务于数据仓库ETL的Filter/Processor等等。 但不管前面做了多少事情, 日志最终是要接入到ES进行存储的。

因为ELK技术栈中三者的对接遵循一些规范或者说规则, 而我们又需要继续复用这个技术栈中的服务提供的特定功能, 所以,即使是我们在整个处理链路中插入了扩展点,但数据的存储依然需要遵循ELK原来的规范和规则, 以便Kibana可以从ES中捞日志出来分析和展示的时候不需要任何改动。

logstash存入ES的日志,一般遵循如下的index pattern:

logstash-%{+YYYYMMdd}

使用日期进行索引(index)界定的好处是, 可以按照日期范围定期进行清理。

NOTE

进一步深入说明一下, 针对不同的日志类别, index pattern也最好分类对应。

更多信息:

Each log line from the input file is associated with a logstash event Each logstash event has fields associated with it By default, "message", "@timestamp", "@version", "host", "path" are created The "message" field, referenced in the conditional statement, contains all the original text of the log line

日志处理系统可以使用ES的java客户端或者直接通过ES的HTTP服务进行采集到的日志索引操作。

我们这里用到的是 filebeat+elk(elasticsearch+logstash+kibana) 来进行系统日志的收集。filebeat安装在各个服务器中,Logstash+ElasticSearch+Kibana安装在一台专门用于基础服务的服务器上。

Filebeat是一个轻量级的托运人,用于转发和集中日志数据 Filebeat作为代理安装在服务器上,监视您指定的日志文件或位置,收集日志事件,并将它们转发到 ElasticSearch Logstash 进行索引

官方中文文档: https://s0www0elastic0coicopysite/guide/en/beats/filebeat/current/indexhtml

Logstash是一个开源的服务器端数据处理管道,可以同时从多个数据源获取数据,并对其进行转换,然后将其发送到你最喜欢的“存储”。

官方中文文档: https://s0www0elastic0coicopysite/guide/en/logstash/current/indexhtml

Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库--无论是开源还是私有。

官方中文文档: https://s0www0elastic0coicopysite/guide/en/elasticsearch/reference/current/indexhtml

《Elasticsearch:权威指南》: https://wwwelasticco/guide/cn/elasticsearch/guide/current/indexhtml

Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。

官方中文文档: https://wwwelasticco/guide/cn/kibana/current/indexhtml

nginxconf中设置日志文件格式:

修改完成后,通过 sudo nginx -t 来检查配置文件是否正确,然后 sudo nginx -s reload 来重启

filebeat各系统安装教程详见官方文档。

我这里安装的deb包(rpm包也同样),配置文件在 /etc/filebeat/filebeatyml ,

filebeat命令:

参数介绍:

在/usr/local/文件夹下依次创建logstash/confd/logstashconf

grok正则在线验证地址: http://grokdebugherokuappcom

正则代表的含义: https://githubcom/elastic/logstash/blob/v142/patterns/grok-patterns

配置成功后,执行如下命令重启docker中的logstash (有时会重启失败,多试几次吧)

在浏览器中输入 http://ip:5601 进入kibana

然后如下设置

然后创建 index pattern

然后选择@timestamp

最后在Discover标签页就可以看到了

日志分析领域有关ELK产品的探讨、争议也是非常多的。

zd|先说ELK在日志分析的优:

1 强大的搜索功能,elasticsearch可以以分布式搜索的方式快速检索,而且支持DSL的语法来进行搜索,简单的说,就是通过类似配置的语言,快速筛选数据。

2 完美的展示功能,可以展示非常详细的图表信息,而且可以定制展示内容,将数据可视化发挥的淋漓尽致。

3 分布式功能,能够解决大型集群运维工作很多问题,包括监控、预警、日志收集解析等。

再说说缺点:

尽管研究一段时间,可以实现部署、测试。但对于中大型企业来说,功能点:告警、权限管理、关联分析等还是差之千里。团队支出需要多少成本,技术人才、时间的投入。

ELK产品需要部署多个产品。ELK指的是多个产品。

推荐一下日志分析领域日志易——可视化的海量日志(实时)搜索分析引擎。目前已经服务上百家大型企业,产品的优点呢是:实时、海量、智能运维、关联分析、权限管理、告警等;可以集群化部署!

缺点也有:收费 ,提供SaaS版的免费体验500MB/天

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何通过web页面方式动态查看服务器日志信息?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情