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\*\*\*.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: "****:5601"
#允许自定义索引名称
setup.ilm.enabled: auto
#滚动更新别名,和pattern最终拼在一起,滚动更新是00001会自增
setup.ilm.rollover_alias: "filebeat-testing"
setup.ilm.pattern: "{now/d}-000001"
#允许自动生成模板
setup.template.enabled
#可以覆盖模板
setup.template.overwrite: true
#索引模板名称
setup.template.name: "filebeat-testing"
#索引模板匹配策略
setup.template.pattern: "filebeat-testing-%{[agent.version]}-*"
output.elasticsearch:
hosts: ["*.*.*.*:9200"]
# Optional protocol and basic auth credentials.
#protocol: "https"
username: "elastic"
password: "123456"
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
windows启动
powershell跳转至下载目录,执行命令
.\filebeat -e -c filebeat.yml
Docker配置###
version: '3.0'
services:
elasticsearch:
image: 'docker.elastic.co/elasticsearch/elasticsearch:7.5.1'
container_name: elasticsearch01
ports:
- "9200:9200"
- "9300:9300"
volumes:
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
- esdata01:/usr/share/elasticsearch/data
environment:
- node.name=es01
- cluster.initial_master_nodes=es01
- xpack.security.enabled=true
- xpack.security.transport.ssl.enabled=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
kibana:
image: 'docker.elastic.co/kibana/kibana:7.5.1'
ports:
- "8005:5601"
volumes:
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
environment:
SERVER_NAME: kibana
ELASTICSEARCH_HOSTS: http://elasticsearch01:9200
ELASTICSEARCH_USERNAME: "elastic"
ELASTICSEARCH_PASSWORD: "backer2019"
I18N_LOCALE: zh-CN
depends_on:
- elasticsearch
volumes:
esdata01:
driver: local
Docker-filebeat###
version: "3"
services:
filebeat:
image: myfilebeat
# image: docker.elastic.co/beats/filebeat:7.5.1
restart: always
container_name: filebeat
volumes:
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
- filebeatdata:/usr/share/filebeat/data
- /mnt/data/filebeat/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /mnt/data:/usr/share/filebeat/logs
environment:
- output.elasticsearch.hosts=["elasticsearch内网url:9200"]
- strict.perms=false
volumes:
filebeatdata:
myfileeat-Dockerfile###
FROM docker.elastic.co/beats/filebeat:7.5.1
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
ELK基础配置的更多相关文章
- ELK-6.5.3学习笔记–elk基础环境安装
本文预计阅读时间 13 分钟 文章目录[隐藏] 1,准备工作. 2,安装elasticsearch. 3,安装logstash. 4,安装kibana 以往都是纸上谈兵,毕竟事情也都由部门其他小伙伴承 ...
- StackExchange.Redis帮助类解决方案RedisRepository封装(基础配置)
本文版权归博客园和作者吴双本人共同所有,转载和爬虫,请注明原文地址.http://www.cnblogs.com/tdws/p/5815735.html 写在前面 这不是教程,分享而已,也欢迎园友们多 ...
- Hibernate 基础配置及常用功能(三)
本章重点讲述Hibernate对象的三种状态以及如何配置二级缓存 有关Hibernate的三种状态如何相互转换网上都能查到,官方文档描述的也比较详细.这里主要是针对几个重点方法做代码演示. 一.状态转 ...
- Emacs学习心得之 基础配置
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础配置 1.前言2.基础配置 一.前言 本篇博文记录了Emacs的一 ...
- nginx 的基础配置[转]
nginx 的基础配置 分类: 工具软件2013-11-13 23:26 11人阅读 评论(0) 收藏 举报 目录(?)[-] 管理配置文件 全局配置 虚拟机server配置 location配置 ...
- freeRadius 基础配置及测试
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- Oracle 10g DataGuard手记之基础配置
DataGuard为企业数据的高可用性,数据安全以及灾难恢复提供支持,一般由一个primary db与几个物理或逻辑standby db组成一个DataGuard配置. 系统环境 操作系统为windo ...
- SpringMVC最基础配置
SpringMVC和Struts2一样,是前后台的一个粘合剂,struts2用得比较熟悉了,现在来配置一下SpringMVC,看看其最基础配置和基本使用.SpriingMVC不是太难,学习成本不高,现 ...
- 使用Java管理Azure(1):基础配置
Azure针对Java开发人员提供了非常丰富的开发库,开发工具,和相关插件,让你通过Java对Azure进行服务管理和开发,本文第一步先介绍如何快速的配置Java开发工具,主要针对目前比较流行的Ecl ...
随机推荐
- 转载【2017-05-20】OpenWrt 打印机共享专用固件 (trunk, r47249)
[2017-05-20 更新]经过研究发现,Windows 共享打印机使用 RAW 数据(不是 RAW 协议)传输,因此 CUPS 可以去掉所有的过滤器和 PPD 文件.因此重新编译了 8M 的 ar ...
- Python: 在CSV文件中写入中文字符
0.2 2016.09.26 11:28* 字数 216 阅读 8053评论 2喜欢 5 最近一段时间的学习中发现,Python基本和中文字符杠上了.如果能把各种编码问题解决了,基本上也算对Pytho ...
- 100-continue
https://wiki.open.qq.com/wiki/技术优化原则#1._.E7.A8.8B.E5.BA.8F.E8.AE.BE.E8.AE.A1.E6.97.B6.E9.9C.80.E8.A6 ...
- nice -n 10 bash 和 chrt 10 bash 和 echo -17 > /proc/PID/oom_score_adj
进程优先级起作用的方式从发明以来基本没有什么变化,无论是只有一个cpu的时代,还是多核cpu时代,都是通过控制进程占用cpu时间的长短来实现的. 就是说在同一个调度周期中,优先级高的进程占用的时间长些 ...
- win10下caffe+anaconda+python+Jupyter Notebooks安装流程
python3.5(推荐)或者python2.7 CUDA 8+ cuDNN5.1 python环境不能单独配置,必须先编译caffe,才能编译python环境. 下载caffe prebuild版本 ...
- spring 通过注解装配Bean
使用注解的方式可以减少XML的配置,注解功能更为强大,它既能实现XML的功能,也提供了自动装配的功能,采用了自动装配后,程序员所需要做的决断就少了,更加有利于对程序的开发,这就是“约定优于配置”的开发 ...
- 如何发布自定义的UI 组件库到 npmjs.com 并且编写 UI组件说明文档
记录基于 antd 封装业务组件并发布到npm 上的过程:(TS + React + Sass) 初始化项目: 1.yarn create react-app winyhui --typescript ...
- Spring MVC如何获取请求中的参数
目录 一.获取URL中路径参数 1.1 @PathVariable 注解 1.2 @PathParam 注解 二.获取请求参数: 2.1 GET请求 2.1.1 获取请求中的单个参数:@Request ...
- Linux文件误删恢复
一.需求研究 分析对比debugfs.testdisk 6.14.extundelete,对比各自官网介绍和操作说明本次决定研究extundelete对文件和目录的恢复操作. 二.项目内容 1.工具安 ...
- jenkins publish .net core application to linux server
最近学习Docker与Jenkins, 网上大部分都是关于Jenkins+Git+Docker进行持续远程部署, 我一直在考虑为什么Jenkins和Docker要绑定一块使用, 因为我想单独使用Jen ...