前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ELK基础配置

ELK基础配置

作者头像
蓝夏
发布2019-11-11 13:37:51
1.2K0
发布2019-11-11 13:37:51
举报
文章被收录于专栏:bluesummer

前言

近期在研究日志系统的设计,感觉现在公司的子系统和接口太多了,日志看不过来,就想着有没有一种方法可以把各个程序的日志组合到一起。于是乎就搜到了ELK。开始对ELK的概念完全搞不懂,就照着各个平台文档一顿安装和研究。终于搞明白了ELK这套系统的大致流程。

ELK即:Elasticsearch、Logstash、Kibana的简称。

简单介绍来说:Elasticsearch用来存储日志,Logstash用来搜集和过滤日志,Kibana用来展示日志。

为什么用Elasticsearch存储日志呢,它是个搜索引擎,可以存储海量数据,可以各种查询并且速度很快。

Logstash可以搜集和分析日志,但是它占的内存和cpu过大,所以我最终选择了研究FileBeat替代Logstash。日志搜集工具的工作流程就是在各个产生日志的服务器上安装该工具,然后它负责从数据库文件系统或者mq等地方搜集日志并通过http发送到ElasticSearch

ELK里面涉及到的每个工具的功能都相当丰富和强大,远不止日志记录这一功能。后面还要继续学习

关于ElK的基本安装和使用本文就不做介绍了,因为网上很多。记录一下基础的配置和常见的问题防止以后忘记,也留给需要的人希望给你们一些帮助。后面遇到新的坑和问题会继续完善该博客

ElasticSearch

配置修改

代码语言:javascript
复制
配置文件路径:/config/elasticsearch.yml

#开启外网访问
network.host: 0.0.0.0

node.name: node-1

cluster.initial_master_nodes: ["node-1"]

http.port:9200

#启用密码验证
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

设置密码:

代码语言:javascript
复制
bin/elasticsearch-setup-passwords interactive

接下来系统将会提示为几个用户挨个设置密码

执行该命令的前提是配置文件启用了密码验证

后台启动

代码语言:javascript
复制
启动:/elasticsearch -p /tmp/elasticsearch-pid -d

关闭:cat /tmp/elasticsearch-pid 
展示:pid
kill -9 pid

报错

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

代码语言:javascript
复制
原因:elasticsearch用户拥有的内存权限太小,至少需要262144:
解决方案:

执行命令:
sysctl -w vm.max_map_count=262144

查看结果:
sysctl -a|grep vm.max_map_count
显示:vm.max_map_count = 262144

/etc/sysctl.conf文件最后添加一行 vm.max_map_count=262144 。否则重启服务器配置将失效

Kibana

配置修改

代码语言:javascript
复制
配置文件路径:config/kibana.yml
server.host:"0.0.0.0" #用于外网访问

#配置elasticsearch的地址
elasticsearch.hosts: ["http://localhost:9200"]  

#es开启授权后配置es的用户名和密码
elasticsearch.username: "elastic"
elasticsearch.password: "123456"

#中文支持 
i18n.locale: "zh-CN" 

后台启动

代码语言:javascript
复制
启动(加上&):
kibana-4.5.2-linux-x64/bin/kibana &

退出:
 ps -ef|grep kibana
 kill -9 pid

展示

代码语言:javascript
复制
在IndexManage  中 Create IndexPattern 这一步是为了将日志的Index展示到Discover中去
在Discover中查看系统日志

FileBeat

配置文件

代码语言:javascript
复制
filebeat.inputs:
    enabled: true
    # 解决中文乱码
    encoding: GB2312
    paths:
      D:\Logs\TopShelf\AllBizReportConsumerEmqJob\*\*.txt 
     
# 正则表达式 The regexp Pattern that has to be matched. The example pattern matches all lines starting with [
multiline.pattern: '^时间'
# true 或 false;默认是false,匹配pattern的行合并到上一行;true,不匹配pattern的行合并到上一行
multiline.negate: true
# Note: After is the equivalent to previous and before is the equivalent to to next in Logstash
multiline.match: after
#匹配结尾
#multiline.flush_pattern: 'End event'
#合并最大行,默认500
multiline.max_lines: 50
#一次合并事件的超时时间,默认5s,防止合并消耗太多时间甚至卡死
multiline.timeout: 5s

setup.kibana:
    host: "122.51.251.177:5601"

output.elasticsearch:
    hosts: ["122.51.251.177:9200"]  
    # Optional protocol and basic auth credentials.
    #protocol: "https"
    username: "elastic"
    password: "123456"

processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • ElasticSearch
    • 配置修改
      • 设置密码:
        • 后台启动
          • 报错
          • Kibana
            • 配置修改
              • 后台启动
                • 展示
                • FileBeat
                  • 配置文件
                  相关产品与服务
                  Elasticsearch Service
                  腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档