专栏首页bluesummerELK基础配置

ELK基础配置

前言

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

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

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

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

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

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

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

ElasticSearch

配置修改

配置文件路径:/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

设置密码:

bin/elasticsearch-setup-passwords interactive

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

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

后台启动

启动:/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]

原因: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

配置修改

配置文件路径: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" 

后台启动

启动(加上&):
kibana-4.5.2-linux-x64/bin/kibana &

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

展示

在IndexManage  中 Create IndexPattern 这一步是为了将日志的Index展示到Discover中去
在Discover中查看系统日志

FileBeat

配置文件

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: ~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用Windbg来分析.Net程序的dump

    介绍 1. 什么是Windbg WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还...

    蓝夏
  • 使用FluentScheduler和IIS预加载在asp.net中实现定时任务管理

    蓝夏
  • 用Token令牌维护微服务之间的通信安全的实现

    在微服务架构中,如果忽略服务的安全性,任由接口暴露在网络中,一旦遭受攻击后果是不可想象的、 保护微服务键安全的常见方案有:1.JWT令牌(token) 2.双向...

    蓝夏
  • Oracle AWR特性描述

    AWR是Automatic Workload Repository的简称,中文叫着自动工作量资料档案库。既然是仓库,又是保存负载数据,所以保存的是数据库性能相关...

    Leshami
  • ASP.NET MVC5中的Model验证

    Model验证是ASP.NET MVC中的重要部分,它主要用于判断输入的数据类型及值是否符合我们设定的规则,这篇文章就介绍下ASP.NET MVC中Model验...

    雪飞鸿
  • Redis 数据结构之set无序集合

    Devops海洋的渔夫
  • [Linux] Nginx 提供静态内容和优化积压队列

    陶士涵
  • 阿里技术分享:深度揭秘阿里数据库技术方案的10年变迁史

    本文原题“阿里数据库十年变迁,那些你不知道的二三事”,来自阿里巴巴官方技术公号的分享。

    JackJiang
  • [经验分享]ManicTime-统计时间去那了

    作者:李长太的学习人生 来源:http://blog.sina.com.cn/s/blog_702912b20100v8r0.html 调整:总结比较深刻,我重...

    程序员小王
  • GoBrut破解型僵尸网络悄然再度来袭

    Go语言因为跨平台且易上手,越来越受到攻击者的青睐。2019年年初[1],一个由Go语言编写的新型恶意软件家族问世,称为GoBrut(又名StealthWork...

    绿盟科技研究通讯

扫码关注云+社区

领取腾讯云代金券