30-elk.rst.txt 3.86 KB
elk日志系统
===============

ELK组合是日志系统的经典组合。但是Logstash是java程序,占用内存资源比较大,前端将其换成轻量级的filebeat。haproxy放在主节点上做代理转发。

filebeat(日志收集)+ elasticsearch(日志存储搜索)+kibana(ui展示)+haproxy(代理转发)

安装
------------------------------------------

离线安装包:  smb://192.168.9.1/公共模块/繁星/繁星二代/自检系统/(elk_tx1、elk_server、haproxy_tx1)

filebeat使用源码放在主机上编译。 elk三个工程使用官方下载的tar.gz的包。都是java程序,直接就能运行。

繁星2代已编译好filebeat,其他平台需按照下面步骤编译:

filebeat编译安装参考:

https://blog.csdn.net/lk142500/article/details/79535849

ubuntu14安装golang1.10:

https://www.cnblogs.com/senlinyang/p/8777384.html


配置
---------------------------------------------

elasticsearch-6.4.0配置
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

.. code-block:: shell

  # 修改 elasticsearch-6.4.0/config/elasticsearch.yml
  # 开放所有ip访问
  network.host: 0.0.0.0

  # 修改系统参数,否则运行会报错
  vi /etc/sysctl.conf 
  vm.max_map_count=655360
  sysctl -p

kibana-6.4.0-linux-x86_64配置
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

.. code-block:: shell

  # 修改 kibana-6.4.0-linux-x86_64/config/kibana.yml
  # 开放所有ip访问
  server.host: "0.0.0.0"
  # 配置elasticsearch的访问地址
  elasticsearch.url: "http://127.0.0.1:9200"

filebeat配置
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

.. code-block:: shell

  - type: log
  
    # 改成true
    enabled: true
  
    # 配置日志路径,可配置多个,支持通配符但层级格式必须相符
    paths:
      - /root/Log/Ops/*/*.log
      - /root/Log/VASvr/*/*.log
  
    # 日志编码格式。如果不一致,配置两个《- type: log》块。
    encoding: gbk

    # 本机标签,在kibana搜索时可以以beat.name为过滤条件
    name: "myname-192.168.5.99"

haproxy配置
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

.. code-block:: shell

  # 编辑/etc/haproxy/haproxy.cfg 在末尾增加下面配置
  # 将本机所有9200端口数据转发至服务器9200端口

  listen elastic_proxy
        bind 0.0.0.0:9200
        mode tcp
        server s1 192.168.9.133:9200


使用
------------------------------------------------------

kibana访问地址: http://ip:5601

quick start
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Discover是查看、搜索日志的主要页面。如果有filebeat上报日志,第一次进入Discover会自动跳转,创建Index Patterns。

.. image:: ./images/elk-01.png

.. image:: ./images/elk-02.png

创建完毕后,在Discover中可以看到日志内容了,鼠标移到message,点add添加到“selected fields”中,日志内容看起来会清晰些。

.. image:: ./images/elk-03.png

Management->Elasticsearch->Index Management中会自动生成类似“filebeat-7.0.0-alpha1-2018.09.29”的行。

进入Management->Kibana->Index Patterns可查看、删除、重新创建Index Patterns

仅以上配置,利用搜索栏和Add a filter, 以主机、文件名、时间、关键字等等组合条件,就能满足绝大多数需求。

其他使用技巧在下面补充

kibana页面上的日志搜索技巧
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

kikana Discover页面的搜索栏支持的查询语法名叫Lucene query。elasticsearch底层使用Lucene,api和kibana都支持Lucene语法。

lucene query语法参考:https://blog.csdn.net/feifantiyan/article/details/54411183

下面列出几个使用实例:

- 查找beat.name为8.133的设备上日志文件路径中包含"Ops/2018-9-30"的日志

.. code-block:: shell

  source:?*\/Ops\/2018-09-30?* AND beat.name:8.133