ELK安装使用相关记录

0x00 ELK大概介绍

ELK就是elastic search+logstash+kibana,然后logstash通常还要配上beats,简单的逻辑是:beats -> logstash->elastic search ->kibana

  1. beats是轻量型的数据采集装置,采集好数据后发送给logstash
  2. logstash就像是一个日志搜集管道,里面带了一些日志格式的过滤插件,最后整合成统一格式的数据发送给elasticsearch
  3. elasticsearch拿到数据后存起来就可以开始根据配置进行搜索了,提供了restful的接口
  4. kibana作为开源通用的界面帮助我们快速的利用elasticsearch进行搜索

0x01 ELK安装

Ubuntu为例,现在官方提供了一系列的安装方式,可以直接参照官方文档进行安装即可。这里使用的是apt的安装方式:

  1. sudo apt-get install apt-transport-https
  2. echo “deb https://artifacts.elastic.co/packages/7.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
  3. sudo apt-get update && sudo apt-get install elasticsearch logstash kibana
  4. beats的话要根据实际采集的数据格式去下载,比如mysql的话去下载mysqlbeats

0x02 配置密码认证

  1. elasticsearch上新版本已经集成了xpack,进入到bin目录下,使用elasticsearch-setup-password interactive来交互性的设置密码,并且将密码记录下来
  2. kibana中需要配置es的user和password选项,并且注意kibana的basepath
  3. logstash中在output的es配置中配置正确的hosts、user、password选项,注意logstash的hosts可以接受域名,但是域名和端口必须能用IP访问,为了解决这个问题可以使用nginx代理来代理一层

0x99 java环境

ELK依赖于Java环境,官方说最好建议使用oracle jdk8,oracle现在下载jdk需要登陆注册,因此直接手工去下载包解压缩后手工配置。

  1. 创建java的目录:mkdir /usr/lib/jvm
  2. 下载并解压tar包:sudo tar -zxvf /home/Downloads/jdk-8u221-linux-x64.tar.gz -C /usr/lib/jvm
  3. 为了便于java版本管理,这里使用Linux包版本管理工具update-alternatives其本质是软连接的管理,因此我们直接将javahome做软连接
  4. sudo update-alternatives —install /usr/local/jdk jdk /usr/lib/jvm/jdk-8u22XXXXXX 300
  5. 然后将该软连接的jdk目录写入到环境变量中作为javahome:
    1
    2
    3
    4
    5
    #set oracle jdk environment
    export JAVA_HOME=/usr/local/jdk ## 这里要注意目录要换成自己解压的jdk 目录
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH

以后如果需要切换jdk版本,先通过install的方式注册jdk,然后通过命令:
update-alternatives —config jdk
来进行切换,install的时候后面的数字是优先级,在auto模式的时候有用默认根据数字大的优先作为版本使用