日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
通常,日志被分散在储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。
集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。
通过我们需要对日志进行集中化管理,将所有机器上的日志信息收集、汇总到一起。完整的日志数据具有非常重要的作用:
1)信息查找。通过检索日志信息,定位相应的bug,找出解决方案。
2)服务诊断。通过对日志信息进行统计、分析,了解服务器的负荷和服务运行状态,找出耗时请求进行优化等等。
3)数据分析。如果是格式化的log,可以做进一步的数据分析,统计、聚合出有意义的信息,比如根据请求中的商品id,找出TOP10用户感兴趣商品。
开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成:
1)ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
在elasticsearch中,所有节点的数据是均等的。
2)Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到搜索,logstash带有一个web界面,搜索和展示所有日志。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
3)Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
为什么要用到ELK/h2>
一般我们需要进行日志分析场景是:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。
一个完整的集中式日志系统,需要包含以下几个主要特点:
ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。目前主流的一种日志系统。
日志处理步骤:
1).将日志进行集中化管理
2).将日志格式化(logstash)并存储到Elasticsearch软件中
3).对日志进行索引(Elasticsearch)
4).对前端数据进行展示(Kibana)
ELK部署
基本环境:
服务器1:node1/192.168.1.2 4G内存 安装E,K
服务器2:node2/192.168.1.3 4G内存 安装E,L,A
服务器3:Apache/192.168.1.1 2G内存 安装L
服务器1,2配置
1)设置主机名
2)配置域名解析(服务器1,2都配置)
3).监控java环境,是否为1.8版,如不满足,更新Java环境。
服务器1,2都需要安装elasticsearch软件
1).安装
3).创建数据存放路径并授权
4).启动elasticsearch并查看是否成功启动
5).分别在服务器1和2上查看节点信息
6).查看集群状态
安装elasticsearch-head插件
1).编译安装node-v8组件,安装时间比较长,40分钟左右
2).安装phantomjs组件
3).安装Elasticsearch-head组件
4).修改Elasticsearch主配置文件
5).重启服务
6).测试(node2访问也是一样的)
node2在访问时,需要输入node1的ip地址进行连接,此时浏览器显示的信息为上下显示node-1和node-2
然后打断即可(ctrl+c)
同上在加载完后输入(出现端口9600即可)
vim /etc/logstash/conf.d/system.conf
添加:
8、安装kibana组件(在node1上)
测试:
firefox http://192.168.1.2:5601
进入浏览器创建索引,名字为system-*,创建完毕可以看到图标和名字下方的字段。将鼠标悬停在字段上,可以显示add。
9、服务器node2(Apache)
1).安装httpd
2).安装logstash组件
3).编写配置文件apache_log.conf
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!