overview:
1.聚合数据展示
2.过滤数据
3.读写分离集群
4.ms级响应查询
5.重要数据归档
6.基于ossec logstash es 大数据安全关联分析
需求与实现
需求1: 能像tail -f 查看日志,集中式查看日志,不用单节点去查看。
解决需求1:
先调研开源日志方案:
初级:rsyslog+notify
中级1:Logstash +Redis+ Elasticsearch + Kibana 这套适用对可靠 时要求不是很严的那种 ,采用redis队列
中级2:Flume + Kafka + Elasticsearch + Kibana 可靠性比中级1强,实时性,可用性较高,采用kafka中间件消息队列,有的为了加强完整性,还会加入zk。
高级:Flume + Kafka + HDFS + HADOOP + HIVE + Storm (+ Elasticsearch + Kibana)
尝试1:
用flume用采集,但采集到的日志文件不能按一定规则命名(虽是可以去改一小段的java实现),但都是文件存储方式。跟以前的相比只是不用跑去每个节点查看日志。
尝试2:
自我放弃了flume方案。换elk(当时的版本是1.7)。第一版的技术是elk+redis,原始的需求已经满足了,集中式,类似tail -f 方式。现在是集中式,web方式。效果如下:
需求2:要看聚合的数据,比如a一类集中显式
解决需求2:
采用 if [type] == "a" {
index => "a"
}
把数据聚合到index显示,就ok了
需求3:数据量太大了,要过滤数据b
解决需求3:
filter {
grok {
add_tag => [ "valid" ]
match => [
"message", "b"
]
}
}
ps:由于logstash的1.5 1.7 2.1 各版本语法略有差异,1.5版本是grek ,1.7以后改成grok。其它写法也不一样,具体的参照官网的示例。
需求四:要归档重要的日志,es集群读写分离
解决需求四:从redis队列直接取值存于mongodb
es集群这里采取的是读写分离模式,常见的主从方式(master----->slave),谁先启动就是master。
这里的数据过滤归档,有很多种方式,思考了良久,采取是最少工时最高效率,从redis消息队列直接取值过滤存档。当然,也可用python方式用es的api的调用数据来归档,看需求,看场景.......
需求五:优化各层次套件,实现ms级查看日志
解决需求五:
各种优化,前端,消息队列,存储,分片,索引,副本,加ngxspeed。改js 支持ms级别。
先看ms级显示:
这是改js里
optimize/bundles/kibana.bundle.js:4264
kibana4.3/optimize/bundles/kibana.bundle.js
es的优化除了能在 elasticsearch.yml配置一些最大最小内存,副本等外,大部人是通过es的api来设置,由于设置项与理论太多了。这里暂两个例子:
管理索引优化
optimize API允许通过API优化一个或多个索引。优化过程的操作基本上优化的索引搜索速度更快(和涉及到Lucene索引内保存每个碎片的段数)。优化操作允许减少的段数,把它们合并。
$ curl -XPOST 'http://localhost:9200/twitter/_optimize'
需求6: 入侵检测检测系统
这个是理论阶段,我还没开始做。只是提供一个思路案例思考。Ossec(事件源、alert源) Logstash (日志收集、分割日志) Elasticsearch (全文搜索) Kibana3 (日志展现) Redis/kafka队列。
入侵检测系统ossec:
ossec 支持2种模式:1、ossec agent; 2、基于redis队列,日志传送到ossec server,然后ossec server会通过对分析日志进格式化处理规则解析,判断异常并且对其做处理,比如写入数据库,触发告警。
如图1为处理日志过程。
如图2为ossec整个工作过程:
说到入侵检测系统,之前作了一个迷你的系统录屏,记录用户从登陆系统的所有操作,把记录在kibana上展示。
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /data/records ]
then
相关推荐
基于Flume的分布式日志采集分析系统设计与实现 Flume是一种分布式日志采集系统,可以实时地采集和处理大量日志...该系统的实现证明了基于Flume的分布式日志采集系统方案的可行性,为企业安全提供了有力的信息支撑。
手机日志系统的设计与实现本科生毕业论文 本文将围绕手机日志系统的设计与实现这个主题,详细介绍相关的知识点。 首先,手机日志系统是基于J2ME平台开发的,其主要功能是实现日志管理、数据存储和服务器通信等功能...
1. 对云计算领域的基础概念、技术特点及日志管理系统的需求进行调研,分析MSCP(容器化私有云平台)上的日志系统特点。 2. 设计并实现基于Elasticsearch集群的日志索引和存储方案,以处理MSCP平台上的海量数据。 3. ...
《ELK日志系统实施方案》 ELK日志系统,由Elasticsearch、Logstash(在本方案中替换为Filebeat)、Kibana三个组件组成,是目前广泛应用的日志管理和分析解决方案。本文将详述如何实施一个基于Elasticsearch、Kibana...
自定义系统可以针对性地满足特定需求,如特定格式的日志解析、特定功能的实现等。但要注意,开发此类系统需要充分考虑系统的扩展性、稳定性和维护性。 综上,日志管理系统是IT基础设施的关键组成部分,它帮助我们...
手机日志系统的设计与实现是针对企业信息化安全需求而提出的一种解决方案。随着互联网和计算机技术的飞速发展,企业越来越依赖信息化技术来整合资源,提升市场竞争力。在这样的背景下,企业信息系统变得日益复杂,对...
《基于Socket分布式日志系统的设计与实现》 在IT行业中,日志系统是不可或缺的一部分,它为系统的故障排查、性能优化、安全审计等提供了重要的数据支持。本文将深入探讨如何设计并实现一个基于Socket的分布式日志...
《ASP个人日志系统的设计与实现》是一份典型的毕业设计项目,主要涵盖了Web开发中的关键技术和实践应用。这个压缩包包含完整的源代码和相关的论文,为学习者提供了一个实际的案例来深入理解ASP(Active Server Pages...
C++作为一种强大的系统级编程语言,也有许多实现日志系统的方案。针对你提供的资源,我们可以探讨一下C++实现日志系统的关键知识点。 1. **跨平台性**: C++的一个显著优势就是它的跨平台性。为了实现跨平台的日志...
标题中的“基于Python开发网络运行日志收集整理系统设计与实现”揭示了这个项目的核心内容,即使用Python编程语言来构建一个系统,该系统的主要功能是收集、整理网络运行过程中的日志数据。网络日志通常包含服务器...
### 日志管理和分析系统的设计与实现 #### 一、引言 随着信息技术的快速发展和互联网规模的不断扩大,网络系统变得日益复杂。这种复杂性不仅体现在网络结构上,也体现在网络应用和服务的多样性上。面对这样的挑战...
文章介绍了基于Log4J的日志系统架构,这是一种国际上广泛采用的开源日志工具。Log4J以其灵活性和强大的功能而被选中,但针对GHIPS的特定需求,进行了功能封装和数据库扩展等优化,以适应遥感数据处理的特性。优化后...
### SPLUNK大数据日志系统分析平台技术方案 #### 一、项目背景与需求 随着信息技术的快速发展,组织机构对科技运维工作的要求日益提高。面对庞大的数据量和复杂的系统环境,传统的运维方式已难以满足需求。为此,...
Linux 系统 Nginx 日志解决方案 本文将详细介绍如何使用 Nginx、Promtail、Loki 和 Grafana 实现一个简单的 Nginx 日志展示解决方案。该解决方案旨在满足客户的需求,查看网站的访问情况,并且不依赖于 Google 或...
- **Creating custom Trace listeners**:创建自定义的`Trace Listener`可以扩展日志记录功能,支持特殊格式的日志输出或与其他系统集成。 - **Checking Filter Status Before Constructing log Messages**:在...
本文提供了一个基于JavaEE技术的在线考试系统的设计与实现方案,旨在解决传统的纸质考试方式的不足之处,提高考试的效率和公平性。 知识点: 1. 基于JavaEE技术的在线考试系统的设计与实现 2. 在线考试系统的功能...
而"ASP个人日志系统的设计与实现(源代码+论文)"这部分很可能是项目的源代码文件夹和相关的项目文档,包括设计思路、实现细节、遇到的问题及解决方案等。源代码分析可以帮助学习者了解ASP编程的实际应用,而论文则...
通过虚拟机环境的搭建、基础存储和处理平台的配置,以及针对日志的规范化处理和分析技术的运用,本文提出了一套完整的基于Spark的分布式网络日志处理系统的设计与实现方案。该方案不仅满足了大规模网络日志数据处理...
日志的收集是日志管理系统的基础,这一步通常通过日志代理实现,如Logstash、Fluentd等,它们可以从各种源(如服务器、应用、设备)收集日志,支持多种协议和格式,如TCP、UDP、HTTP、JSON、CSV等。收集到的日志数据...