现在基本上有一定规模负载的项目都会用分布式来部署项目,分布式带来的好处自然就是很直观的扩大了项目的负载能力,但是随之而来的弊端就是在运维部署以及维护时候的复杂度直线上升,一个典型的例子就是项目的日志收集变得困难重重,试想如果线上的一个业务出现了问题,得去每一台机器上的日志去挨个grep……
目前处理这种分布式日志的做法大约有三种:
- 机器数不是很多的话,不是不可以挨个去找错误发生的位置,然后定位。
- 机器数较多的话,就得写脚本然后每次设定参数去每一台机子上吧相关的日志文件抓取过来,然后放到一起grep。
- 搭建一套自己的日志收集系统,把需要的日志通过这个系统收集起来,然后经过处理放入类似redis、mongo、elasticsearch的数据库里面,一方面可以很方便的查看日志,另一方面还可以通过大数据计算来获取一些有用的信息,一举两得
我选择了elastic公司的ELK搭建系统,相对来说该系统操作起来比较方便,elasticsearch也是一个很好用的索引型数据库,话不多说从零开始搭建。
系统:centOS
1.安装elasticsearch:
https://www.elastic.co/cn/downloads/elasticsearch,进去之后可以选择相应的格