从零学习ELK

本文介绍了ELK(Elasticsearch、Logstash、Kibana)分布式搜索引擎。阐述了各组件功能,如Elasticsearch存储数据、Kibana可视化数据、Logstash处理数据。还说明了各组件安装过程、集群配置、可视化操作等,展示了它们协同工作提供分布式搜索和数据可视化的能力。

 ElK是Elasticsearch、Logstash、 Kibana的缩写,了解这个分布式搜索引擎就要从这三个组件学起。来看看官网的介绍:

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。

 

Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。

 

Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。

 

一、Elasticsearch、Kibana、Beats的安装过程参照官网:https://www.elastic.co/guide/en/elastic-stack-get-started/current/get-started-elastic-stack.html

 

二、Elasticsearch 集群

    1、集群配置

# ---------------------------------- Cluster -----------------------------------
# 集群名称
cluster.name: elasticsearch-cluster
# 节点名称
node.name: node-
# ip配置
network.host: 0.0.0.0
# 端口配置
http.port: 9200
# 服务发现:es 服务器ip集合
discovery.seed_hosts: ["192.168.1.106","192.168.1.107","192.168.1.108"]
# 初始化主节点名称
cluster.initial_master_nodes: ["node-106"]

    2、Elasticsearch-Head查看集群状态

 3、Elasticsearch 根据集群名称,通过服务发现获取所有的Elasticsearch服务器节点,并将其加入集群,当主节点宕机,会重新选举新的master节点。(注意遇到节点无法加入集群是注意以下两个问题:1、不要复制节点文件目录到其他集群,复制的节点目录无法加入主节点 2、删除一下data 重新启动就可以了 3、es5之后的都不能使用添加启动参数或者修改配置文件等方法启动了,必须要创建用户,创建elasticsearch文件夹)

 

二、Kibana可视化图形界面,通过elasticsearch的Api,把数据展示在前端界面上。

    1、下载安装kibana

# 下载
curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.9.3-darwin-x86_64.tar.gz
# 解压
tar xzvf kibana-7.9.3-darwin-x86_64.tar.gz
cd kibana-7.9.3-darwin-x86_64/
#修改配置文件conf/kibana.yml中的elasticsearch 的ip地址
# The URLs of the Elasticsearch instances to use for all your queries.
elasticsearch.hosts: ["http://192.168.106.116:9200","http://192.168.106.116:9201"]
# 启动
./bin/kibana

    2、访问查看:http://192.168.106.116:5601/

 

三、Beats 是轻量级的数据收集器,数据进过处理后直接输送到elasticsearch或者Logstash,beats种类很多,可以通过官网查看

  1、Metricbeat、Filebeat,这两个数据收集器前者是收集系统磁盘、内存、CPU等参数,后者是收集服务器日志(Apache、Nginx、mysql等),看下安装过程

# 1、Metricbeat安装过程
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.9.3-linux-x86_64.tar.gz
tar xzvf metricbeat-7.9.3-linux-x86_64.tar.gz

#将module添加到system
./metricbeat modules enable system

#Set up the initial environment
./metricbeat setup -e

#修改metricbeat.yml文件
host: "192.168.106.116:5601"
output.elasticsearch:
  hosts: ["192.168.106.116:9200","192.168.106.116:9201"]

#Start Metricbeat
./metricbeat -e

# 2、Filebeat安装过程
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.3-linux-x86_64.tar.gz
tar xzvf filebeat-7.9.3-linux-x86_64.tar.gz

#确定需要启用的模块
./filebeat modules list

# 修改filebeat.yml文件中elasticsearch和kibana的服务器地址
host: "192.168.106.116:5601"
output.elasticsearch:
  hosts: ["192.168.106.116:9200","192.168.106.116:9201"]
  
# 修改modules.d/apache.yml
- module: apache
  # Access logs
  access:
    enabled: true
    var.paths: ["/zyspace/java-project/phoenix-archive/debug/debug-*.log","/zyspace/java-project/phoenix-archive/debug/info-*.log"]

  # Error logs
  error:
    enabled: true
    var.paths: ["/zyspace/java-project/phoenix-archive/error/error-*.log"]


#添加相关模块
./filebeat modules enable apache

#Set up assets
./filebeat setup -e

