应用FileBeat Kafka LogStash ElasticSearch Kibana 搭建一个日志分析系统
elk+redis 搭建nginx日志分析平台
logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录。其次,需要有个队 列,redis的list结构正好可以作为队列使用。然后分析使用elasticsearch就可以进行分析和查询了。
我们需要的是一个分布式的,日志收集和分析系统。logstash有agent和indexer两个角色。对于agent角色,放在单独的web机 器上面,然后这个agent不断地读取nginx的日志文件,每当它读到新的日志信息以后,就将日志传送到网络上的一台redis队列上。对于队列上的这 些未处理的日志,有不同的几台logstash indexer进行接收和分析。分析之后存储到elasticsearch进行搜索分析。再由统一的kibana进行日志web界面的展示。
下面我计划在一台机器上实现这些角色。
准备工作
- 安装了redis,开启在6379端口
- 安装了elasticsearch, 开启在9200端口
- 安装了kibana, 开启了监控web
- logstash安装在/usr/local/logstash
- nginx开启了日志,目录为:/usr/share/nginx/logs/test.access.log
1 下载各个安装包
https://www.elastic.co/cn/
2 kibanna安装及配置
(1)安装kibanna
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.3-linux-x86_64.tar.gz tar -zxvf kibana-5.6.3-linux-x86_64.tar.gz cd kibana-5.6.3-linux-x86_64/
(2)kibanna配置
vim config/kibana.yml # 将默认配置改成如下: server.port: 5601 server.host: "0.0.0.0" elasticsearch.url: "http://127.0.0.1:9200" kibana.index: ".kibana"
(3)启动kibanna
/bin/kibanna
3 安装及启动elasticSearch
(1) 下载https://www.elastic.co/downloads/elasticsearch
(2) 启动./bin/elasticSearch
4 安装及配置logstash
(1)下载zip安装包
https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.zip
(2)在config目录下创建一个配置文件,可命名为logstash.conf,输入以下内容:
input {
file {
path => "/data/web/logstash/logFile/*/*"
start_position => "beginning" #从文件开始处读写
}
# stdin {} #可以从标准输入读数据
}
定义的数据源,支持从文件、stdin、kafka、twitter等来源,甚至可以自己写一个input plugin。如果像上面那样用通配符写file,如果有新日志文件拷进来,它会自动去扫描。