日志系统 - 背景
背景目前项目查看日志的方式较为朴素,人工线上查看log的方式也较为麻烦. 一套能查看全链路日志的系统,对每位开发来说无疑是雪中送炭的 其次,目前的业务日志中的数据是可供二次利用和开发的,而非目前仅是排查问题使用 目标 打造全员可实时查看生产日志,并能提取调用链日志 应用到后续的业务发展中(BI) apm 价值为BI业务(other/计算)做准备 夯实服务架构 便利开发查看日志,不仅是业务日志,filebeat提供了各种module以支持监控各种中间件的日志 初步设想架构图 改动点 服务 保持原有日志格式 各日志加字段['traceId','localIp','module']-以便有问题可以确定到某台机器上的某个服务 各模块traceId通过rest接口传递header(Rest插件改造) 由(网关生成traceid)orange向下传递traceId(uuid/snowflake) Elk(单点) filebeat和服务部署在同台机器上 Es-index格式暂定: ${环境/(dev/...
记录下logstash的配置加解释
记录下logstash的配置加解释logstash.conf(全,加注释)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687input { beats { port => 5044 #ssl => true #ssl_certificate => "/etc/logstash/logstash.crt" #ssl_key => "/etc/logstash/logstash.key"# 1. SSL 详情可参考 }}# filter 模块主要是数据预处理,提取一些信息,方便 elasticsearch 好归类存储。# 2. grok 正则捕获 # 3. grok 插件语法介...
记录日志系统的安装-部署-配置-使用文档(1)
[[日志系统使用文档地址]] 站内搜索[记录日志系统的安装->部署->配置->使用文档(3)] 服务器es, logstash, kibana内存: 8G磁盘: 500G处理器: 4/8核带宽: 2m 1234567以上配置是原来写的,在之后的线上环境很快就得到了验证, 结果就是直接崩溃建议每天产生20g到30g的起码弄个以下的配置内存: 16G磁盘: 500g-1t(硬盘不值钱)处理器: 4/8核带宽: 5m filebeat(被抓取服务所在机器)1略... 端口12elk服务器对外开放5601elk服务器对filebeat所在服务器内网开放5044 安装(单点) 安装完filebeat之后,需要给inputs下配置文件基于root权限或者go+w权限chown root /etc/filebeat/inputs/* 或者 chown go+w /etc/filebeat/inputs/* filebeat(基于docker)123456789101112131415...
记录日志系统的安装-部署-配置-使用文档(2)
日志系统配置(长期补充)elastic各产品配置/学习手册所有的ip不要写本地ip filebeat.yml 如果同时指定了exclude_lines和include_lines, Filebeat将会先校验include_lines,再校验exclude_lines 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149# Enable filebeat...
记录日志系统的安装-部署-配置-使用文档(3)
日志系统使用文档(长期完善)登录1输入对应用户密码 索引模式(管理级操作)1默认初始进来是这个页面,建立匹配的索引模式方可进行日志查询 创建索引模式1先创建匹配模式,例如我这里创建的索引模式名称为sopei-dev02*,则代表可查看以sopei-dev02开头的索引下的日志(备注: 下面可以看到匹配到了8月9日的debug日志和error日志) 选择全局时间筛选字段,创建模式完成 创建及分配用户和角色(管理级操作)123目前先以查看日志者和创建索引模式者及管理者区分eg: 设置一个log-view角色,仅可对dev机器上的日志进行读取操作,然后赋予xiaowu用户 创建用户 日志查看日志流模式查看 1eg: 查看module为xxx,trace-id为xiaowu-12345673453463并且是error类型的日志 discover查看1查询方式和流模式一样,看到的内容是以es(_source)实际存储格式展示的
记录日志系统的安装-部署-配置-使用文档(5)
ELK-ALERTING - 告警功能(使用告警功能必须配置ssl,配置安全性可以站内搜索[记录日志系统的安装-部署-配置-使用文档(4)] kibana本身提供了告警功能,左菜单位位置(7.14.0),但是免费支持的告警操作只有写入索引和写入kibana日志,其他功能需要dollar,19美元一个月,网上提到一个方案sentinl,但是似乎截止到21210820仅支持到kibana7.6.1的版本 创建连接器(以邮件和webhook举例), 邮件 12345678企业微信邮箱发送方主机ip : smtp.exmail.qq.comport : 465qq邮箱发送方主机ip : smtp.qq.comport : 465/587记得在账户那里开启smtp,然后密码是授权码 测试, 可以有多个接收方 飞书webhook 企业微信群机器人 发个测试 123456789{ "msg_type": "text", "content": { "...
Elasticsearch数据建模
Elasticsearch数据建模数据建模 数据建模是创建数据模型的过程 数据模型是对真实世界进行抽象描述的一种工具和方法,实现对现实世界的映射 三个过程:概念模型=》逻辑模型=》数据模型 数据模型:结合具体的数据库,在满足业务读写性能等需求的前提下,确定最终定义 数据建模:功能需求+性能需求 逻辑模型(功能需求) 实体属性 实体之间的关系 搜索相关的配置 物理模型(性能需求) 索引模版 分片数量 索引Mapping 字段配置 关系处理 对字段进行建模 字段类型: Text vs Keyword Text 用于全文本字段,文本会被Analyzer分词 默认不支持聚合分析及排序。需要设置fielddata为true Keyword 用于id,枚举及不需要分词的文本。例如电话号码,email地址,手机号码,邮政编码,性别等 适用于Filter(精确匹配),Sorting和Aggregations 设置多字段类型 默认会为文本类型设置成text,并且设置一个keyword的子字段 在处理人类语言时,通...
Elasticsearch测试数据下载
Elasticsearch测试数据下载/bank-demo银行数据
Elasticsearch的基本使用
1 了解ES1.1.1.elasticsearch的作用elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 1.1.2.ELK技术栈elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域: 而elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。 1.1.3.elasticsearch和luceneelasticsearch底层是基于lucene来实现的。 Lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发。官网地址:https://lucene.apache.org/ 。 elasticsearch的发展历史: 2004年Shay Banon基于Lucene开发了Compass 2010年Shay Banon 重写了Compass,取名为Elasticsearch。 1....
一个jdbc批量处理的工具类
12345678910111213141516171819202122232425262728293031323334353637383940414243// batchUtils.batchUpdateOrInsert(数据集合, xxxxx.class, (item, mapper实例对象) -> mapper实例对象.insert方法(item));public class MybatisBatchUtils { /** * 每次处理1000条 */ private static final int BATCH_SIZE = 1000; @Resource private SqlSessionFactory sqlSessionFactory; /** * 批量处理修改或者插入 * * @param data 需要被处理的数据 * @param mapperClass Mybatis的Mapper类 * @param function 自定义处理逻辑 * @return ...
