测试环境 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
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: - 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.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false # setup.kibana: setup.kibana.host: "http://192.168.8.107:5601" setup.dashboards.enabled: true # # --- 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/
添加常用的字段
@timestamp
host.hostname
log.file.path
message