30-elk.rst 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配置

# 修改 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配置

# 修改 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配置

- 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配置

# 编辑/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。

./images/elk-01.png ./images/elk-02.png

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

./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"的日志
source:?*\/Ops\/2018-09-30?* AND beat.name:8.133