日志分析系列之平台实现

2023-11-10

本系列故事纯属虚构,如有雷同实属巧合

平台实现前的说明

小B在给老板汇报了"统一日志分析平台"项目后,老板拍板立即开始做,争取下一次能及时发现攻击并且追踪攻击者。于是小B开始分析了市面上商业与开源的日志分析平台架构,大家都神似如下图:

知道了架构如何,接下来的关键就是每层之间选择什么样的产品了。关于如何选择,小B推荐了几个方面:

  • 已有架构:避免基础能力的重复,使用目前IT基础框架中已有的东西。假设运维已经有一套ELK,就没有必要重复搭建,只需要与之结合优化数据源与增加安全分析场景即可。
  • 技术实力:负责统一日志分析平台人员的技能栈。
  • 产品自身优劣:不同产品有各自最适用的场景,所以选择合理产品是核心依据。

小B在选择产品时,参考了一些些资料(见参考资料)。

在经过一番对比之后,小B最终选择了以下产品来实现统一日志分析平台:

下面就容小B细细道来实现统一日志分析平台的那些心酸历程:(如果大家尝试复现小B的统一日志分析平台,请优先阅读踩坑记录,在文章末尾)

小B的统一日志分析平台结构(简易版,实际要复杂的多,这里只是一个Demo环境):

搭建过程,我就不一一描述了,搭建自己可以查询相关产品的安装文档或者:https://bloodzer0.github.io/ossa

实现日志采集处理与展示

服务器日志

首先关注的是服务器上的日志,Q公司所有的服务器都是Linux(Centos7.x),极大的减少了小B的工作:

服务器日志采集

  • /var/log/audit/audit.log:审计日志,跟用户相关的日志。
  • /var/log/cron:记录与系统定时任务相关的日志。
  • /var/log/messages:记录系统中主要信息的日志。
  • /var/log/secure:记录验证和授权方面信息的日志,如:ssh登录、su切换用户、sudo授权等。
  • /var/log/yum.log:记录yum安装软件信息。

关于服务器日志采集filebeat提供了两种采集方法:

  • 方法一:直接写配置文件采集:vim /etc/filebeat/filebeat.yml
  • 方法二:使用filebeat模块来收集,使用模块收集也是我们本次采用的方法。因为使用模块内置了pipeline可以解析服务器日志,并且在Kibana中提供了很多图表,减少我们的工作时间。备注:这里有坑,详情请看踩坑0x02
# 首先在我们的测试服务器上安装filebeat
rpm -ivh filebeat-7.4.1-x86_64.rpm

# 修改filebeat配置文件中的ES和Kibana地址,并初始化filebeat
vim /etc/filebeat/filebeat.yml
setup.kibana:
  host: "10.10.10.9:5601"
  
output.elasticsearch:
  hosts: ["10.10.10.9:9200"]
# 初始化filebeat
filebeat setup

# 启动filebeat模块
filebeat modules enable system
filebeat modules enable auditd

# 初始化filebeat模块的pipelines
filebeat setup --pipelines --modules system
filebeat setup --pipelines --modules auditd

# 修改system模块中日志文件路径
vim /etc/filebeat/modules.d/system.yml
- module: system
  syslog:
    enabled: true
    var.paths: ["/var/log/messages"]

  auth:
    enabled: true
    var.paths: ["/var/log/secure"]
# 修改audit模块中日志文件路径
vim /etc/filebeat/modules.d/auditd.yml
- module: auditd
  log:
    enabled: true
    var.paths:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

