开发打印出来的日志里带有完整的手机号码,收集到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收集的日志中把手机号码用***代替遇到的问题以及解决相关推荐

  1. python数据库查询不出结果_记一次pymysql查询不到表中最新插入的数据的问题

    问题 本周工作中遇到一个问题,同事用Python和公司的db客户端在团队的测试框架上实现连接池功能,db连接用的是pymysql.但在跑demo时,出现了诡异的现象: 多次select查询表中数据 所 ...

  2. ELK实战(一)Filebeat+Logstash发送Email告警日志(1)

    ELK实战(一)Filebeat+Logstash发送Email告警日志(1) ELK应用案例 典型ELK应用架构 本次我使用的架构(Filebeat+Logstash发送Email告警日志) 使用的 ...

  3. ELK分布式日志收集-企业级日志中心

    传统项目中,如果需要在生产环境定位异常的话,我们常常需要在服务器上使用命令的方式查询.而很多情况我们需要用到微服务架构或集群架构,日志被分散在不同的机器上,使得日志的查询变得异常困难.工欲善其事,必先 ...

  4. ELK学习总结——我们为什么要用ELK

    一. ELK是什么? ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch.Logstash 和 Kibana. Elast ...

  5. 2021年大数据ELK(十九):使用FileBeat采集Kafka日志到Elasticsearch

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 使用FileBeat采集Kafka日志到Elasticsearch 一.需求分 ...

  6. centos6.5下安装配置ELK及收集nginx日志

    Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开 ...

  7. elk收集nginx日志

    一 :客户端logstash.conf配置文件 input {file {path => "/usr/local/nginx/logs/access.log"type =&g ...

  8. ELK之收集haproxy日志

    由于HAProxy的运行信息不写入日志文件,但它依赖于标准的系统日志协议将日志发送到远程服务器(通常位于同一系统上),所以需要借助rsyslog来收集haproxy的日志.haproxy代理nginx ...

  9. ELK日志系统之使用Rsyslog快速方便的收集Nginx日志

    常规的日志收集方案中Client端都需要额外安装一个Agent来收集日志,例如logstash.filebeat等,额外的程序也就意味着环境的复杂,资源的占用,有没有一种方式是不需要额外安装程序就能实 ...

最新文章

  1. linux 命令 读phy_CentOS教程(七)- 常用命令使用介绍(上)
  2. python rank_PageRank算法原理与Python实现
  3. Windows Server 2016虚拟机克隆后修改安全标识SID
  4. IIS7部署网站的一些细节问题。
  5. nginx升级与回退
  6. 支付宝钱包流量电量优化实践
  7. 【Allennlp】: Allennlp中的test_data
  8. 备战数学建模22-数学建模论文写作规范总结
  9. Matlab使用-norm函数
  10. matlab 判断 正态分布,用MATLAB判断一组数据是否符合正态分布
  11. 记录一下把域名从阿里云服务商转入到华为云
  12. JEECG集成flowable
  13. 企业“招投标”一般需要办理哪些体系认证?
  14. 女孩子付钱用计算机,“让女生付钱太没面子了,你转账给我吧。”
  15. 踩雷1:Android Studio:3dmap 隐私合规校验失败: errorcode 555570 确保调用SDK任何接口前先调用更新隐私合规updatePrivacyShow、updateP
  16. 详解python os.walk 实现 tree
  17. 记事本写HTML中文出现乱码的问题
  18. Fix for BOOTMGR Error
  19. API卡_浦洛电子科技代理凌华GPIB卡
  20. 【读书】马克·李维《自由的孩子》摘录

热门文章

  1. 外接显示器屏幕亮度调到最低还是太亮
  2. 柔宇科技掀起的柔性电子潮流,正在加速改变我们的生活
  3. C++学习 Day.5(进入正轨~~)
  4. jQuery仿真翻书炫酷翻页动画插件
  5. 操作系统笔记 第二章
  6. 问题:设计一个大学教师和学生管理程序, 教师包括 编号、姓名、职称和教研室 数据的输入输出; 大学生包括编号、姓名、性别、班号、英语、高等数学和数据结构三门课程成绩的输入输出和计算平均分; 研究生包
  7. 细胞生物学8-第八章-细胞骨架
  8. 如何从零开始学习软件测试
  9. 记录docker nacos解决Field ‘encrypted_data_key‘ doesn‘t have a default valu方法
  10. Beta阶段站立会议-01