ELK-6日志分析平台环境部署
官方网站:https://www.elastic.co/products
一、介绍
通过官网网站了解到:
Kibana 能够以图表的形式呈现数据,并且具有可扩展的用户界面,供您全方位配置和管理 Elastic Stack。
Elasticsearch 是基于 JSON 的分布式搜索和分析引擎,专为实现水平可扩展性、高可靠性和管理便捷性而设计。
Logstash 是动态数据收集管道,拥有可扩展的插件生态系统,能够与 Elasticsearch 产生强大的协同作用。
Beats 是一个面向轻量型采集器的平台,这些采集器可从边缘机器向 Logstash 和 Elasticsearch 发送数据。
二、架构部署
由于当前日志量不大,所以没有使用redis或kafka等队列工具,也没有使用集群。后续可以根据实际负载情况加入缓存和集群
三、安装
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 elkmkdir /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/*.confhttp.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可进行检索