## 一、说明
如果你已经搭建好ELK了(确保每个组件都成功启动了),并且没有发现报错,但是发现首页图标/系统日志之类的没有数据,可以按照以下思路一步步排查。
> 关于ELK的安装移步:
> [https://ihavenolimitations.xyz/zlt2000/microservices-platform/961674](https://ihavenolimitations.xyz/zlt2000/microservices-platform/961674)
> [https://ihavenolimitations.xyz/zlt2000/microservices-platform/961675](https://ihavenolimitations.xyz/zlt2000/microservices-platform/961675)
## 二、数据链路流程
先理解整个数据流向之后,就可以开始逐个排查问题了

源头数据(xxx.log) -> 数据抽取(Filebeat) -> 数据解析(Logstash) -> 数据存储(Elasticsearch) -> 数据展示(search-center、log-center)
## 三、问题排查
### 3.1. 版本问题
目前**搜索中心**的代码只支持`Elasticsearch7.x`版本
### 3.2. 源头数据
进去程序部署的服务器里面看看源头的日志有没有生成并且有没有数据
**以首页的埋点日志为例**
1. **检查有没有生成日志文件**

2. **检查里面有没有数据**

> 不清楚日志怎么来的移步:[微服务业务监控和行为分析怎么做?试试日志埋点](https://mp.weixin.qq.com/s/-zsJHE4NLWP73ovjwrPAIA)
### 3.3. 数据抽取
1. **检查抽取配置**
查看filebeat的配置文件`filebeat.yml`

**enabled**:是否为true
**paths**:路径是否正确
2. **检查输出配置**
检查输出端`output.logstash`的地址是否配置正确

3. **检查日志**
filebeat的logs目录下的日志,看看是否有报错,是否有抽数
### 3.4. 数据解析
检查logstash的log目录下的日志,看看有没有报错信息
**有报错信息**
* 检查配置文件是否有语法错误,参考官网手册
* 在不影响语法正确性的前提下,用排除法删减或增加配置,逐步找出有问题的配置项
**例如**:
1. 把所有配置都删掉看看有没有报错,没有则继续下一步
2. 只添加10行配置看看有没有报错,没有则继续下一步
3. 再添加10行配置看看有没有报错,报错了则详细检查新增加这10行的配置语法
> 需要对logstash的配置和语法有基本的了解
### 3.5. 数据存储
#### 3.5.1. 检查日志
检查elasticsearch的log目录下的日志,看看有没有报错信息
#### 3.5.2. 检查索引
检查索引是否已创建,是否有数据
通过[http://es地址:9200/\_cat/indices?v](http://xn--es-im8ckc:9200/_cat/indices?v)查看
> 索引名称可去logstash的配置查找,下图以首页埋点日志为例
> 
> 
#### 3.5.3. 检查是否结构化
看看索引字段是否自动结构化

> 如果日志没有结构化,则检查logstash的grok配置
### 3.6. 数据展示
#### 3.6.1. 检查服务日志
检查`search-center`和`log-center`服务是否启动,并检查后台日志是否有报错
#### 3.6.2. 检查服务配置
检查对应的配置`application-xxx.properties`文件

**zlt.elasticsearch.uris**:elasticsearch的地址对不对
**username与password**:如果配置了xpack认证需要配置用户名和密码
- springcloud
- springcloud的作用
- springboot服务提供者和消费者
- Eureka
- ribbon
- Feign
- feign在微服务中的使用
- feign充当http请求工具
- Hystrix 熔断器
- Zuul 路由网关
- Spring Cloud Config 分布式配置中心
- config介绍与配置
- Spring Cloud Config 配置实战
- Spring Cloud Bus
- gateway
- 概念讲解
- 实例
- GateWay
- 统一日志追踪
- 分布式锁
- 1.redis
- springcloud Alibaba
- 1. Nacos
- 1.1 安装
- 1.2 特性
- 1.3 实例
- 1. 整合nacos服务发现
- 2. 整合nacos配置功能
- 1.4 生产部署方案
- 环境隔离
- 原理讲解
- 1. 服务发现
- 2. sentinel
- 3. Seata事务
- CAP理论
- 3.1 安装
- 分布式协议
- 4.熔断和降级
- springcloud与alibba
- oauth
- 1. abstract
- 2. oauth2 in micro-service
- 微服务框架付费
- SkyWalking
- 介绍与相关资料
- APM系统简单对比(zipkin,pinpoint和skywalking)
- server安装部署
- agent安装
- 日志清理
- 统一日志中心
- docker安装部署
- 安装部署
- elasticsearch 7.x
- logstash 7.x
- kibana 7.x
- ES索引管理
- 定时清理数据
- index Lifecycle Management
- 没数据排查思路
- ELK自身组件监控
- 多租户方案
- 慢查询sql
- 日志审计
- 开发
- 登录认证
- 链路追踪
- elk
- Filebeat
- Filebeat基础
- Filebeat安装部署
- 多行消息Multiline
- how Filebeat works
- Logstash
- 安装
- rpm安装
- docker安装Logstash
- grok调试
- Grok语法调试
- Grok常用表达式
- 配置中常见判断
- filter提取器
- elasticsearch
- 安装
- rpm安装
- docker安装es
- 使用
- 概念
- 基础
- 中文分词
- 统计
- 排序
- 倒排与正排索引
- 自定义dynamic
- 练习
- nested object
- 父子关系模型
- 高亮
- 搜索提示
- kibana
- 安装
- docker安装
- rpm安装
- 整合
- 收集日志
- 慢sql
- 日志审计s
- 云
- 分布式架构
- 分布式锁
- Redis实现
- redisson
- 熔断和降级