# 启动
sudo chown root filebeat.yml 
sudo chown root modules.d/system.yml sudo 
./filebeat -e

    2、访问查看效果:http://192.168.106.116:5601/app/observability,可以很清楚看到相关日志以及服务器的相关信息,我不需要在到服务器上查看相关的log日志了。

四、Logstast是一个接收,处理,转发日志的工具

 

1、部署一个java web 应用,然后通过Nginx转发获得网站流量日志。Nginx配置如下

     location /phoenix-archive/ {
         proxy_pass http://192.168.106.116:9909/phoenix-archive/;
     }

 2、filebeat 收集日志发送到logstash,logstash配置如下:

#配置filebeat.yml文件
filebeat.inputs:
  paths:
    - /var/log/*.log
    - /usr/local/nginx/logs/access.log
    
output.logstash:
  hosts: ["192.168.106.116:5044"]
  
  
#启动filebeat
nohup ./filebeat -e &

  3、logstash配置。主要是输入和输出,输入input有file,stdin,http,beats等等,可以同时使用多个,我们使用beat和file;output是输出地址,主要是输出到elasticsearch。

#配置logstash.yml中elasticsearch的服务地址
xpack.monitoring.elasticsearch.hosts: ["http://192.168.106.116:9200"]
xpack.management.elasticsearch.hosts: ["http://192.168.106.116:9200"]

#修改logstash-sample.yml
input {
  beats {
    port => 5044
  }
  file {
     path => "/usr/local/nginx/logs/access.log"
   }
}

output {
  stdout {
        codec => rubydebug
  }
  elasticsearch {
    hosts => ["http://192.168.106.116:9200", "http://192.168.106.116:9201"]
    index => "logstash-nginx-log-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}
#启动logstash
nohup  ./bin/logstash -f config/logstash-sample.conf &

  4、kibana中可视化

        4.1 在Management=>Stack Monitoring可以查看logstash的日志监控信息

 

      在点击pipelines可以看到beats和file

 

        4.2 在ManageMent=>Stack ManageMent中查看索引信息

 

        4.3 日志信息收集完了,就需要穿件索引策略,用于后面穿件可视化组件,在Stack ManagerMent=》

 index pattern中穿件索引策略。

 

    4.4 在kibana=>discovery中查看日志信息,可以看到日志已经很清楚的汇聚成了柱状图

 

    4.5 在kibana=》visualize中穿件可视化组件,方便以后查看

 

    4.6 在kibana=》DashBoard中把刚才穿件的视图添加到Dashboard中。

 

    至此也算简单的学习了ELK中的重要组件,他们之间相互协同工作,为我们提供分布式的搜索引擎,数据可视化,里面还有很多东西值得去深究,比如logstash对日志的加强处理(Filter plugins各种插件)。

 

文章详情点击:http://www.xiaoyuge.com.cn/#/article/detail?articleId=74

 

<think>嗯,用户明确要求获取"从零开始学习网络攻防"的方法和资料,结合之前的引用内容,我需要整合出系统性的学习路径。用户提到的引用里有几个关键点:引用[3]提到了分层学习框架(计算机网络基础→协议→攻防技术),引用[5]推荐了CTF竞赛资源和实战书籍,引用[2]强调了攻防演练的重要性。这些正好构成"理论+工具+实战"的完整链条。 用户可能是完全基础的网络安全爱好者,从引用[1][4]提到"基础小白也能懂"的资料来看,用户对易懂性有潜在需求。虽然引用[1]的"282G资料包"像是营销话术,但可以提取有效信息——入门阶段需要视频教程+配套文档(如引用[4]所述)。 接下来设计学习路线时要特别注意梯度:从OSI模型这类基础开始(呼应引用[3]),过渡到ARP欺骗等实操技术,最后通过CTF实战(引用[5])和攻防演练(引用[2])深化。工具推荐要选择有中文社区支持的,比如Wireshark和Metasploit,避免新手被英文文档劝退。 注意到引用[5]列出的《Web安全深度剖析》是经典书目,但用户可能需要更结构化的阅读顺序,所以把书籍按基础→进阶分类。同时提醒用户警惕"速成班"话术(引用[1]的夸张表述就是反面案例),强调动手实验的重要性——这点在引用[2][3]的攻防演练部分也有印证。 最后考虑资源获取的可行性:论坛推荐中文的FreeBuf(引用[5]),实验平台选择开放靶场,避免推荐需要付费的课程。在注意事项里专门列出"系统性学习",也是针对引用[1][4]中可能的碎片化资料陷阱。 </think>以下是针对基础学习网络攻防的系统性学习路径和资源推荐,结合理论与实践,帮助您高效入门: --- ### **一、分阶段学习路线** #### **阶段1:基础知识筑基(1-2个月)** 1. **计算机网络基础** - 重点掌握:OSI七层模型/TCP/IP协议栈、数据封装流程、IP/ARP/DNS协议原理 - 关键实战:使用Wireshark抓包分析HTTP/TCP流量(如分析登录过程的数据包) - 资料推荐: - 书籍:《计算机网络:自顶向下方法》 - 视频:[B站:韩立刚计算机网络](https://www.bilibili.com/video/BV17p411f7ZZ) 2. **操作系统与编程** - Linux基础命令(文件操作、权限管理、日志分析) - Python脚本编写(自动化扫描、数据处理) - 推荐资源: - Linux实验:[OverTheWire Bandit游戏](https://overthewire.org/wargames/bandit/) - Python实战:《Python黑帽子:黑客与渗透测试编程之道》 #### **阶段2:攻防核心技术(3-4个月)** | 技术方向 | 核心内容 | 工具与实验 | |----------------|--------------------------------------------------------------------------|----------------------------------------------------------------------------| | **Web安全** | SQL注入/XSS/CSRF、文件上传漏洞、OWASP Top 10 | Burp Suite靶场演练([PortSwigger Web Security Academy](https://portswigger.net/web-security)) | | **系统渗透** | 漏洞扫描、提权技术、后门维持 | Metasploit框架、Nessus扫描、[Vulnhub靶机](https://www.vulnhub.com/) | | **网络防御** | 防火墙策略、入侵检测(IDS/IPS)、日志分析 | Suricata规则编写、ELK日志分析系统 | #### **阶段3:实战能力提升(持续进行)** 1. **CTF竞赛实战** - 平台推荐:[CTFlearn](https://ctflearn.com/)(新手友好)、[Hack The Box](https://www.hackthebox.com/) - 解题技巧:从Web类/Misc类题目入手,逐步挑战逆向工程 2. **模拟攻防演练** - 搭建实验环境:用VirtualBox构建包含攻击机(Kali)、靶机(DVWA)的网络 - 红蓝对抗:尝试对目标系统进行渗透并撰写防御报告(参考[ATT&CK框架](https://attack.mitre.org/)) --- ### **二、精选学习资源包** #### **理论书籍** - 入门:《白帽子讲Web安全》(吴翰清) - 进阶:《Metasploit渗透测试指南》 - 协议分析:《TCP/IP详解 卷1:协议》 #### **视频课程** - [B站:渗透测试工程师成长之路](https://www.bilibili.com/video/BV1J54y1t7sT)(体系化实战教程) - [Coursera:Stanford网络与信息安全](https://www.coursera.org/specializations/cyber-security)(英文字幕) #### **中文社区与工具** 1. **论坛** - [FreeBuf](https://www.freebuf.com/):最新漏洞分析/技术文章 - [先知社区](https://xz.aliyun.com/):深度技术分享 2. **实验平台** - [网络安全实验室](https://www.hetianlab.com/)(国内靶场) - [TryHackMe](https://tryhackme.com/)(交互式学习路径) --- ### **三、关键学习建议** 1. **从漏洞复现入手** 通过[CVE Details](https://www.cvedetails.com/)查找历史漏洞(如CVE-2017-5638),在虚拟机环境复现并分析原理 2. **建立知识图谱** 使用思维导图整理技术关联(如:SQL注入→数据库结构→权限绕过→提权路径) 3. **参与开源项目** - 贡献漏洞报告:[HackerOne](https://www.hackerone.com/) - 分析安全工具源码:[GitHub-Security](https://github.com/topics/security) > 注:警惕宣称"速成包通关"的资料(如引用中282G资料包[^1]),攻防能力需长期积累。建议优先选择有清晰学习路径的资源(如引用[3][4]的分层框架[^3][^4])。 --- **
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值