天天看点

ELK-6日志分析平台环境部署

官方网站:https://www.elastic.co/products      

一、介绍

通过官网网站了解到:

Kibana 能够以图表的形式呈现数据,并且具有可扩展的用户界面,供您全方位配置和管理 Elastic Stack。

Elasticsearch 是基于 JSON 的分布式搜索和分析引擎,专为实现水平可扩展性、高可靠性和管理便捷性而设计。

Logstash 是动态数据收集管道,拥有可扩展的插件生态系统,能够与 Elasticsearch 产生强大的协同作用。

Beats 是一个面向轻量型采集器的平台,这些采集器可从边缘机器向 Logstash 和 Elasticsearch 发送数据。

二、架构部署

由于当前日志量不大,所以没有使用redis或kafka等队列工具,也没有使用集群。后续可以根据实际负载情况加入缓存和集群

ELK-6日志分析平台环境部署

三、安装

JDK安装

Elasticsearch-6依赖于jdk-1.8,请确保需要安装的机器jdk版本不低于1.8.0_73

使用yum安装Openjdk

yum -y install java-1.8.0-openjdk*

配置JAVA环境变量:vim /etc/profile 追加:(将下面的内容添加至文件末尾)

export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

然后再执行  source /etc/profile  使JDK设置生效

Elasticsearch 安装

采用yum方式安装:

安装许可:  rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

添加yum源:  vim /etc/yum.repos.d/elasticsearch.repo

[esticsearch-6.x]

name=Elasticsearch repository for 6.x packages

baseurl=https://artifacts.elastic.co/packages/6.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

安装:yum install -y elasticsearch

等待安装完成之后,修改相应配置文件,配置文件路径:  /etc/elasticsearch/elasticsearch.yml

修改其中的几项配置即可

# cluster.name: es_cluster #集群名,依此识别并组成集群

# node.name: node-1 #节点名,集群内每个节点名不同

# network.host: 192.168.0.1 #配置本机ip,以便外网访问

如果是集群,添加防脑裂配置(因为elc默认是一个局域网内能搜索到的就是一个集群,一些原因会导致分成几个集群)

discovery.zen.ping.multicast.enabled: false

discovery.zen.ping_timeout: 120s

client.transport.ping_timeout: 60s

discovery.zen.ping.unicast.hosts: ["cdh2","cdh1","cdh4"]

因单一节点设置该节点为集群主节点数据节点

node.master: true #设置充当master节点

node.data: true #设置充当data节点,默认为true

ES启动的时候回占用特别大的资源所以需要修改下系统参数,若不修改资源启动会异常退出

配置资源参数:  vim /etc/security/limits.conf

*        soft        nofile        65536

*        hard        nofile        131072  

*        soft        nproc        65536

*        hard        nproc        131072 

配置用户资源参数:  vim /etc/security/limits.d/*-nproc.conf

elk     soft    nproc       65536

设置ES启动 JVM堆大小:  vim /etc/elasticsearch/jvm.options

-Xms2g

-Xmx2g

es不能用root用户启动,先更改elasticsearch文件夹的所有者 创建下列目录并授权

创建用户并赋权:

useradd elk

groupadd elk

useradd elk -g elk

mkdir /var/run/elasticsearch

mkdir /var/lib/elasticsearch

chmod –R 777  /var/lib/elasticsearch

chmod -R 777 /var/run/elasticsearch

服务启动停止命令:

service elasticsearch start

service elasticsearch stop

验证安装:访问http://localhost:9200/ 有返回即可

或者使用命令 curl -XGET http://localhost:9200 有返回即可

安装kibana

采用yum安装

安装授权    rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

创建yum源 vi /etc/yum.repos.d/kibana.repo

[kibana-6.x]

name=Kibana repository for 6.x packages

baseurl=https://artifacts.elastic.co/packages/6.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

安装kibana: yum install -y kibana

安装后修改配置文件:vim /etc/kibana/kibana.yml

#server.host  默认localhost,只能本机访问kibana

#server.name 此kibana服务的名称

#elasticsearch.url  es地址

修改完毕之后,启动服务命令:

service kibana start

service kibana stop

安装验证:访问http://localhost:5601/

安装Logstash

采用yum方式安装

创建yum源:  vim /etc/yum.repos.d/logstash.repo

[logstash-6.x]

name=Elastic repository for 6.x packages

baseurl=https://artifacts.elastic.co/packages/6.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

安装:  yum install logstash -y

安装后修改配置文件:  vim /etc/logstash/logstash.yml

node.name: elk

path.data: /var/lib/logstash

path.config: /etc/logstash/conf.d/*.conf

http.host: "0.0.0.0"

http.port: 9600

path.logs: /var/log/logstash

上述配置一个启动rest服务端口9600的logstash,配置文件可以多个conf文件,存放位置在/etc/logstash/conf.d目录下

修改完毕之后,启动服务命令:

service logstash start

service logstash stop

如果使用的是CentOS6的话,上面的命令是无效的,使用如下命令:

initctl start logstash

initctl stop logstash

安装验证:http://localhost:9600/

安装Filebeat

安装:

官网下载filebeat-6.5.1的rpm

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.1-x86_64.rpm

rpm -ivh filebeat-6.5.1-x86_64.rpm

配置:  vim /etc/filebeat/filebeat.yml

#=========================== Filebeat inputs =============================

filebeat.inputs:

- type: log

  enabled: true

  paths:

    - /opt/testelk/logs/*.log

  fields:

    appname: 'elklog4jfile'

  multiline.pattern: '^[0-9]{4}'

  multiline.negate: true

  multiline.match: after

#============================= Filebeat modules ===============================

filebeat.config.modules:

  path: ${path.config}/modules.d/*.yml

  reload.enabled: true

  reload.period: 10s

#----------------------------- Logstash output --------------------------------

output.logstash:

  hosts: ["localhost:9610"]

此配置抓取日志:

log4j产生的日志,日志目录在/opt/testelk/logs/*.log

服务启动filebeat:service filebeat start

后台启动:nohup ./filebeat-6.5.1-linux-x86_64/filebeat start &

启动后,可以在ES中查看到相应的索引信息,在KIBANA可进行检索

继续阅读