采用ELK进行网络流量分析的安装过程

June 9, 2017
elk 大数据

所有ELK组件均基于版本5.4.1

Step1 操作系统的准备

禁用CentOS7服务器上的SELinux。编辑SELinux的配置文件。

vim /etc/sysconfig/selinux

将 SELINUX的值从enforcing改成disabled。

SELINUX=disabled

然后重启服务器

reboot

再次登录服务器并检查 SELinux 状态。

getenforce

确保结果是 disabled

Step2 安装Java

部署 Elastic stack 依赖于Java,Elasticsearch 需要 Java 8 版本,推荐使用 Oracle JDK 1.8 。我将从官方的 Oracle rpm 包安装 Java 8。

下载 Java 8 的JDK, 请选择linux64的rpm包

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

然后使用 rpm 命令安装:

rpm -ivh jdk-8u77-linux-x64.rpm

最后,检查 java JDK 版本,确保它正常工作。

java -version

您将看到服务器的 Java 版本。

这里要注意的是,可能有您安装的服务器上已经有java 7了,那么就要运行下面命令,让默认版本为java 8。

/usr/sbin/alternatives --config java

显示如下:

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1  /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.101-2.6.6.1.el7_2.x86_64/jre/bin/java
   2   /usr/java/jdk1.8.0_131/jre/bin/java

Enter to keep the current selection[+], or type selection number:

这个时候输入数字2就可以了,然后敲击回车,之后再检测一下Java的版本,应该就没有问题了。

Step3 安装和配置 Elasticsearch和xpack

在安装 Elasticsearch 之前,将 elastic.co 的密钥添加到服务器。

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

接下来,使用 wget 下载 Elasticsearch 5.4.1,然后安装它。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.1.rpm
rpm -ivh elasticsearch-5.4.1.rpm

Elasticsearch 已经安装好了。 现在进入配置目录编辑 elasticsaerch.yml 配置文件。

cd /etc/elasticsearch/
vim elasticsearch.yml

启用 Elasticsearch 的内存锁。这将禁用 Elasticsearch 的内存交换。

bootstrap.memory_lock: true

Network 块中,取消注释 network.hosthttp.port 行。

network.host: 0.0.0.0
http.port: 9200

保存文件并退出编辑器。

现在编辑 elasticsearch.service 文件的内存锁配置。

vim /usr/lib/systemd/system/elasticsearch.service

确保该值为 infinity。

LimitMEMLOCK=infinity

保存并退出。

然后编辑/etc/sysconfig/elasticsearch文件的内存锁配置。

MAX_LOCKED_MEMORY=unlimited

保存并退出。

Elasticsearch 配置到此结束。Elasticsearch 将在本机的 9200 端口运行,我们通过在 CentOS 服务器上启用 mlockall 来禁用内存交换。重新加载 systemd,将 Elasticsearch 置为开机启动,然后启动服务。

sudo systemctl daemon-reload 
sudo systemctl enable elasticsearch 
sudo systemctl start elasticsearch

等待 Eelasticsearch 启动成功,然后检查服务器上打开的端口,确保 9200 端口的状态是 LISTEN

netstat -plntu | grep 9200

然后检查内存锁以确保启用 mlockall,并使用以下命令检查 Elasticsearch 是否正在运行。

curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty'

{
  "nodes" : {
    "o6f3SEdsRg-IidCsiaicHw" : {
      "process" : {
        "mlockall" : true
      }
    }
  }
}

curl -XGET 'localhost:9200/?pretty'

{
  "name" : "*****",
  "cluster_name" : "production",
  "cluster_uuid" : "n8VLYl__Qo6WWC-VDbAUcg",
  "version" : {
    "number" : "5.4.1",
    "build_hash" : "2cfe0df",
    "build_date" : "2017-05-29T16:05:51.443Z",
    "build_snapshot" : false,
    "lucene_version" : "6.5.1"
  },
  "tagline" : "You Know, for Search"
}

到此elasticsearch安装完了。

安装xpack扩展插件

/usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack

修改elasticsearch.yml配置文件,添加如下配置

action.auto_create_index: true
xpack.security.enabled: false

重启elasticsearch

systemctl restart elasticsearch

Step4 安装和配置 Logstash

下载 Logstash 并使用 rpm 进行安装。

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.4.1.rpm
rpm -ivh logstash-5.4.1.rpm

转到 logstash 配置目录,并在 /etc/logstash/conf.d 子目录中创建新的配置文件sflow.conf

input {
  udp {
    host => ["添加本地监听地址"]
    port => 6343
    codec => sflow {
    }
    type => sflow
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "logstash-sflow-%{+YYYY.MM.dd}"
  }
}

这里我们需要安装一个logstash的插件,让它支持slfow协议的解码。

/usr/share/logstash/bin/logstash-plugin install logstash-codec-sflow

安装logstash的xpack插件

/usr/share/logstash/bin/logstash-plugin install x-pack

修改/etc/logstash/logstash.yml配置文件添加xpack对于logstash的监控:

xpack.monitoring.elasticsearch.url: http://localhost:9200

这里我们没有启用xpack的鉴权,所以不需要指定用户名与密码。

Step5 安装和配置 Kibana

wget 下载 Kibana 5.4.1,然后使用 rpm 命令安装:

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.1-x86_64.rpm
rpm -ivh kibana-5.4.1-x86_64.rpm

编辑 Kibana 配置文件。

vim /etc/kibana/kibana.yml

去掉配置文件中 server.portserver.hostelasticsearch.url 这三行的注释。

server.port: 5601
server.host: "YourIP"
elasticsearch.url: "http://localhost:9200"

将 Kibana 设为开机启动,并且启动 Kibana 。

sudo systemctl enable kibana
sudo systemctl start kibana

至此所有都已经安装完成,打开网址http://YouKibanaIP:5601/, 就能看到相应的数据。记得创建Kibana Sflow的索引,logstash-sflow-*。

安装Kibana的Xpack插件

comments powered by Disqus