最近因公司项目增多,且环境也越来复杂,开发人员找我查看错误日志越来越频繁,心里便念想到ELK,心之所想,念之所达,快来get一项新技能吧
1、系统架构组成
laravel日志:日志源通过filebeat将日志写进redis中间件
logstsh:logstash通过input将redis数据拿来分析,通过其filter模块分析所需要的语句,然后输出到elasticsearch 3.elasticsearch 接收logstash发送过来的数据,并提供了一个分布式多用户能力的全文搜索引擎
Kibana是一个优秀的前端日志展示框架,它可以非常详细的将日志转化为各种图表,为用户提供强大的数据可视化支持。
二、各个服务的ip地址
三、laravel日志服务器配置:
配置filebeat yum源文件
安装filebeat
配置filebeat配置文件
四、redis服务器
安装redis
配置redis
五、配置logstash服务器
配置logstash yum源
logstash配置文件
laravel的实例日志为
注意:我们只想把ERROR的信息提取出来,所以logstash的配置文件中把level 为ERROR的筛选了出来
六、配置elasticsearch服务器
配置elasticsearch yum源
安装elasticsearch
配置elasticsearch
七、配置kibana服务
八、使用nginx反代kibana
九、访问kibana配置索引
启动所以服务后再次访问kibana,查看效果。
大功告成~,以后可以让开发自己看错误日志咯
总结:
此次因为服务器数量有限,(不敢在正式服务器上乱搞= =)只使用了两台服务器,php的laravel日志和filebeat服务一台,作为写入源,Redis,Elasticsearch、Logstash、Kibana,一台作为日志处理服务器,(如果做多台的话,监听地址需要改变)。跑一段时间确认没问题再上正式。
监听的地址最好都使用内网地址,防止被攻击。
领取专属 10元无门槛券
私享最新 技术干货