ELK日志分析系统(理论+部署)
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,ELK日志分析系统简介日志服务器提高安全性集中存放日志缺陷对日志的分析困难ELK日志分析系统ElasticsearchLogstashKibana日志处理步骤将日志进行集中化管理将日志格式化( Log
千家信息网最后更新 2025年12月02日ELK日志分析系统(理论+部署)
ELK日志分析系统简介
日志服务器
- 提高安全性
- 集中存放日志
- 缺陷
- 对日志的分析困难
ELK日志分析系统
- Elasticsearch
- Logstash
- Kibana
日志处理步骤
- 将日志进行集中化管理
- 将日志格式化( Logstash )并输出到Elasticsearch
- 对格式化后的数据进行索弓|和存储( Elasticsearch )
- 前端数据的展示( Kibana )
Elasticsearch介绍
Elasticsearch的概述
- 提供了一个分布式多用户能力的全文搜索弓|擎
Elasticsearch的概念
- 接近实时
- 集群
- 节点
- 索引
- 索引(库)->类型(表)->文档(记录)
- 分片和副本
Logstash介绍
Logstash介绍
- 一款强大的数据处理工具,可以实现数据传输、格式处理、格式化输出
- 数据输入、数据加工(如过滤,改写等)以及数据输出
LogStash主要组件
- Shipper
- Indexer
- Broker
- Search and Storage
- Web Interface
Kibana介绍
Kibana介绍
- 一个针对Elasticsearch的开源分析及可视化平台
- 搜索、查看存储在Elasticsearch索弓|中的数据
- 通过各种图表进行高级数据分析及展示
Kibana主要功能
- Elasticsearch无缝之 集成
- 整合数据,复杂数据分析
- 让更多团队成员受益
- 接口灵活,分享更容易
- 配置简单,可视化多数据源
- 简单数据导出
部署ELK日志分析系统
实验环境
- node1节点服务器IP地址:192.168.80.128
- node2节点服务器IP地址:192.168.80.129
- apache服务器IP地址:192.168.80.800
在node1,node2上安装elasticsearch
[root@node1 ~]# vim /etc/hosts //配置解析名192.168.80.128 node1192.168.80.129 node2[root@node1 ~]# java -version //查看是Java是否安装[root@node1 ~]# mount.cifs //192.168.80.2/LNMP-C7 /mnt/Password for root@//192.168.80.2/LNMP-C7: [root@node1 mnt]# cd /mnt/elk/[root@node1 elk]# rpm -ivh elasticsearch-5.5.0.rpm //安装[root@node1 elk]# systemctl daemon-reload //重载守护进程[root@node1 elk]# systemctl enable elasticsearch.service //开机自动启动[root@node1 elk]# cd /etc/elasticsearch/[root@node1 elasticsearch]# cp elasticsearch.yml elasticsearch.yml.bak //备份[root@node1 elasticsearch]# vim elasticsearch.yml //修改配置文件cluster.name: my-elk-cluster //集群名node.name: node1 //节点名,第二个节点为node2path.data: /data/elk_data //数据存放位置path.logs: /var/log/elasticsearch/ //日志存放位置bootstrap.memory_lock: false //不在启动时锁定内存network.host: 0.0.0.0 //提供服务绑定的IP地址,为所有地址http.port: 9200 ##端口号为9200discovery.zen.ping.unicast.hosts: ["node1", "node2"] //集群发现通过单播实现[root@node1 elasticsearch]# mkdir -p /data/elk_data //创建数据存放点[root@node1 elasticsearch]# chown elasticsearch.elasticsearch /data/elk_data/ //给权限[root@node1 elasticsearch]# systemctl start elasticsearch.service //开启服务[root@node1 elasticsearch]# netstat -ntap | grep 9200 //查看开启情况tcp6 0 0 :::9200 :::* LISTEN 2166/java在node1,node2上安装node组件依赖包
[root@node1 elasticsearch]# yum install gcc gcc-c++ make -y //安装编译工具[root@node1 elasticsearch]# cd /mnt/elk/[root@node1 elk]# tar zxvf node-v8.2.1.tar.gz -C /opt/ //解压插件[root@node1 elk]# cd /opt/node-v8.2.1/[root@node1 node-v8.2.1]# ./configure //配置[root@node1 node-v8.2.1]# make && make install //编译安装在node1,node2上安装phantomjs前端框架
[root@node1 elk]# tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/ //解压到/usr/local/src下[root@node1 elk]# cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/[root@node1 bin]# cp phantomjs /usr/local/bin/ //编译系统识别在node1,node2上安装elasticsearch-head数据可视化
[root@node1 bin]# cd /mnt/elk/[root@node1 elk]# tar zxvf elasticsearch-head.tar.gz -C /usr/local/src/ //解压[root@node1 elk]# cd /usr/local/src/elasticsearch-head/[root@node1 elasticsearch-head]# npm install //安装修改配置文件
[root@node1 elasticsearch-head]# vim /etc/elasticsearch/elasticsearch.yml //末行加入http.cors.enabled: true //开启跨域访问支持,默认为falsehttp.cors.allow-origin: "*" //跨域访问允许的域名地址[root@node1 elasticsearch-head]# systemctl restart elasticsearch.service //重启[root@node1 elasticsearch-head]# cd /usr/local/src/elasticsearch-head/[root@node1 elasticsearch-head]# npm run start & //后台运行数据可视化服务[1] 82515[root@node1 elasticsearch-head]# netstat -ntap | grep 9100tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN 82525/grunt [root@node1 elasticsearch-head]# netstat -ntap | grep 9200tcp6 0 0 :::9200 :::* LISTEN 82981/java在浏览器上查看健康值状态
在node1上创建索引
创建索引信息
[root@node2 ~]# curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'在浏览器中查看

在Apache服务器上安装logstash,多elasticsearch进行对接
[root@apache ~]# yum install httpd -y //安装服务[root@apache ~]# systemctl start httpd.service //启动服务[root@apache ~]# java -version[root@apache ~]# mount.cifs //192.168.100.8/LNMP-C7 /mnt/ //挂载Password for root@//192.168.100.8/LNMP-C7:[root@apache ~]# cd /mnt/elk/[root@apache elk]# rpm -ivh logstash-5.5.1.rpm //安装logstash[root@apache elk]# systemctl start logstash.service [root@apache elk]# systemctl enable logstash.service //设置开机自启[root@apache elk]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/ //便于系统识别[root@apache elk]# logstash -e 'input { stdin{} } output { stdout{} }' //标准输入输出The stdin plugin is now waiting for input:16:58:11.145 [Api Webserver] INFO logstash.agent - Successfully started Logstash API endpoint {:port=>9600}www.baidu.com //输入2019-12-19T08:58:35.707Z apache www.baidu.comwww.sina.com.cn //输入2019-12-19T08:58:42.092Z apache www.sina.com.cn[root@apache elk]# logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }' //使用rubydebug显示详细输出,codec为一种编解码器The stdin plugin is now waiting for input:17:03:08.226 [Api Webserver] INFO logstash.agent - Successfully started Logstash API endpoint {:port=>9600}www.baidu.com //格式化的处理{ "@timestamp" => 2019-12-19T09:03:80.267Z, "@version" => "1", "host" => "apache", "message" => "www.baidu.com"}[root@apache elk]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.80.129:9200"] } }'##使用logstach将信息写入elasticsearch中The stdin plugin is now waiting for input:17:06:46.846 [Api Webserver] INFO logstash.agent - Successfully started Logstash API endpoint {:port=>9600}www.baidu.com //输入信息www.sina.com.cn用浏览器查看信息

将系统日志文件输出到elasticsearch
[root@apache elk]# chmod o+r /var/log/messages //给其他用户读权限[root@apache elk]# vim /etc/logstash/conf.d/system.conf //创建文件input { file{ path => "/var/log/messages" //输出目录 type => "system" start_position => "beginning" }}output { elasticsearch { #输入地址指向node1节点 hosts => ["192.168.80.129:9200"] index => "system-%{+YYYY.MM.dd}" }}[root@apache elk]# systemctl restart logstash.service //重启服务用数据浏览查看详细信息
在node1服务器上安装kibana数据可视化
[root@node1 ~]# cd /mnt/elk/[root@node1 elk]# rpm -ivh kibana-5.5.1-x86_64.rpm //安装[root@node1 elk]# cd /etc/kibana/[root@node1 kibana]# cp kibana.yml kibana.yml.bak //备份[root@node1 kibana]# vim kibana.yml //修改配置文件server.port: 5601 //端口号server.host: "0.0.0.0" //监听任意网段elasticsearch.url: "http://192.168.80.129:9200" //本机节点地址kibana.index: ".kibana" //索引名称[root@node1 kibana]# systemctl start kibana.service //开启服务[root@node1 kibana]# systemctl enable kibana.service 浏览器访问kibana
在apache服务器中对接apache日志文件,进行统计
[root@apache elk]# vim /etc/logstash/conf.d/apache_log.conf //创建配置文件input { file{ path => "/etc/httpd/logs/access_log" //输入信息 type => "access" start_position => "beginning" } file{ path => "/etc/httpd/logs/error_log" type => "error" start_position => "beginning" }}output { if [type] == "access" { //根据条件判断输出信息 elasticsearch { hosts => ["192.168.80.129:9200"] index => "apache_access-%{+YYYY.MM.dd}" } } if [type] == "error" { elasticsearch { hosts => ["192.168.80.129:9200"] index => "apache_error-%{+YYYY.MM.dd}" } }}[root@apache elk]# logstash -f /etc/logstash/conf.d/apache_log.conf //根据配置文件配置logstach访问网页信息,查看kibana统计情况
选择management>Index Patterns>create index patterns;创建apache两个日志的信息
数据
服务
日志
信息
配置
地址
文件
输出
分析
服务器
输入
系统
节点
格式
索引
可视化
浏览
浏览器
处理
集群
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
个体户软件开发 起名
软件开发与项目管理是什么
win0服务器管理器在哪
网络安全与无线电手抄报
fm如何不使用自定义数据库
并发访问服务器
如何设置主机与服务器的连接
浙江软件开发有哪些网站
公安网络安全监管工作汇报
高级软件开发工程师工信部
互联网科技有哪些公司
501服务器相应不安全
非住宅存量房数据库工作指引
华为的网络技术怎么样
气象数据处理服务器
上海机械网络技术试验设备
湛江通信软件开发零售价
字节跳动网络安全
南京基础网络技术
我的世界纯生存服务器基岩版
数据库安全级别有什么
我的世界服务器拉黑人
网络技术的专业优势
数据库密码是啥呀
蚌埠餐饮软件开发需要多少钱
计算机网络安全的首选书
数据库 小写变大写
国家第一届网络安全周
数据库权限问题
网络安全事件 类型