记录下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 插件语法介...
记录日志系统的安装-部署-配置-使用文档(2)
日志系统配置(长期补充)elastic各产品配置/学习手册所有的ip不要写本地ip filebeat.yml 如果同时指定了exclude_lines和include_lines, Filebeat将会先校验include_lines,再校验exclude_lines 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149# Enable filebeat...
记录日志系统的安装-部署-配置-使用文档(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...
记录日志系统的安装-部署-配置-使用文档(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": { "...
一个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 ...
关于Serializable的认识
首先,如果对象需要网络传输或者持久化(我的理解是dto和entity/model),那么就需要实现Serializable接口。为了防止反序列失败,该对象需提供一个默认的serialVersionUID(该值在反序列化的时候会进行校验,如果校验失败会抛异常-InvalidClassException)。 但如果只是转换为json字符串的形式与网络打交道(比如MVC中前后端分离情况下,返回json-response给前端),那么这个response对象就不需要实现Serializable接口。 关于UID serialVersionUID有两种显式的生成方式: 12一个是默认的1L一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段, 如果没有显式地定义一个名为serialVersionUID的long型的变量,编译器在编译的时候也会根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,这就决定了这个类在序列化上一定不是向前兼容的 使用默认计算的serialVersionUID就会有一个明显的劣势 1234使用默认计算的seria...
利用KeyTool生成自签名证书
任何机构或者个人都可以申请数字证书,并使用由CA机构颁发的数字证书为自己的应用保驾护航。常用的两个证书管理工具:KeyTool,OpenSSL--->构建CSR(Certificate Signing Request,数字证书签发申请),交由CA机构签发,形成最终的数字证书。 最近用到p12文件,就记录一下如何使用jdk自带的keytool来创建p12文件 打开cmd,切换到jdk的bin目录下 输入命令 1keytool -genkeypair -alias serverkey -keyalg RSA -keysize 2048 -validity 3650 -keystore D:\rabbitmq\tls-gen-master\p12test.keystore 参数解释: 12345678storepass: keystore文件存储密码,不加这个参数会在后面要求你输入密码 keypass 私钥加解密密码 alias 实体别名(包括证书私钥) dname 证书个人信息 keyalg 采用公钥算法,默认是DSA,这里采用RSA keysize 密钥长度...
如何使用jstack分析异常线程以及线程状态
使用top命令定位异常进程。找到CPU和内存占用率都非常高的pid,假设为11268 top 此时可以再执行ps -ef | grep java,查看所有的java进程,在结果中找到进程号为11268的进程,可以查看是哪个应用占用的该进程。 ps -ef|grep java 使用top -H -p 进程号查看异常线程,(-H : 加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。) top -H -p 11268 使用printf "%x\n" 线程号将异常线程号转化为16进制,假设异常线程为11422 printf "%x\n" 11422 -> 2c9e 使用jstack 进程号|grep 16进制异常线程号 -A90来定位异常代码的位置(-A90是指输出的日志行数)。可以看到异常代码的位置。 jstack 11268|grep 2c9e -A90 介绍top命令在linux环境下,可以通过top命令查看各个进程的cpu使用情况,默认按cpu使用率排序 通过top -Hp 可以查看...
线程池知识记录
七大参数一、corePoolSize 线程池核心线程大小12线程池中会维护一个最小的线程数量,即使这些线程处理空闲状态,他们也不会被销毁,除非设置了allowCoreThreadTimeOut。这里的最小线程数量即是corePoolSize。 二、maximumPoolSize 线程池最大线程数量1234一个任务被提交到线程池以后,首先会找有没有空闲存活线程,如果有则直接将任务交给这个空闲线程来执行,如果没有则会缓存到工作队列中,如果工作队列满了,才会创建一个新线程,然后从工作队列的头部取出一个任务交由新线程来处理,而将刚提交的任务放入工作队列尾部。线程池不会无限制的去创建新线程,它会有一个最大线程数量的限制,这个数量即由maximunPoolSize指定。 三、keepAliveTime 空闲线程存活时间12一个线程如果处于空闲状态,并且当前的线程数量大于corePoolSize,那么在指定时间后,这个空闲线程会被销毁,这里的指定时间由keepAliveTime来设定 四、unit 空闲线程存活时间单位1keepAliveTime的计量单位 五、workQueue 工作队列12...