日志分析系列之平台实现 的相关文章

  • 如何在 nginx 反向代理后面安全地检测 CakePHP 中的 SSL?

    CakePHP 我见过的所有版本 检查 SERVER HTTPS 查看请求是否是通过 HTTPS 而不是普通 HTTP 发出的 我使用 nginx 作为负载均衡器 后面是 Apache 应用程序服务器 由于 SSL 连接在负载均衡器处终止
  • 为什么这个 ElasticSearch 扫描和滚动不断返回相同的滚动 id?

    所以首先我运行以下命令 curl s XGET http localhost 9200 my index search scroll 1m search type scan size 10 这会返回一个滚动 ID 然后我在第一个滚动请求中使
  • Airflow log_id 格式错误

    我正在使用 Airflow v2 2 3 和apache airflow providers elasticsearch 2 1 0 在 Kubernetes 中运行 我们的日志会自动发送到 Elasticsearch v7 6 2 我在
  • 在运行服务启动/停止/重新启动 nginx 命令时调用 openresty 的 nginx.conf 文件

    我使用 nginx 作为我的 Django 项目的 Web 服务器 我正在使用命令 sudo service nginx start stop restart 管理 nginx 服务器 现在我使用 Openresty 框架将 Lua 代码实
  • 在 nginx 后面使用 GitLab 启用 basic_auth?

    我已经成功安装了 GitLab 来管理私有存储库 这真是太棒了 我遇到的问题是默认情况下 当任何人访问我的子域时都会显示 Gitlab 登录信息 我想在用户获得 GitLab 登录屏幕之前使用 basic auth 层保护整个区域 不幸的是
  • Elasticsearch 中的组合非嵌套和嵌套查询

    我想使用 ES 进行书籍搜索 所以我决定将作者姓名和标题 作为嵌套文档 放入索引中 如下所示 curl XPUT localhost 9200 library search books 1 d author one books title
  • nginx proxy_pass 省略路径

    我已经配置了 nginx 反向代理 location root var www html index index html location login proxy pass http 127 0 0 1 9080 proxy set he
  • 如何使用 Elastica Search 和 Symfony2 执行嵌套查询

    我有一个食谱实体 其中有一些标签 多对多映射 我想按标签搜索食谱 这是我的食谱实体 ORM Entity ORM Table name recipes ORM HasLifecycleCallbacks ExclusionPolicy al
  • Elasticsearch,如何使 NEST 地图响应类

    首先 我使用的是NEST 5 5 0 我对远程 elasticsearch index 的使用如下 var node new Uri http distribution virk dk cvr permanent var settings
  • 使用 Nginx 自定义错误网关页面

    是否可以在 Nginx 中提供自定义的 Bad Gateway 错误页面 类似于自定义 404 页面 为了显示您的自定义错误页面而不是一般的 错误网关 错误 必须满足三个部分 您必须创建一个名为 500 html 之类的 html 文件并将
  • Amazon Linux 上的 Nginx + php-fpm = 在信号 11 上退出

    亚马逊 Linux 最新 PHP 5 4 19 cli 构建时间 2013 年 9 月 3 日 23 19 23 nginx版本 nginx 1 2 9 安装 PHP FPM PHP 5 4 19 fpm fcgi 构建时间 2013 年
  • 在elasticsearch中搜索字幕数据

    有以下数据 简单的srt 1 00 02 17 440 gt 00 02 20 375 Senator we re making our final 2 00 02 20 476 gt 00 02 22 501 approach into
  • 无法通过远程连接连接到kibana

    我已经在服务器上安装了 Kibana 5 4 和 Elastic search 5 4 我可以使用以下命令在本地计算机上通过curl 访问 Kibana 和 Elastic search curl localhost 5601 我得到以下回
  • ElasticSearch 匹配多个前缀术语

    我试图为 ElasticSearch 提供一个包含多个术语的查询 然后给出匹配的文档 其中指定的术语位于目标字段中的任何位置 这些术语可以是完整的单词或单词前缀 示例文档 msg 你好 我是一条短信 示例查询字符串 你好消息 你好 和 消息
  • 使用映射创建 Elasticsearch 索引

    我正在努力完成索引创建的简单任务 目标是使用分析器和字段映射创建索引 当我使用分析器创建索引时 我可以通过分析 api 调用与分析器对话 但是当我添加映射信息时 创建索引调用失败 并显示 未找到字段 field 的分析器 analyzer1
  • Elasticsearch 聚合过滤器

    因为我在谷歌上找不到任何东西 是否可以在elasticsearch中过滤聚合 我正在考虑这样的事情 获取 SOME object X gt 100 的所有对象 提前致谢 编辑 样本数据 我有以下文档结构 docKey 1 value 2 d
  • 静态加密数据时 ElasticSearch 的工作原理

    我的数据存在于 DynamoDB 中 为了启用全文搜索 我使用 Lambda 函数将其转发到 ES 索引 但如果可能的话 我希望在不影响搜索效率的情况下对数据进行加密 但我不确定我的搜索在这里如何进行 我找不到任何文档 文章来说明当数据静态
  • Rails Searchkick / Elasticsearch has_many 和belongs_to 关联

    我尝试使用 Searchkick 运行搜索并基于多个模型返回 我的书本模型包含这个 class Book lt ActiveRecord Base searchkick has many book subjects has many sub
  • Nginx 位置、别名、重写、根

    我正在通过 proxypass 提供 foo bar 服务 并希望继续这样做 但是 我想从 var www mystatic baz swf 等静态地提供 foo bar baz swf 服务 我希望我能做类似的事情 location fo
  • nginx - 禁用特定 URL 的 HTTPS 重定向

    我将 nginx 设置为将所有 HTTP 请求重定向到 HTTPS 如下所示 Redirect every request to HTTPS server listen 80 listen 80 server name sub exampl

