ELK日志分析系统

ELK日志分析系统

日志服务器的特点

提高安全性

集中存放日志

缺陷:对日志的分析困难

日志处理步骤

将日志进行集中化管理

将日志格式化并输出到Elasticsearch

对格式化后的数据进行索引和存储

前端数据的展示

Elasticsearch的概述

提供了一个分布式多用户能力的全文搜索引擎

端口号:9200

Elasticsearch核心概念

接近实时

集群

节点

索引:

​ 索引(库)–》类型(表)----》文档(纪录)

分片和副本

Logstash介绍

一款强大的数据处理工具

可实现数据传输、格式处理、格式化输出

:数据输入、数据加工(如过滤,改写等)以及数据输出

端口号:5044

Logstash主要组件

shipper

lndexer

broker

search and storage

web interface

kibana介绍

一个针对Elasticsearch的开源分析及可视化平台

搜索、查看存储在Elasticsearch索引中的数据

通过各个图表进行高级数据分析及展示

端口号:5601

kibana主要功能

Elasticsearch无缝之集成

整合数据,复杂数据分析

让更多团队成员收益

接口拱火,分享更容易

配置简单,可视化多数据源

简单数据导出

ELK简介

是一套完整的日志集中处理解决方案,将上面三种开源工具配置使用

ELK的应用场景

一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。

日志系统基本特性

收集:能够采集多种来源的日志数据

传输:能够稳定的把日志数据解析过滤并传输到存储系统

存储:存储目志数据

分析:支持UI分析

警告:能够提供错误报告,监控机制

ELK工作原理

(1)在所有需要收集日志的服务器上部署logstash,或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署Logstash 。

(2 ) Logstash 收集日志,将日志格式化并输出到Elasticsearch 群集中。

(3 ) Elasticsearch对格式化后的数据进行索引和存储。

( 4 ) Kibana从 ES群集中查询数据生成图表,并进行前端数据的展示。

logstash作为日志搜集器,从数据源采集数据,并对数据进行过滤,格式化处理,然后交由Elasticsearch存储,kibana对日志进行可视化处理。

ES集群部署实验

1.准备两台虚拟机并修改主机名,配置域名解析

node1节点:192.168.116.13
node2节点:192.168.116.11
[root@node1 ~]# vim /etc/hosts    #配置域名解析
192.168.116.13 node1
192.168.116.11 node2

2.部署es软件包,修改配置文件

将软件包放入opt目录,开始解压
[root@node1 opt]# rpm -ivh elasticsearch-5.5.0.rpm 
加载服务并设置开机自启
[root@node1 opt]# systemctl daemon-reload    
[root@node1 opt]# systemctl enable elasticsearch.service
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
修改配置文件
[root@node1 opt]# vim /etc/elasticsearch/elasticsearch.yml
 17 cluster.name: my-elk-cluster          #取消注释并指定集群名字
 23 node.name: node1          #取消注释,指定节点名
 33 path.data: /data/elk_data  #取消注释,指定数据存放路径
 37 path.logs: /var/log/elasticsearch/   #取消注释,指定日志存放路径
 43 bootstrap.memory_lock: false    #取消注释,改为不锁定内存
 55 network.host: 0.0.0.0      #取消注释,设置监听所有地址
 59 http.port: 9200          #取消注释,设置默认监听端口
 68 discovery.zen.ping.unicast.hosts: ["host1", "host2"]   #取消注释
 

3.创建数据存放路径并授权,启动服务并查看节点信息

[root@node1 opt]# mkdir -p /data/elk_data
[root@node1 opt]# chown elasticsearch:elasticsearch /data/elk_data/
[root@node1 opt]# systemctl start elasticsearch.service
[root@node1 opt]# netstat -antp | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      106925/java              #服务已开启

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S9NY3GQl-1691315122113)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230803091047567.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sX4PoFSB-1691315122114)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230803091225221.png)]

Elasticsearch-head 插件部署

1.编译安装node

安装环境
[root@node1 opt]# yum install gcc gcc-c++ make -y
解压并编译
[root@node1 opt]# tar zxvf node-v8.2.1.tar.gz
[root@node1 opt]# cd node-v8.2.1/
[root@node1 node-v8.2.1]# ./configure

2.安装 phantomjs(前端的框架)

上传软件包到opt
[root@node1 node-v8.2.1]# cd /opt
解压缩并安装
[root@node1 opt]# tar zxvf elasticsearch-head.tar.gz -C /usr/local/src/
[root@node1 elasticsearch-head]# npm install

3.修改es配置文件并开启服务

[root@node1 elasticsearch-head]# vim /etc/elasticsearch/elasticsearch.yml
在末尾添加两行
http.cors.enabled: true
http.cors.allow-origin: "*"
[root@node1 elasticsearch-head]# systemctl restart elasticsearch

4.启动服务

[root@node1 elasticsearch-head]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm run start &
查看端口是否开启
[root@node1 elasticsearch-head]# netstat -natp |grep 9100
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      23136/grunt         
tcp        0      0 127.0.0.1:47712         127.0.0.1:9100          TIME_WAIT   -                   

5.通过 Elasticsearch-head 查看 Elasticsearch 信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-akfPQkVJ-1691315122114)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230803094359542.png)]

6.插入索引并测试

[root@node1 elasticsearch-head]# curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
{
  "_index" : "index-demo",
  "_type" : "test",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : true
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wVbC4YWz-1691315122114)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230803094606093.png)]

削峰:

按照优先级一次发送给另一端,消息代理会把数据放在内部

然后他去通过优先级,发送给logstash,举例 logstash他只能一次处理100个任务,但是现在又1000个任务,所以中间件(消息)先给他100个任务,最后数据会一点点给logstash最终保证logstash 压力平稳

②接口调用

可能对接接口规范不一致导致不兼容现象,所以这里使用消息代理去让两个接口兼容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值