ELK日志架构一之ELK简介及Elasticsearch安装
2017-12-03 10:32
615 查看
随着分布式微服务的盛行,功能模块的拆分细化,无论对于开发还是运维,日志都是极为重要的。如何存储分析定位和查看日志,一百个公司有一百个做法。有的很少记录,有的日志等级不分,有的写入文本或扔到数据库后不管不问,等到用户投诉及发现问题,才会翻上一翻。
如何正确且优雅的记录日志呢?可能不少小伙伴都接触过,对于中小型互联网创业公司而言,ELK搭建日志分析系统是个非常不错的选择。
ELK平台是当前应用比较广泛的一套开源的实时日志分析解决方案。ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官网 https://www.elastic.co/products
架构图
Elasticsearch
Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
Logstash
Logstash 是开源的服务器端数据处理管道,能够同时 从多个来源采集数据、转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(我们的存储库当然是 Elasticsearch。)
Kiabana
Kibana 让您能够可视化 Elasticsearc
4000
h 中的数据并操作 Elastic Stack,因此您可以在这里解开任何疑问:例如,为何会在凌晨 2:00 被传呼,雨水会对季度数据造成怎样的影响。
工作流程
Logstash(shipper)实时监控并过滤收集到的每个服务的日志信息
Logstash(shipper)将收集到的日志(INFO、DEBUG、RROR、WARN等)分别发送给Redis
Logstash(indexer)按照日志分类分别从Redis读取日志信息并发送给ElasticSearch
Logstash(indexer)过滤出RROR日志通过邮件或其他webhook方式警告开发运维人员
Kibana读取ElasticSearch数据结合自定义搜索进行页面展示
ELK日志架构系列目标是完成日志架构 ELK(Elasticsearch+Logstash+Kibana+Redis)全流程部署及常规用法示例,柚子将记录自己的实操过程,以达到学习和回顾的目的。
安装前环境处理
当前操作系统版本为centos7.2,内核版本为3.10.0-514.26.2.el7.x86_64,而ElasticSearch要求JDK1.8以上,推荐内核版本3.5以上。
升级操作系统内核
1.导入key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2.安装elrepo的yum源
如何正确且优雅的记录日志呢?可能不少小伙伴都接触过,对于中小型互联网创业公司而言,ELK搭建日志分析系统是个非常不错的选择。
ELK平台是当前应用比较广泛的一套开源的实时日志分析解决方案。ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官网 https://www.elastic.co/products
架构图
Elasticsearch
Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
Logstash
Logstash 是开源的服务器端数据处理管道,能够同时 从多个来源采集数据、转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(我们的存储库当然是 Elasticsearch。)
Kiabana
Kibana 让您能够可视化 Elasticsearc
4000
h 中的数据并操作 Elastic Stack,因此您可以在这里解开任何疑问:例如,为何会在凌晨 2:00 被传呼,雨水会对季度数据造成怎样的影响。
工作流程
Logstash(shipper)实时监控并过滤收集到的每个服务的日志信息
Logstash(shipper)将收集到的日志(INFO、DEBUG、RROR、WARN等)分别发送给Redis
Logstash(indexer)按照日志分类分别从Redis读取日志信息并发送给ElasticSearch
Logstash(indexer)过滤出RROR日志通过邮件或其他webhook方式警告开发运维人员
Kibana读取ElasticSearch数据结合自定义搜索进行页面展示
ELK日志架构系列目标是完成日志架构 ELK(Elasticsearch+Logstash+Kibana+Redis)全流程部署及常规用法示例,柚子将记录自己的实操过程,以达到学习和回顾的目的。
ElasticSearch安装
ElasticSearch至少要求Java8环境,且推荐使用Oracle JDK version 1.8.0_131。所以,在插入Elasticsearch之前,一定要检查你服务器的Java环境。安装前环境处理
当前操作系统版本为centos7.2,内核版本为3.10.0-514.26.2.el7.x86_64,而ElasticSearch要求JDK1.8以上,推荐内核版本3.5以上。
升级操作系统内核
1.导入key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2.安装elrepo的yum源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm[/code] 3.安装内核yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
4.查看默认启动顺序,设置默认启动(从0开始计数)awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.8.10-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (0-rescue-7d26c16f128042a684ea474c9e2c240f) 7 (Core)grub2-set-default 0
5.重启服务reboot
安装jdk1.8
1.查看已经安装的jdkrpm -qa|grep jdk
2.卸载原jdkyum -y remove java-1.7.0-openjdk-1.7.0.95-2.6.4.0.el6_7.x86_64
3.去jdk官网下载jdk-8u144-linux-x64.tar.gz,解压
jdk官网http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.htmltar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/local/java/
安装完毕后在/etc/profile文件末尾添加export JAVA_HOME=/usr/local/java/jdk1.8.0_144 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
/etc/profile生效source /etc/profile
4.查看环境部署
下载安装Elasticsearch6.0.0
1.下载Elasticsearch6.0.0curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.tar.gz[/code] 2.解压到指定路径/usr/local下tar -xvf elasticsearch-6.0.0.tar.gz -C /usr/local/
3.进入解压目录,现在我们准备开始我们的节点和单个集群:cd /usr/local/elasticsearch-6.0.0/bin ./elasticsearch
4.运行es时要使用普通账号,若没有普通账户可以和博主一样创建一个账号adduser yolo passwd yolo # 输入新密码
5.修改一些配置及常见问题解决
去掉注释并修改config/elasticsearch.ymlcluster.name: yolo-search network.host: 0.0.0.0 http.port: 9200 # 默认端口
开启端口iptables -I INPUT -p tcp --dport 9200 -j ACCEPT
不可使用root执行,需要更改程序用户及用户组chown yolo:yolo -R elasticsearch-6.0.0/
常见问题:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/elasticsearch-6.0.0/bin/hs_err_pid32313.log
内存不够,需要修改jvm参数来加大内存。-Xms512g -Xmx512g
max number of threads [3882] for user [yolo] is too low, increase to at least [4096]
sudo vi /etc/security/limits.conf# 在文件末尾增加如下配置 yolo soft nofile 65536 yolo hard nofile 65536 yolo soft nproc 4096 yolo hard nproc 4096
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vi /etc/sysctl.conf# 添加 vm.max_map_count = 262144 # 执行命令 sysctl -p
执行bin/elasticsearch./elasticsearch
当执行到这里出现了started,那么恭喜你成功了!
登录http://你的IP:9200,会出现一段JSON格式数据。如图:
以上就是ELK日志架构一之ELK简介及Elasticsearch安装的全流程,如有错误,欢迎指正。
参考自
http://blog.51cto.com/itstyle/1983296
http://blog.csdn.net/senior_lee/article/details/54351320
相关文章推荐
- 日志系统ELK使用详解(三)--elasticsearch安装
- ELK 架构之 Elasticsearch 和 Kibana 安装配置
- ELK日志框架(1):安装Elasticsearch组建单服务器多节点集群
- 搭建ELK日志分析系统(一)-Elasticsearch安装
- ELK 日志管理平台之 ElasticSearch 安装
- ELK 架构之 Elasticsearch、Kibana、Logstash 和 Filebeat 安装配置汇总(6.2.4 版本)
- 微服务架构日志集中化 安装 EFK (Fluentd ElasticSearch Kibana) 采集nginx日志
- ELK大规模日志实时处理系统应用简介
- 从零搭建ELK实时日志分析平台(ElasticSearch, Logstash, Kibana)
- Centos7 之安装Logstash ELK stack 日志管理系统
- 中小型研发团队架构实践七:集中式日志ELK
- Docker <一> 架构简介与Linux上安装
- ELK(ElasticSearch, Logstash, Kibana)实现分布式日志
- ELK(ElasticSearch, Logstash, Log4j)系统日志搭建
- 架构之ELK日志分析系统
- ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
- ELK 日志收集实时分析大数据平台(简介)
- ELK日志管理之——elasticsearch部署
- ELK(ElasticSearch, Logstash, Kibana)搭建日志分析平台-Kibana篇
- 安装ELK时logstash出现[logstash.outputs.elasticsearch] Unknown setting 'host' for elasticsearch