elk替代_记一次关于elk收集的日志中把手机号码用***代替遇到的问题以及解决
开发打印出来的日志里带有完整的手机号码,收集到elk里,这属于用户的敏感信息,所以理应把手机号码中的某部分用***代替。
没有直接在生产环境去试验,于是用docker部署一个elk环境出来试验,docker的elk,在https://github.com/deviantony/docker-elk,安装部署,参考:https://blog.csdn.net/Thinking771470736/article/details/107066060
像文章里一样,一开始我也打算用nc来调试。下面就遇到一些问题
1 端口不通
[root@localhost docker-elk]# echo "nc-test" | nc -u 192.168.245.4 8010
read(net): Connection refused
既然端口不通,好的,那就马上想到装telnet来测试,结果在logstash里想yum install -y telnet安装一下telnet
2 在docker里yum安装软件遇到权限问题
[root@localhost pipeline]# dexec docker-elk_logstash_1 bash
bash-4.2$ yum install -y telnet
Loaded plugins: fastestmirror, ovl
ovl: Error while doing RPMdb copy-up:
[Errno 13] Permission denied: '/var/lib/rpm/.dbenv.lock'
You need to be root to perform this command.
bash-4.2$
明显就是权限问题,那么,docker跑起来时,怎么用root身份进去呢?
3 docker用户身份,可以在docker run时指定
docker run -itd --user root ..... .... ....
由于用的是docker-compose,docker-compse.yml指定的方式为,以下是某部分,注意user: root
logstash:
build:
context: logstash/
args:
ELK_VERSION: $ELK_VERSION
volumes:
- type: bind
source: ./logstash/config/logstash.yml
target: /usr/share/logstash/config/logstash.yml
read_only: true
- type: bind
source: ./logstash/pipeline
target: /usr/share/logstash/pipeline
read_only: true
- type: bind
source: ./logstash/logs
target: /tmp
ports:
- "5044:5044"
- "5000:5000/tcp"
- "5000:5000/udp"
- "8010:8010"
- "8010:8010/udp"
- "9600:9600"
user: root
environment:
4 nc的安装
这些问题都搞定后,接下来安装nc来做测试,我是通过yum install nc -y安装的,装好后一试,就遇到
Ncat: Connection refused的问题,网友说:
在CentOS7.X中使用yum install -y nc安装的nc实际安装的是nmap-ncat(ncat命令),但ncat这个命令没有端口扫描功能,但为何在系统中又可以使用nc命令呢,归根于软链接文件
文章在:https://www.itbkz.com/11199.html
解决方案是自己源码安装nc,这里就不详细说
这些都弄好后,接下来就与logstash的正则表达式相关了,关于这部分的知识,找了一堆文章,有兴趣的可以参考下
https://doc.yonyoucloud.com/doc/logstash-best-practice-cn/filter/grok.html
https://doc.yonyoucloud.com/doc/logstash-best-practice-cn/filter/mutate.html
https://anbc.gitbooks.io/elk-handbook/content/81grokzheng_ze_guo_lv_qi_pei_zhi.html
https://www.jianshu.com/p/5df5055070b2
https://regex101.com/r/m0aoOx/1
https://www.cnblogs.com/sparkdev/p/10606810.html
http://grokdebug.herokuapp.com/
https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-gsub
https://www.cnblogs.com/caoweixiong/p/12579498.html
https://www.cnblogs.com/sparkdev/p/10606810.html
https://mmx362003.gitbooks.io/elk-stack-guide/content/logstash_grok.html
mutate {
gsub => ["message", "(\d{6})(\d{6})(\d{4})", "\1######\3"]
add_tag => "Masked CardNo"
}
手机号的
## Add your filters / logstash plugins configuration here
filter {
mutate {
gsub => [
"phone", "(\d{3})(\d{4})(\d{4})", "\1***\3"
]
}
}
phone是我们json里的一个字段,也可以全匹配message,看需要
## Add your filters / logstash plugins configuration here
filter {
mutate {
gsub => [
"message", "(\d{3})(\d{4})(\d{4})", "\1***\3"
]
}
}
另外,filter/mutate 内部执行次序是这样的
rename(event) if @rename
update(event) if [@update]
replace(event) if @replace
convert(event) if @convert
gsub(event) if @gsub
uppercase(event) if @uppercase
lowercase(event) if @lowercase
strip(event) if @strip
remove(event) if @remove
split(event) if @split
join(event) if @join
merge(event) if @merge
filter_matched(event)
到此为止
elk替代_记一次关于elk收集的日志中把手机号码用***代替遇到的问题以及解决相关推荐
- python数据库查询不出结果_记一次pymysql查询不到表中最新插入的数据的问题
问题 本周工作中遇到一个问题,同事用Python和公司的db客户端在团队的测试框架上实现连接池功能,db连接用的是pymysql.但在跑demo时,出现了诡异的现象: 多次select查询表中数据 所 ...
- ELK实战(一)Filebeat+Logstash发送Email告警日志(1)
ELK实战(一)Filebeat+Logstash发送Email告警日志(1) ELK应用案例 典型ELK应用架构 本次我使用的架构(Filebeat+Logstash发送Email告警日志) 使用的 ...
- ELK分布式日志收集-企业级日志中心
传统项目中,如果需要在生产环境定位异常的话,我们常常需要在服务器上使用命令的方式查询.而很多情况我们需要用到微服务架构或集群架构,日志被分散在不同的机器上,使得日志的查询变得异常困难.工欲善其事,必先 ...
- ELK学习总结——我们为什么要用ELK
一. ELK是什么? ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch.Logstash 和 Kibana. Elast ...
- 2021年大数据ELK(十九):使用FileBeat采集Kafka日志到Elasticsearch
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 使用FileBeat采集Kafka日志到Elasticsearch 一.需求分 ...
- centos6.5下安装配置ELK及收集nginx日志
Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开 ...
- elk收集nginx日志
一 :客户端logstash.conf配置文件 input {file {path => "/usr/local/nginx/logs/access.log"type =&g ...
- ELK之收集haproxy日志
由于HAProxy的运行信息不写入日志文件,但它依赖于标准的系统日志协议将日志发送到远程服务器(通常位于同一系统上),所以需要借助rsyslog来收集haproxy的日志.haproxy代理nginx ...
- ELK日志系统之使用Rsyslog快速方便的收集Nginx日志
常规的日志收集方案中Client端都需要额外安装一个Agent来收集日志,例如logstash.filebeat等,额外的程序也就意味着环境的复杂,资源的占用,有没有一种方式是不需要额外安装程序就能实 ...
最新文章
- linux 命令 读phy_CentOS教程(七)- 常用命令使用介绍(上)
- python rank_PageRank算法原理与Python实现
- Windows Server 2016虚拟机克隆后修改安全标识SID
- IIS7部署网站的一些细节问题。
- nginx升级与回退
- 支付宝钱包流量电量优化实践
- 【Allennlp】: Allennlp中的test_data
- 备战数学建模22-数学建模论文写作规范总结
- Matlab使用-norm函数
- matlab 判断 正态分布,用MATLAB判断一组数据是否符合正态分布
- 记录一下把域名从阿里云服务商转入到华为云
- JEECG集成flowable
- 企业“招投标”一般需要办理哪些体系认证?
- 女孩子付钱用计算机,“让女生付钱太没面子了,你转账给我吧。”
- 踩雷1:Android Studio:3dmap 隐私合规校验失败: errorcode 555570 确保调用SDK任何接口前先调用更新隐私合规updatePrivacyShow、updateP
- 详解python os.walk 实现 tree
- 记事本写HTML中文出现乱码的问题
- Fix for BOOTMGR Error
- API卡_浦洛电子科技代理凌华GPIB卡
- 【读书】马克·李维《自由的孩子》摘录
热门文章
- 外接显示器屏幕亮度调到最低还是太亮
- 柔宇科技掀起的柔性电子潮流,正在加速改变我们的生活
- C++学习 Day.5(进入正轨~~)
- jQuery仿真翻书炫酷翻页动画插件
- 操作系统笔记 第二章
- 问题:设计一个大学教师和学生管理程序, 教师包括 编号、姓名、职称和教研室 数据的输入输出; 大学生包括编号、姓名、性别、班号、英语、高等数学和数据结构三门课程成绩的输入输出和计算平均分; 研究生包
- 细胞生物学8-第八章-细胞骨架
- 如何从零开始学习软件测试
- 记录docker nacos解决Field ‘encrypted_data_key‘ doesn‘t have a default valu方法
- Beta阶段站立会议-01