测试环境 EFK 搭建

上传软件包

主机 放置目录
192.168.8.107 /opt/
192.168.8.211 /opt/
192.168.8.212 /opt/

Elasticsearch 安装部署

解压elasticsearch并配置bin/elasticsearch.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cd /opt
tar -zxvf elasticsearch-7.7.0-linux-x86_64.tar.gz
mv elasticsearch-7.7.0-linux-x86_64 elasticsearch-7.7.0
cd elasticsearch-7.7.0/config
vim elasticsearch.yml

cluster.name: ELK-Cluster #ELK的集群名称,名称相同即属于是同一个集群
node.name: elk-node1 #本机在集群内的节点名称
path.data: /opt/elasticsearch-7.7.0/config/data #数据存放目录
path.logs: /opt/elasticsearch-7.7.0/config/data/log #日志保存目录
bootstrap.memory_lock: true #服务启动的时候锁定足够的内存,防止数据写入swap
network.host: 192.168.8.107 #监听的IP地址
http.port: 9200 #服务监听的端口
discovery.seed_hosts: ["192.168.8.107"] #单播配置一台即可
cluster.initial_master_nodes: ["elk-node1"]

配置内存限制
1
2
3
4
vim jvm.options

-Xms2g
-Xmx2g
创建用户以及数据目录
1
2
3
4
5
6
7
8
9
mkdir -p /opt/elasticsearch-7.7.0/config/{data,data/log}
groupadd elk
useradd -g elk elk
passwd elk
chown -R elk:elk /opt/elasticsearch-7.7.0 -R
su elk
cd bin/
./elasticsearch
# 启动报错:需要修改文件的最大打开数以及内存锁定
修改内核参数

vim /etc/security/limits.conf

1
2
3
4
* soft nofile 65536
* hard nofile 131072
* soft memlock unlimited
* hard memlock unlimited
修改最大线程数

vim /etc/security/limits.d/20-nproc.conf

1
*     soft    nproc    unlimited

vim /etc/sysctl.conf

1
vm.max_map_count = 655360

sysctl -p

reboot

启动服务
1
2
3
4
5
su elk
cd /opt/elasticsearch-7.7.0/bin/
./elasticsearch

netstat -nltup |grep 9200 #验证服务

Kibana 安装部署

解压部署
1
2
3
4
cd /opt
tar xf kibana-7.7.0-linux-x86_64.tar.gz
mv kibana-7.7.0-linux-x86_64 kibana-7.7.0
cd kibana-7.7.0/config/
修改配置文件

vim kibana.yml

1
2
3
4
5
6
7
8
9
server.port: 5601    #监听端口
server.host: "192.168.8.107" #监听地址
elasticsearch.hosts: ["http://192.168.8.107:9200"] #elasticsearch服务器地址

xpack.reporting.capture.browser.chromium.disableSandbox: true
xpack.reporting.capture.browser.chromium.proxy.enabled: false
xpack.reporting.enabled: false

i18n.locale: "zh-CN" #修改为中文
启动 Kibana
1
2
3
cd /opt/kibana-7.7.0/bin
nohup ./kibana --allow-root &
netstat -lntp | grep 5601 #验证

Filebeat 安装部署

安装在应用程序跑的服务器中:211、212

解压安装
1
2
3
4
cd /opt
tar xf filebeat-7.7.0-linux-x86_64.tar.gz
mv filebeat-7.7.0-linux-x86_64 filebeat-7.7.0
cd filebeat-7.7.0
修改配置文件

vim filebeat.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
### Filebeat inputs
filebeat.inputs:
- type: log
enabled: true
paths:
- /mnt/opt/service_log/*.log
#配置多行日志合并规则,已时间为准,一个时间发生的日志为一个事件
multiline.pattern: '^\d{4}-\d{2}-\d{2}'
multiline.negate: true
multiline.match: after

### Filebeat modules
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false

### Kibana
setup.kibana:

setup.kibana.host: "http://192.168.8.107:5601"
setup.dashboards.enabled: true

### Outputs
#--- Elasticsearch output ---
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["192.168.8.107:9200"]
index: "filebeat-%{+yyyy.MM.dd}"

setup.template.name: "my-log"
setup.template.pattern: "my-log-*"
json.keys_under_root: false
json.overwrite_keys: true
#设置解析json格式日志的规则
processors:
- decode_json_fields:
fields: [""]
target: json
启动 Filebeat
1
nohup ./filebeat -e -c ./filebeat.yml &

Kibana 根据业务调整

http://192.168.8.107:5601/

添加常用的字段