ELK 구축 환경 및 테스트

ELK 구축 환경 및 테스트

첫째, 문서 소프트웨어 버전을 필요 :

냠 데이터 소스 내 다른 블로그 게시물을 보려면 추가 냠 소스를 설치

(1) 두 개의 서버
(2) CentOS6.5
. (3) Filebeat5.6
. (4) Redis4.0.9
. (5) Logstash5.6.8
. (6) elasticsearch5.6.8
. (7)을 Kibana5.6.8 (Windows 시스템 시작)
. (8 )) 다음 grafana6.2.5 (윈도우 시스템을 시작

흐름을 디자인 :

⚠️ 참고 : 고가 - 저가 버전과의 호환성 문제, 버전이있을 것 사이의 모든 버전이 일치 보관해야합니다 예를 들어, 내가 서버에 배포 elasticsearch7가 발생, 당신은 실행할 수 있지만 디스플레이 키바의 키를 묻는 메시지가 표시됩니다 정보.

둘째, 원리 및 구성 :

(1) Filebeat

그것은 작동 :
지역 로그 데이터 수집을 위해 1) filebeat 만,이 개 서버에 너무 단 하나의 시작 filebeat을 적용하기 때문이다.
2) 각 filebeat 주로 지정된 출력 파일 검색을 달성하는 두 부분 광부와 겸용, 및 두 부분으로 이루어져있다.
시작 filebeat이 발견 된 파일의 로컬 구성 파일을 찾을 것이다 광부는 광부 수확기를 시작할 때 3) 수확기 로그 파일을 열어 libbeat를 보낸 다음, 이하에서 데이터 libbeat을 통합하여 (데이터베이스로 전송 레디 스 출력) 레디 스 인

- 네트워크에서 사진 -
로그 파일에 데이터를 입력 계속되면 읽기 레지스트리에서 때마다 오프셋 정보를 추가 할 수 있기 때문에 4) 수확기는, 데이터를 읽을 읽지 않습니다 읽을 때마다 있도록 , 판독 된 위치 데이터를 실행 알 수있을 것입니다.

data下面有一个registry,里面存放的已读数据的信息

参考文档:filebeat原理

配置:
1)

修改filebeat.yml中的input和output配置,input为本地日志文件的地址,output为redis的地址。
2)

input地址:/opt/logs
3)

redis output需要自己手动添加
hosts:ip为第二台服务器的ip地址,端口6379为redis的端口
key:由于redis是(k,v)格式,所以这边规定一下key,与后面配置的logstash中配置的key要一致。

(2)Redis
工作原理:(K,V)类型基于内存的数据库,处理数据量大,IO大的情况,支持每秒十几万的读写,有效的解决了数据库不能快速IO的问题。而且支持持久化到硬盘。

配置:
参考文档:Redis配置

除了以上博客中的内容,修改以下配置:
修改redis.conf

目的:redis监听所有的连接,redis其实只要监听来自filebeat服务器的数据即可,所以也可以改成filebeat服务器的ip地址

(3)logstash
工作原理:实时数据采集引擎,

处理流程:input(redis)—— Filter —— Output(elasticsearch)
Input:从数据源获取数据
Filter:处理数据,如格式转换
Output:数据输出到相应插件,如elasticsearch
在对logstash进行调优的时候主要是pipeline的线程数,由于没有接触调优,暂时挂一张图。

配置:
1)在安装目录的bin目录下添加一个新的文件,名字任意,我的叫redis.log,因为数据来自于redis
在里面添加
input {
redis {
host => "127.0.0.1"
port => "6379"
data_type => "list"
db => 2
batch_count => 1
#type => "log"
key => "nginx-log"
}
}
filter {
grok {
match => { "message" => "%{IPORHOST:remote_addr} - - [%{HTTPDATE:time_local}] "%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}" %{INT:status} %{INT:body_bytes_sent} %{QS:http_referer} %{QS:http_user_agent}"
}
}
}

output {
elasticsearch {
hosts => "127.0.0.1:9200"
index => "nginx-log"
}
}

Input:表示数据输入来源的信息,127.0.0.1是因为在同一个服务器中,key与filebeat中的key保持一致
filter:处理数据,转换格式
Output:表示数据输出的信息,index是之后在Kibana中需要用到的索引名,从logstash过去的数据索引名为nginx-log

遇到的问题:Logstash could not be started because there is already another instance using the configured data directory. If you wish to run multiple instances, you must change the "path.data" setting.
原因:之前运行的instance有缓冲,保存在path.data里面有.lock文件,删除掉就可以。
解决方法:data目录下通过ls -alh找到.lock文件并删除

(4)elasticsearch
工作原理:看我的另外一篇博客elastisearch分布式原理

配置:
这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,建议创建一个单独的用户用来运行ElasticSearch。

1)修改elasticsearch.yml文件
添加数据地址、日志地址,去掉注释,这两个地址需要自己新建

修改绑定ip,允许任何ip访问

其他问题可以在以下两个博客找到解答:
常见问题解决
报bootstrap checks failed错误

2)如果遇到lock的情况,需要杀死进程重新运行,因为elasticsearch基于java
所以可以用jps查看进程
kill -9 杀死进程

(5)kibana可视化界面
因为Kibana基于node,所以需要先配置nodejs环境,其他过程很简单,也不会遇到什么问题,我就直接贴图了

(6)grafana图像化界面
过程同样简单,直接通过以下链接配置
1)在windows下安装运行grafana
2)grafana与elasticsearch结合

三、启动

(1) filebeat
1)cd /usr/local/install/filebeat-5.6.8-linux-x86_64
2)./filebeat -e

(2) redis
配置中的一个问题
vi /etc/redis/redis.conf

bind 0.0.0.0表示可以监听来自任何地址的内容
因为我的数据是从filebeat发送到redis,所有bind可以改成filebeat的地址,只监听来自filebeat的数据

1)cd /etc/redis/
2)redis-server redis.conf //运行redis.conf的配置文件
3)ps -ef | grep redis //查看redis进程,检查是否启动
4)redis-cli //客户端连接

(3) logstash
1)cd /usr/local/install/logstash-5.6.8/bin

2)./logstash -f redis.conf

(4)elasticsearch
注意:为了安全,只能使用普通用户启动
1)cd /usr/local/install/elasticsearch
2) ./elasticsearch
3)测试:ip:9200

(5) kibana
在windows系统中安装
1) 运行kibana.bat
2) 访问:localhost:5601

추천

출처www.cnblogs.com/xushun/p/11203200.html