欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

基于Centos搭建ELK环境指南

来源:本站整理 作者:佚名 时间:2017-07-12 TAG: 我要投稿

无论是甲方还是一方都需要面对大量日志处理的情况,之前分析的时候用基本的shell命令进行处理,但是面对大量数据的时候则有些力不从心,而且面对纯文字也不大直观。后来有人推荐了ELK,最近ELK升级到了版本五。E, L, K三大组件统一了版本号,花了一段时间总算搭好了。
基本环境信息:
操作系统:CentOS 6.9 x64
java版本号:1.8.0_131
ELK: 5.5
0×01 安装java
ELK需要最新的java1.8.CentOS自带了openjdk1.7,删了重新安装oracle java
yum remove java
然后从oracle官网(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)下载java的源码包
mkdir /usr/java
tar -zxvf jdk-8u131-linux-x64.tar.gz -C  /usr/java/
编辑/etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_131
JRE_HOME=/usr/java/jdk1.8.0_131/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME:$JRE_HOME:$CLASSPATH
创建java的软连接
cd /usr/bin
ln -s /usr/java/jdk1.8.0_131/bin/java java
如图,安装成功

2. 安装elasticsearch
去elk官网下载elasticsearch的rpm包,

直接安装
rpm -ivh elasticsearch-5.5.0.rpm
启动测试
/etc/init.d/elasticsearch start
如图,安装成功

清空elasticsearch的数据
curl -XDELETE 'http://127.0.0.1:9200/logstash-*'
配置一下权限
cd /var/lib
chmod -R 777 logstash
3. 安装kibana
还是从官网下载kibana的二进制包
rpm -ivh kibana-5.5.0-x86_64.rpm
启动
/etc/init.d/kibana start

如图所示,kibaba也安装成功了,现在kibana只能从本地访问,为了方便调试,利用nginx做一下反向代理
yum install nginx
#/etc/nginx/conf.d/default.conf
server {
    listen 80;
    location / {
        proxy_pass [http://localhost:5601](http://localhost:5601);
    }
}
4. 安装logstash
安装logstash和之前的步骤一样,但是logstash是没有独立的守护服务的
安装后的路径
/usr/share/logstash/
创建config的软连接
cd /usr/share/logstash
ln -s /etc/logstash ./config
Logstash配置文件是JSON格式,放在/etc/logstash/conf.d 。 该配置由三个部分组成:输入,过滤器和输出。
input 数据输入端,可以接收来自任何地方的源数据。
file:从文件中读取
syslog:监听在514端口的系统日志信息,并解析成RFC3164格式。
redis:从redis-server list 中获取
beat:接收来自Filebeat的事件
Filter 数据中转层,主要进行格式处理,数据类型转换、数据过滤、字段添加,修改等,常用的过滤器如下。
grok: 通过正则解析和结构化任何文本。Grok 目前是logstash最好的方式对非结构化日志数据解析成结构化和可查询化。logstash内置了120个匹配模式,满足大部分需求。
mutate: 在事件字段执行一般的转换。可以重命名、删除、替换和修改事件字段。
drop: 完全丢弃事件,如debug事件。
clone: 复制事件,可能添加或者删除字段。
geoip: 添加有关IP地址地理位置信息。
output 是logstash工作的最后一个阶段,负责将数据输出到指定位置,兼容大多数应用,常用的有:
elasticsearch: 发送事件数据到 Elasticsearch,便于查询,分析,绘图。
file: 将事件数据写入到磁盘文件上。
mongodb:将事件数据发送至高性能NoSQL mongodb,便于永久存储,查询,分析,大数据分片。
redis:将数据发送至redis-server,常用于中间层暂时缓存。
graphite: 发送事件数据到graphite。http://graphite.wikidot.com/
statsd: 发送事件数据到 statsd。
其中input和output是必须的,logstash由一个e参数,可以在终端调试配置文件
最简单的输入输出
/usr/share/logstash/bin# ./logstash -e 'input { stdin { } } output { stdout {} }'

采用格式化输出
logstash -e 'input { stdin { } } output { stdout { codec => rubydebug } }'

这边,我们是从终端输入,同时也从终端输出,但在实际状况中几乎不可能这么做,那先打通输出环节吧,把输出的内容发送到
Elasticsearch
首先启动Elasticsearch,确保9200端口开着,前边已经启动了。然后执行

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载