官方安装文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-targz.html

官方硬件和配置项推荐:https://www.elastic.co/guide/en/elasticsearch/guide/master/hardware.html

 事件--->input---->codec--->filter--->codec--->output

ELK安装过程

系统:Centos7.4       IP地址:11.11.11.30
JDK:1.8
Elasticsearch-6.4.3
Logstash-6.4.0
kibana-6.4.0
注释:截至2018年11月8日最新版为6.4.3

iptables -F

2.1、前期准备

1、安装JDK

JDK的下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

[root@localhost ~]# tar zxvf jdk-8u152-linux-x64.tar.gz -C /usr/local/
解压后配置全局变量
[root@localhost ~]# vi /etc/profile.d/jdk.sh
JAVA_HOME=/usr/local/jdk1.8
CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
[root@localhost ~]# source /etc/profile.d/jdk.sh

[root@localhost ~]# java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

注释:也可以直接yum安装java也是可以的!!!  

 

2、修改全局参数

vi /etc/sysctl.conf 
vm.max_map_count=655360
sysctl -p

vi /etc/security/limits.conf
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
#以下两个参数不是必须的,原因在于配置第二台elk的时候启动elasticsearch的时候报JVM内存无法分配内存错误
* soft memlock unlimited * hard memlock unlimited

3、创建elk用户及下载所需文件

#创建运行ELK的用户
useradd elk
passwd elk

#创建目录存放软件
[root@elk ~]# su - elk
[elk@elk ~]$ mkdir /home/elk/{Application,Data,Log}

注释:  软件安装目录:
/home/elk/Application 软件数据目录:/home/elk/Data 软件日志目录:/home/elk/Log #下载并解压kibana,elasticsearch,logstash到/home/elk/Application目录下 下载地址:https://www.elastic.co/start #因最新版本下载过慢,下载之前同事已经下载好的...... #解压文件 [elk@elk ~]$ cd /usr/local/src/ [elk@elk src]$ ll 总用量 530732 -rw-r--r--. 1 root root 97872736 11月 7 14:55 elasticsearch-6.4.3.tar.gz -rw-r--r--. 1 root root 10813704 11月 7 15:41 filebeat-6.4.0-x86_64.rpm -rw-r--r--. 1 root root 55751827 11月 7 15:41 kafka_2.11-2.0.0.tgz -rw-r--r--. 1 root root 187936225 11月 7 15:39 kibana-6.4.0-linux-x86_64.tar.gz -rw-r--r--. 1 root root 153887188 11月 7 15:41 logstash-6.4.0.tar.gz -rw-r--r--. 1 root root 37191810 11月 7 15:41 zookeeper-3.4.13.tar.gz
[elk@elk src]$ tar xf elasticsearch
-6.4.3.tar.gz -C /home/elk/Application/ [elk@elk src]$ tar xf kibana-6.4.0-linux-x86_64.tar.gz -C /home/elk/Application/ [elk@elk src]$ tar xf logstash-6.4.0.tar.gz -C /home/elk/Application/

[elk@elk src]$ ll /home/elk/Application/ 总用量 0 drwxr-xr-x. 8 elk elk 143 10月 31 07:22 elasticsearch-6.4.3 drwxrwxr-x. 11 elk elk 229 8月 18 07:50 kibana-6.4.0-linux-x86_64 drwxrwxr-x. 12 elk elk 255 11月 7 15:46 logstash-6.4.0 [elk@elk src]$

3、服务配置

3.1、配置elasticsearch

#内存大的话可以根据需求要修改
[elk@elk Application]$ vi elasticsearch/config/jvm.options
-Xms8g
-Xmx8g

[elk@elk Application]$ vi elasticsearch/config/elasticsearch.yml
#集群时使用的集群名称
cluster.name: my-es
#本节点名称
node.name: node-1
#数据存储的目录
#path.data: /data/es-data  #多个目录可以用逗号隔开
path.data: /home/elk/Data/elasticsearch
#日志存放目录
path.logs: /home/elk/Log/elasticsearch
#数据不允许放入sawp分区
bootstrap.memory_lock: true
#本地监听地址
network.host: 11.11.11.30
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入的集群节点
discovery.zen.ping.unicast.hosts: ["11.11.11.30", "11.11.11.31"]
#监听端口
http.port: 9200
# 设置节点间交互的tcp端口(集群),(默认9300)
transport.tcp.port: 9300
#增加参数,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
#看下自己修改过的配置
[elk@elk Application]$ grep '^[a-Z]' elasticsearch/config/elasticsearch.yml 