随机推荐

  • 基于IO、NIO、Netty的Java网络程序

    基于IO NIO Netty的Java网络程序 一 IO 1 项目创建 2 代码 3 运行 二 NIO 1 项目创建 2 代码 3 运行 三 Netty 1 项目环境配置 2 代码 3 运行结果 总结 参考文章 一 IO 1 项目创建 在I
  • Junit单元测试,BIO、NIO、AIO概念、Buffer类,Channel通道

    单元测试 Junit介绍 Junit是一个Java语言的单元测试框架 简单理解为可以用取代Java的 部分 main方法 Junit属于第三方工具 需导入jar包后使用 Junit基本使用 Junit的作用 可以单独的运行某一个方法 Jun
  • LeetCode算法,每日一题,冲击字节跳动

    目录 1 LeetCode 20 有效的括号 题目 小编菜解 思路及算法 大神解法 2 LeetCode 26 删除有序数组中的重复项 题目 小编菜解初版 小编菜解改进版 思路及算法 大神解法 3 LeetCode 28 实现strStr
  • cmd停止情况

    情况描述 win10在使用cmd时 鼠标点击后出现cmd整个停止的情况 例如 在下载时 鼠标左键点击了cmd黑框里的内容 结果下载停止了 解决方式 出现这一情况的原因是 cmd开启了快速编辑模式 在cmd上框右键属性 关闭即可
  • 面向对象编程的六大原则

    一 面向对象编程的六大原则 单一责任原则 对类来说的 即一个类应该只负责一项职责 如类A负责两个不同职责 职责1 职责2 当职责1需求变更而改变A时 可能造成职责2执行错误 所以需要将类A的粒度分解为A1 A2 接口隔离原则 客户端不应该依
  • Pycharm Debug(断点调试)超详细攻略

    前言 PyCharm Debug 可以帮助开发者在代码运行时进行实时的调试和错误排查 提高代码开发效率和代码质量 当然也可以对源码进行断点调试 领略源码的魅力 具体操作步骤 准备一段代码 让我们来举个简单的栗子 这段代码主要作用 循环ran
  • VUE基本指令(v-model,v-html,v-text,v-bind,v-if,v-show,v-for,v-on:click,组件,过滤器)

    文章目录 双向数据绑定 v bind v bind title简化写法为 title 设置类名 v bind class 隐藏 显示元素 v if和v show v for 遍历数组 遍历对象 v on click 点击事件 简化语法 cl
  • 未授权访问漏洞1

    未授权访问漏洞产生的原因 未授权访问漏洞是站由于网站管理员对站点的资源所拥有的权限或站点配置文件没有进行合理的配置 导致没有进行授权的用户可以访问到高级资源 常见的未授权访问漏洞 1 Redis未授权访问 漏洞简述 Redis是一种缓存数据
  • 实现统计某个目录中的java文件个数(子目录也算进去)

    实现统计某个目录中的java文件个数 子目录也算进去 package com summer io01 import java io File public class Demo07 public static int javaFileNum
  • python输出特征相关矩阵_两个特征矩阵的有效成对相关

    似乎 遵循了皮尔逊相关系数公式的定义 该公式适用于A amp B 基于这个公式 你可以很容易地将向量化 因为A和 列的成对计算是相互独立的 这里有一个使用 Get number of rows in either A or B N B sh
  • STM32 IIC通信-硬件从机 cube-HAL库

    前言 搞过很长时间的stm32 了 但是一直没有深入的研究底层 iic方面之前多是作为主机 而且多是使用io口模拟的 网上在这方面有用的东西确实不多 由于工作需要学习了下iic硬件从机的使用 使用cube创建工程 hal库 上次用cube还
  • sublime text3中代码格式化

    有两种方式 1 选中要格式化的代码 然后依次选择以下菜单 Edit gt Line gt Reindent 2 依次选择以下菜单 Preference gt Key Bindings user 然后 自己设置快捷键 keys ctrl sh
  • 告白玫瑰

    关注微信公众号 ClassmateJie 更多惊喜等待你的发掘 直接看实现效果 电脑端 手机端 使用场景 发给女神告白 提供一些文案 自从遇见你 我的世界变得不一样了 每一天都因为你而变得特别 我想告诉你 我喜欢你 不仅仅是因为你的美丽 还
  • 【win10】电脑剪贴板失效,解决办法。

    1 打开任务管理器 把剪贴板的进程结束 2 打开运行 输入rdpclip exe 即可解决
  • 状态压缩DP

    状态压缩DP前置知识 问题简介 基于状态压缩的动态规划 又叫集合动态规划 顾名思义 这是一类以集合信息为状态的特殊的动态规划问题 主要有传统集合动态规划和基于连通性状态压缩的动态规划两种 一般的动态规划往往着眼于整体 从中提取出两三个关键信
  • docker 安装mongodb

    1 取最新版的 MongoDB 镜像 gt docker pull mongo latest 2 查看本地镜像 gt docker images REPOSITORY TAG IMAGE ID CREATED SIZE mongo late
  • 数据库查询优化

    文章目录 1 代码优化 2 定位到慢SQL上 并优化 3 合理使用索引 重点 4 分表查询 5 缓存 6 异步 多线程 1 代码优化 减少没有必要的代码 例如for循环次数过多 作了很多无谓的条件判断 相同逻辑重复多次等 2 定位到慢SQL
  • 微服务分布式构架开发实战 附下载地址

    微服务是一种软件架构风格 目标是将一个复杂的应用拆分成多个服务模块 每个模块专注单一业务功能对外提供服务 并可以独立编译及部署 同时各模块间互相通信彼此协作 组合为整体对外提供完整服务 以往的图书大多只针对微服务分布式架构自身的知识点讲解
  • Linux iptables常用命令

    iptables 是 Linux 中重要的访问控制手段 是俗称的 Linux 防火墙系统的重要组成部分 这里记录了iptables 防火墙规则的一些常用的操作指令 下面的操作以 CentOS 为基础介绍 应该对不同的 Linux 发行版都差
  • 日志分析系列之平台实现

    本系列故事纯属虚构 如有雷同实属巧合 平台实现前的说明 小B在给老板汇报了 统一日志分析平台 项目后 老板拍板立即开始做 争取下一次能及时发现攻击并且追踪攻击者 于是小B开始分析了市面上商业与开源的日志分析平台架构 大家都神似如下图 知道了