MAC环境下ELK搭建教程

一、什么是ELK

1、ELK:

即是Elasticsearch、Logstash、Kibana四者的结合,是一套开源的分布式日志管理方案。

Elasticsearch:

是基于 lucene 的开源搜索引擎。

Logstash:

 

 

MAC环境下ELK搭建教程

 

是一个应用程序日志、事件的传输、处理、管理和搜索的平台。

Kibana:

是一个功能强大的 Elasticsearch 数据显示客户端。

工作流程:

基于公司项目所构建的环境,日志采集处理流程为:

Logback(采集输出实时日志)->Logstash(收集,过滤处理,管理)->Elasticsearch(持久化)->Kibana(可视化展示)

二、搭建流程

此篇文档基于MAC环境下安装,对类linux环境参考价值较大,其他操作系统可根据文档提醒的细节查找解决办法。

下载:

如果已装有homebrew,这里建议使用homebrew安装Elasticsearch和kibana,可以免去很多复杂的配置。

Elasticsearch:

结合具体情况,在指定的目录下下载,此篇文档中在系统home目录下。

执行命令:

brew install elasticsearch

若homebrew一直处于uodating的状态,建议可以切换一下镜像,执行命令:

git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

出现截图中的情况即为下载成功

 

MAC环境下ELK搭建教程

验证是否成功安装可以使用命令查看Elasticsearch是否能够启动:

brew services start elasticsearch

 

MAC环境下ELK搭建教程

 

在浏览器中输入:localhost:9200,出现一下页面即为安装且启动成功。

 

MAC环境下ELK搭建教程

Kibana:

kibana同样使用homebrew下载,与elasticsearch的安装大同小异,不过kibana配置较少且简单,直接从官网下载无妨。

执行安装命令:

brew install kibana

执行启动命令:

brew services start kibana

 

MAC环境下ELK搭建教程

Logstash:

logstash不建议使用homebrew安装,这里有个坑,但也有可能是homebrew版本问题,在homebrew下载的logstash下不存在bin文件夹,大家尽量绕坑而行吧。

可以选择去官网自行下载:

https://www.elastic.co/downloads/logstash

 

MAC环境下ELK搭建教程

 

三、文件配置

Elasticsearch:

可以使用vim,找到elasticsearch下的elasticsearch.yml文件

vim /usr/local/etc/elasticsearch/

将圈住的字段的注释取消,host与port见名知意,即为elasticsearch服务对应的地址与端口号。分别默认为127.0.01与9200。

其他配置字段详情可见文档:

http://www.cnblogs.com/xiaochina/p/6855591.html

 

MAC环境下ELK搭建教程

 

MAC环境下ELK搭建教程

 

Logstash:

找到下载的logstash文件夹,找到config目录,追寻到logstash.yml配置文件下。

logstash具体配置详情可见官方文档:

input:   

https://www.elastic.co/guide/en/logstash/current/input-plugins.html

filter:

https://www.elastic.co/guide/en/logstash/current/filter-plugins.html

output:

https://www.elastic.co/guide/en/logstash/current/output-plugins.html

// 从logback输入到logstash日志配置
input {
     tcp {
        host => "127.0.0.1"              // 填写日志源实际host与port
        port => 8000
        mode => "server"                 // server or client
        ssl_enable => false
    }
}
// filter,暂不考虑



// 输出,可以指定具体输出elasticsearch的具体地址
output {
  elasticsearch {
    hosts => ["http://127.0.0.1:9200"]   // 这个字段值为一个数组,可填入多个host
    index => "log-test"                  // 创建的index-partern名,即索引名
    manage_template => true              // 是否采用系统默认模版
    template_overwrite => true           // 若选择新模版是否重写覆盖模版
  }
  stdout {
   codec => rubydebug { }
  }
  
}

 

启动命令:

在所下载logstash的目录下,执行logstash启动服务的命令:

./bin/logstash -f config/logstash.conf

(-f后的路径,可选择你想要执行的配置文件)

 

 

 

Kibana:

同上找到kibana目录下的kibana.yml文件,指定接收的eslaticsearch的端口。

sudo vim /usr/local/etc/kibana/kibana.yml

将截图中对应字段的注释取消,根据实际情况修改为所期望填入的端口与地址。

 

MAC环境下ELK搭建教程

 

 

启动命令:

homebrew services start kibana

Logback:

项目日志源同样需要配置,使项目日志能够实时地传输到logstash。在项目中resource目录下,找到logback.xml文件。

追加一条<appender>配置记录

 

<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>127.0.0.1:8000</destination>
        <!-- encoder is required -->
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>

logger便签配置追加一条appender-ref,ref值应与上文中定义的name值一致。

<logger name="org.springframework" level="INFO" additivity="false">
        <appender-ref ref="console" />
        <appender-ref ref="thirdPartyAppender" />
        <appender-ref ref="stash" />
</logger>

 

配置稍微有点复杂,但我们根据logback->logstash->eslaticsearch->kibana的思路来就会发现四者的配置是相关联的,带着这个目的修改配置会简答清晰很多。

配置成功后,访问kibana即可查看logback收集的实时日志。

 

四、最终效果

1、logback能够实时将日志推送到logstash,logstash成功接收到日志

 

 

MAC环境下ELK搭建教程

 

2、logstash将日志推送到Elasticsearch,kibana接收并在前端页面展示。

 

 

MAC环境下ELK搭建教程