ELK

ELK

ELK(Elasticsearch文本搜索引擎/Logstash日志收集插件/Kibana是Elasticssearch的Web控制台)三个软件的结合。

系统架构

ELK日志采集与分析系统的主要架构包括日志源、日志采集、数据缓存、数据格式化、日志存储和数据展示六个层面。

  • 日志源:是系统分析的数据获取来源,日志形式可以有多种:本地文件、syslog数据、Netflow日志或Windows主机日志等。
  • 日志采集:是将日志源数据采集到系统中,可以根据日志源格式的不同,指定不同的采集方式。在采集本地日志文件和syslog数据时,通常使用logstash shipper进行日志数据采集。部分特殊日志会选择使用beat采集。
  • 数据缓存:使用logstash shipper采集日志时,为了保证日志数据的完整性,引入了redis缓存shipper采集来的日志数据,数据缓存的意义在于,及时ES集群出现故障,数据无法写入ES时依然可以存储在redis中,待ES集群恢复正常后再写入。
  • 数据格式化:logstash shipper会将日志整条读取采集,为了便于存储和分析,使用logstash indexer对整条日志做字段分割的格式化处理,完成格式化后的日志写入ES集群。如数据源为Netflow数据或者使用beat做数据采集,则数据采集和数据格式化的功能都集中在logstash或beat中。
  • 日志存储:将采集并完成格式化的日志数据统一存储在ElasticSearch集群中。数据存储在逻辑上将数据根据index划分,每一个index下存储一类日志数据;在真实的物理存储中,所有的数据被划分为一个个shard,存储在ElasticSearch集群各成员主机的路径下。
  • 数据展示:日志存储至ES集群后,利用kibana将ES中存储的日志数据做可视化展示;利用“弋搜日志数据管理和分析面板”可以对原始数据进行分析,并且将分析逻辑和分析结果以各种图表的形式展示。

Elasticsearch

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。其特点有:

  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎-做不规则查询
  • 可以扩展到上百台服务器,处理PB级结构化或非结构化数据

配置Elasticsearch

  1. 将安装包上传到linux服务器的/home/elk中

    mkdir elk
  2. 修改es的配置和jvm的配置文件
    ```bash
    cd config
    vim jvm.options
    将jvm.options文件的第22行和23行改为

-Xms128m(128m自定义大小,默认为4g,如果仅作测试不用设置太大,设置太大的话启动不了)


```bash
vim Elasticsearch.yml

  1. 修改权限
    在安装包的最顶级目录下新建一个data文件夹,并修改所有文件夹权限
    mkdir data
    chmod -R 777 *
  2. 修改linux配置,配置ES能够占用的最大线程数、最大内存数、最大文件数
    vim /etc/security/limits.conf
vim /etc/sysctl.conf
sysctl -p #使配置生效

  1. 新建一个用户用于运行elk,使用root会报错(如果被黑客攻破将可以使用root权限,为了安全起见不使用root运行elk)

    adduser elk
    su elk #切换为elk用户执行
    cd bin  #进入到bin目录下
    ./elasticsearch
  2. 通过http://本机ip:9200访问得到下图证明搭建成功

配置kibana

  1. 将安装包上传到linux的/home/elk下

  2. 配置config下的kibana.yml文件(4个地方需要修改)

  3. 启动kibana

  4. 访问kibana的Web界面,在搜索栏输入elasticsearch服务器所在ip地址:5601,出现以下界面说明kibana配置成功

配置grafana


   转载规则


《ELK》 fightingtree 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录