启动elasticsearch(要使用elk这个用户启动)
nohup /home/elk/Application/elasticsearch/bin/elasticsearch >> /home/elk/Log/elasticsearch/elasticsearch.log 2>&1 &

日志地址:
[elk@elk Application]$ tail /home/elk/Log/elasticsearch/my-es.log
ELK安装过程

ELK安装过程

 

3.1.1、部署第二台elk,修改的配置文件如下,其他跟elk配置一致

[elk@elk02 Application]$ grep '^[a-Z]' elasticsearch/config/elasticsearch.yml
cluster.name: my-es   #一定要跟第一台一致
node.name: node-2    #一定要跟第一台不同
path.data: /home/elk/Data/elasticsearch
path.logs: /home/elk/Log/elasticsearch
bootstrap.memory_lock: true
network.host: 11.11.11.31
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true 
http.cors.allow-origin: "*"

mkdir /home/elk/Log/elasticsearch/

启动elasticsearch
nohup /home/elk/Application/elasticsearch/bin/elasticsearch >> /home/elk/Log/elasticsearch/elasticsearch.log 2>&1 &

ELK安装过程

 3.1.2、根据附录中的1,安装完head后的结果如下图

ELK安装过程

 

 3.2、配置logstash(拓展请查看附录3

这是收集数据,转发数据,对日志进行过滤

logstash官方说明:https://www.elastic.co/guide/en/logstash/current/introduction.html

写入插件:https://www.elastic.co/guide/en/logstash/current/input-plugins.html

输出插件:https://www.elastic.co/guide/en/logstash/current/output-plugins.html

ELK安装过程

 

[elk@elk Application]$ vi logstash/config/jvm.options
-Xms4g
-Xmx4g
[elk@elk Application]$ vi logstash/config/logstash.yml
#pipeline线程数,默认为cpu核数
pipeline.workers:
8
#batcher一次批量获取的待处理文档数 pipeline.batch.size: 1000
#batcher等待时长,默认50ms pipeline.batch.delay: 50

 示例:

#logstash启动的时候要读取的配置文件

[elk@elk config]$ cat logstash-sample.conf

#从哪获取数据 input { file { path => ["/var/log/messages","/var/log/secure"] type => "system-log" start_position => "beginning" } }
#对进来的文件内容进行过滤 filter { }
#过滤后的数据发到哪里 output { elasticsearch { hosts
=> ["http://11.11.11.30:9200"] index => "system-log-%{+YYYY.MM}" #user => "elastic" #password => "changeme" } }
注释:如果日志量不大的话,不建议使用天计算(
+YYYY.MM.dd);kikana到时不好添加!!!!

#启动
[elk@elk ~]$ mkdir /home/elk/Log/logstash -p
nohup /home/elk/Application/logstash/bin/logstash -f /home/elk/Application/logstash/config/logstash-sample.conf --config.reload.automatic >> /home/elk/Log/logstash/logstash.log 2>&1 &
#查看是否运行

[elk@elk config]$ jobs -l
[1]+ 16289 运行中 nohup /home/elk/Application/logstash/bin/logstash -f /home/elk/Application/logstash/config/logstash-sample.conf --config.reload.automatic >> /home/elk/Log/logstash/logstash.log 2>&1 &


ELK安装过程

 

 

 1 [elk@elk Application]$ vi logstash/config/logstash.conf
 2 input {
 3     kafka {
 4          bootstrap_servers => "192.168.2.6:9090"
 5          topics => ["test"]
 6     }
 7 
 8 }
 9 filter{
10     json{
11         source => "message"
12     }
13 
14    ruby {
15         code => "event.set('index_day_hour', event.get('[@timestamp]').time.localtime.strftime('%Y.%m.%d-%H'))"
16    }
17    mutate {
18         rename => { "[host][name]" => "host" }
19    }
20    mutate {
21         lowercase => ["host"]
22    }
23 
24 
25 }
26 output {
27   elasticsearch {
28     index => "%{host}-%{app_id}-%{index_day_hour}"
29     hosts => ["http://192.168.2.7:9200"]
30   }
31 }
参考配置

相关文章:

  • 2021-11-25
  • 2021-05-13
  • 2021-06-13
  • 2022-12-23
  • 2021-12-01
  • 2022-01-01
猜你喜欢
  • 2022-12-23
  • 2021-09-22
  • 2022-12-23
  • 2021-05-28
  • 2022-12-23
  • 2021-09-07
  • 2021-10-23
相关资源
相似解决方案