elk日志分析系统_分布式架构师必备--ELK日志收集分析系统

引子

现在最流行的微服务和分布式系统架构我想小伙伴们都很熟悉了,不管是Dubbo还是Spring Cloud我们更多是在解决服务治理,容错,配置等方面的问题,但一个重要的问题也不能忽视,它就是日志。尤其是对生产环境上的监控和调试日志更是重中之重。那么ELK便是我们分布式日志收集跟踪分析的最佳解决方案。

一、ELK搭建篇

ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。

Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。

Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(如MQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。

Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据

693b694c0d124e4afcefa863a144193d.png

环境

Centos6.5 两台IP:192.168.1.202 安装: elasticsearch、logstash、Kibana、Nginx、Http、Redis 192.168.1.201 安装: logstash

安装

安装elasticsearch的yum源的密钥(这个需要在所有服务器上都配置)# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch配置elasticsearch的yum源# vim /etc/yum.repos.d/elasticsearch.repo在elasticsearch.repo文件中添加如下内容[elasticsearch-5.x]name=Elasticsearch repository for 5.x packagesbaseurl=https://artifacts.elastic.co/packages/5.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

安装elasticsearch的环境

安装elasticsearch# yum install -y elasticsearch安装java环境(java环境必须是1.8版本以上的)wget http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpmrpm -ivh jdk-8u131-linux-x64.rpm 验证java安装成功java -versionjava version "1.8.0_131"Java(TM) SE Runtime Environment (build 1.8.0_131-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

创建elasticsearch data的存放目录,并修改该目录的属主属组

# mkdir -p /data/es-data (自定义用于存放data数据的目录)# chown -R elasticsearch:elasticsearch /data/es-data

修改elasticsearch的日志属主属组

# chown -R elasticsearch:elasticsearch /var/log/elasticsearch/

修改elasticsearch的配置文件

# vim /etc/elasticsearch/elasticsearch.yml找到配置文件中的cluster.name,打开该配置并设置集群名称cluster.name: demon找到配置文件中的node.name,打开该配置并设置节点名称node.name: elk-1修改data存放的路径path.data: /data/es-data修改logs日志的路径path.logs: /var/log/elasticsearch/配置内存使用用交换分区bootstrap.memory_lock: true监听的网络地址network.host: 0.0.0.0开启监听的端口http.port: 9200增加新的参数,这样head插件可以访问es (5.x版本,如果没有可以自己手动加)http.cors.enabled: truehttp.cors.allow-origin: "*"启动elasticsearch服务

启动服务

 /etc/init.d/elasticsearch startStarting elasticsearch: Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 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 2060255232 bytes for committing reserved memory.# An error report file with more information is saved as:# /tmp/hs_err_pid2616.log [FAILED]这个报错是因为默认使用的内存大小为2G,虚拟机没有那么多的空间修改参数:vim /etc/elasticsearch/jvm.options-Xms512m-Xmx512m再次启动/etc/init.d/elasticsearch start查看服务状态,如果有报错可以去看错误日志 less /var/log/elasticsearch/demon.log(日志的名称是以集群名称命名的)创建开机自启动服务# chkconfig elasticsearch on

注意事项

需要修改几个参数,不然启动会报错vim /etc/security/limits.conf在末尾追加以下内容(elk为启动用户,当然也可以指定为*)elk soft nofile 65536elk hard nofile 65536elk soft nproc 2048elk hard nproc 2048elk soft memlock unlimitedelk hard memlock unlimited继续再修改一个参数vim /etc/security/limits.d/90-nproc.conf将里面的1024改为2048(ES最少要求为2048)* soft nproc 2048另外还需注意一个问题(在日志发现如下内容,这样也会导致启动失败,这一问题困扰了很久)[2017-06-14T19:19:01,641][INFO ][o.e.b.BootstrapChecks ] [elk-1] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks[2017-06-14T19:19:01,658][ERROR][o.e.b.Bootstrap ] [elk-1] node validation exception[1] bootstrap checks failed[1]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk 解决:修改配置文件,在配置文件添加一项参数(目前还没明白此参数的作用)vim /etc/elasticsearch/elasticsearch.yml bootstrap.system_call_filter: false

通过浏览器请求下9200的端口,看下是否成功

先检查9200端口是否起来netstat -antp |grep 9200tcp 0 0 :::9200 :::* LISTEN 2934/java浏览器访问测试是否正常(以下为正常)# curl http://127.0.0.1:9200/{ "name" : "linux-node1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值