사용 가능한 데모 환경 테스트 결과 (세 개의 노드) + filebeat + 키바 빠른 시작 EFK를 elasticsearch 배포에 의해 건립
저자 : "영국 만든 코요테가" , 다시 인쇄에 오신 것을 환영 및 제출
디렉토리
▪ 사용
▪ 실험 아키텍처
▪의 EFK 소프트웨어 설치
▪ elasticsearch 구성
▪ filebeat 구성
▪ 키바 구성
▪ 서비스 시작
▪ 키바 인터페이스 구성
▪ 테스트
▪ 후속 기사를
용도
에 의해 클러스터를 elasticsearch로 전송 실시간의 nginx 액세스 로그에 수집 ▷ filebeat,
로그 전송은 ▷ filebeat 클러스터 elasticsearch 수집
키바 쇼 로그를 통해 ▷을
실험 아키텍처
▷ 서버 구성
▷ 차트
EFK 소프트웨어 설치
흔적
▷ elasticsearch 7.3.2
▷ filebeat 7.3.2
▷ kibana 7.3.2
주의 사항
▷ 세 가지 구성 요소는 동일한 버전이어야합니다
▷ elasticsearch 세 이상 단수의 총 수
설치 경로
▷ / 옵션 / elasticsearch
▷ / 옵션 / 백업 비트
▷ / 옵션 / 키바
설치 elasticsearch는 : 3 개의 동일한 설치 단계는 수행 ES
mkdir -p /opt/software && cd /opt/software
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.2-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.3.2-linux-x86_64.tar.gz
mv elasticsearch-7.3.2 /opt/elasticsearch
useradd elasticsearch -d /opt/elasticsearch -s /sbin/nologin
mkdir -p /opt/logs/elasticsearch
chown elasticsearch.elasticsearch /opt/elasticsearch -R
chown elasticsearch.elasticsearch /opt/logs/elasticsearch -R
# 限制一个进程可以拥有的VMA(虚拟内存区域)的数量要超过262144,不然elasticsearch会报max virtual memory areas vm.max_map_count [65535] is too low, increase to at least [262144]
echo "vm.max_map_count = 655350" >> /etc/sysctl.conf
sysctl -p
filebeat 설치
mkdir -p /opt/software && cd /opt/software
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.2-linux-x86_64.tar.gz
mkdir -p /opt/logs/filebeat/
tar -zxvf filebeat-7.3.2-linux-x86_64.tar.gz
mv filebeat-7.3.2-linux-x86_64 /opt/filebeat
kibana 安装
mkdir -p /opt/software && cd /opt/software
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.3.2-linux-x86_64.tar.gz
tar -zxvf kibana-7.3.2-linux-x86_64.tar.gz
mv kibana-7.3.2-linux-x86_64 /opt/kibana
useradd kibana -d /opt/kibana -s /sbin/nologin
chown kibana.kibana /opt/kibana -R
Nginx에 설치 (로그를 생성 filebeat가 수집 됨)
# 只在192.168.1.11安装
yum install -y nginx
/usr/sbin/nginx -c /etc/nginx/nginx.conf
elasticsearch 구성
▷ 192.168.1.31 /opt/elasticsearch/config/elasticsearch.yml
# 集群名字
cluster.name: my-application
# 节点名字
node.name: 192.168.1.31
# 日志位置
path.logs: /opt/logs/elasticsearch
# 本节点访问IP
network.host: 192.168.1.31
# 本节点访问
http.port: 9200
# 节点运输端口
transport.port: 9300
# 集群中其他主机的列表
discovery.seed_hosts: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 首次启动全新的Elasticsearch集群时,在第一次选举中便对其票数进行计数的master节点的集合
cluster.initial_master_nodes: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 启用跨域资源共享
http.cors.enabled: true
http.cors.allow-origin: "*"
# 只要有2台数据或主节点已加入集群,就可以恢复
gateway.recover_after_nodes: 2
▷ 192.168.1.32 /opt/elasticsearch/config/elasticsearch.yml
# 集群名字
cluster.name: my-application
# 节点名字
node.name: 192.168.1.32
# 日志位置
path.logs: /opt/logs/elasticsearch
# 本节点访问IP
network.host: 192.168.1.32
# 本节点访问
http.port: 9200
# 节点运输端口
transport.port: 9300
# 集群中其他主机的列表
discovery.seed_hosts: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 首次启动全新的Elasticsearch集群时,在第一次选举中便对其票数进行计数的master节点的集合
cluster.initial_master_nodes: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 启用跨域资源共享
http.cors.enabled: true
http.cors.allow-origin: "*"
# 只要有2台数据或主节点已加入集群,就可以恢复
gateway.recover_after_nodes: 2
▷ 192.168.1.33 /opt/elasticsearch/config/elasticsearch.yml
# 集群名字
cluster.name: my-application
# 节点名字
node.name: 192.168.1.33
# 日志位置
path.logs: /opt/logs/elasticsearch
# 本节点访问IP
network.host: 192.168.1.33
# 本节点访问
http.port: 9200
# 节点运输端口
transport.port: 9300
# 集群中其他主机的列表
discovery.seed_hosts: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 首次启动全新的Elasticsearch集群时,在第一次选举中便对其票数进行计数的master节点的集合
cluster.initial_master_nodes: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 启用跨域资源共享
http.cors.enabled: true
http.cors.allow-origin: "*"
# 只要有2台数据或主节点已加入集群,就可以恢复
gateway.recover_after_nodes: 2
filebeat 구성
192.168.1.11의 /opt/filebeat/filebeat.yml
# 文件输入
filebeat.inputs:
# 文件输入类型
- type: log
# 开启加载
enabled: true
# 文件位置
paths:
- /var/log/nginx/access.log
# 自定义参数
fields:
type: nginx_access # 类型是nginx_access,和上面fields.type是一致的
# 输出至elasticsearch
output.elasticsearch:
# elasticsearch集群
hosts: ["http://192.168.1.31:9200",
"http://192.168.1.32:9200",
"http://192.168.1.33:9200"]
# 索引配置
indices:
# 索引名
- index: "nginx_access_%{+yyy.MM}"
# 当类型是nginx_access时使用此索引
when.equals:
fields.type: "nginx_access"
# 关闭自带模板
setup.template.enabled: false
# 开启日志记录
logging.to_files: true
# 日志等级
logging.level: info
# 日志文件
logging.files:
# 日志位置
path: /opt/logs/filebeat/
# 日志名字
name: filebeat
# 日志轮转期限,必须要2~1024
keepfiles: 7
# 日志轮转权限
permissions: 0600
kibana 배치
192.168.1.21의 /opt/kibana/config/kibana.yml
# 本节点访问端口
server.port: 5601
# 本节点IP
server.host: "192.168.1.21"
# 本节点名字
server.name: "192.168.1.21"
# elasticsearch集群IP
elasticsearch.hosts: ["http://192.168.1.31:9200",
"http://192.168.1.32:9200",
"http://192.168.1.33:9200"]
서비스 시작
# elasticsearch启动(3台es均启动)
sudo -u elasticsearch /opt/elasticsearch/bin/elasticsearch
# filebeat启动
/opt/filebeat/filebeat -e -c /opt/filebeat/filebeat.yml -d "publish"
# kibana启动
sudo -u kibana /opt/kibana/bin/kibana -c /opt/kibana/config/kibana.yml
위의 방법은 포 그라운드에서 실행 시작하는 것입니다. systemd 구성, 후속 기사 "EFK 튜토리얼"시리즈를 제공 할 것입니다, 그래서 계속 지켜봐 주시기 바랍니다!
키바 인터페이스 구성
1️⃣ 브라우저 192.168.1.21:5601를 사용하여 액세스, 다음과 같은 인터페이스가 성공적으로 시작을 나타내는 참조
点 "우리의 샘플 데이터를보십시오"2️⃣
3️⃣ "아니오"点 ". 우리는 탄성의 외부에서이 데이터를 공유하지 않습니다 우리가 기본적인 기능에 대한 사용 통계를 제공함으로써 탄성 스택을 개선하는 데 도움"
4️⃣ "데이터를 추가"点 "키바에 데이터를 추가"
보기를 입력 5️⃣
테스트
액세스의 nginx는 로그를 생성
curl -I "http://192.168.1.11"
키바의 데이터보기
인덱스 템플릿을 만들 1️⃣
2️⃣ 템플릿을 생성 할 인덱스의 이름을 입력합니다
3️⃣ 데이터보기 전에 CURL
후속 기사
이것은, EFK 후속 문서는 점진적으로 해제됩니다, 최초의 "EFK 가이드"시리즈 역할의 분리, 성능 최적화, 그리고 다른 많은 건조 제품을 포함, 그래서 계속 지켜봐 주시기 바랍니다!