Linux 搭建ELK日志收集系统
在搭建ELK之前,首先要安装Redis和JDK,安装Redis请参考上一篇文章。
首先安装JDK及配置环境变量
1.解压安装包到/usr/local/java目录下
[root@VM_0_9_centos ~]# tar xvf /ryt/soft/jdk-11.0.3_linux-x64_bin.tar.gz -C /usr/local/java/
2.配置环境变量(在尾部追加内容如下)
[root@VM_0_9_centos ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk-11.0.3
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
3.重启配置文件,使其立即生效
[root@VM_0_9_centos ~]# source /etc/profile
ELK搭建详细过程
安装程序:filebeat,elasticsearch,logstash,kibana
1.安装Elasticsearch
1)解压安装包到路径/usr/local/elk下
[root@VM_0_9_centos ~]# tar -zxvf /ryt/soft/elk/elasticsearch-7.2.0-linux-x86_64.tar.gz -C /usr/local/elk/
2.创建用户并赋权
[root@VM_0_9_centos elk]# useradd es_user
[root@VM_0_9_centos elk]# groupadd esgroup
[root@VM_0_9_centos elk]# chown -R es_user:esgroup /usr/local/elk/elasticsearch-7.2.0/
3)修改ES配置文件:
[root@VM_0_9_centos elk]# vim /usr/local/elk/elasticsearch-7.2.0/config/elasticsearch.yml
#这里指定的是集群名称,需要修改为对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现
cluster.name: elk-application
node.name: node-1
#目录需要手动创建
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
#ES监听地址
network.host: 0.0.0.0 #允许外网个访问
http.port: 9200
discovery.seed_hosts: ["172.17.0.9"] #内网ip
cluster.initial_master_nodes: ["node-1"]
4)修改系统参数
#添加参数
vm.max_map_count=655360注:ES启动的时候回占用特别大的资源所以需要修改下系统参数,若不修改资源启动会异常退出
[root@VM_0_9_centos elk]# vim /etc/sysctl.conf
5)重新载入配置
[root@VM_0_9_centos elk]# sysctl -p /etc/sysctl.conf6)修改资源参数
[root@VM_0_9_centos elk]# vim /etc/security/limits.conf
修改内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
7)设置用户资源参数
[root@VM_0_9_centos elk]# vim /etc/security/limits.d/20-nproc.conf
#添加
es_user soft nproc 65536
8)创建数据和日志目录并修改目录权限
[root@VM_0_9_centos elk]# mkdir -pv /usr/local/elk/{data,logs}
[root@VM_0_9_centos elk]# chown -R es_user:esgroup/data/elasticsearch/
[root@VM_0_9_centos elk]# chown -R es_user:esgroup /usr/local/elk/elasticsearch-7.2.0
9)切换用户并后台启动ES
[root@VM_0_9_centos elk]# su esuser
[es_user@VM_0_9_centos elk]$ /usr/local/elk/elasticsearch-7.2.0/bin/elasticsearch &
2.安装logstash
1.解压安装包并移到/usr/local/elk目录下
[root@VM_0_9_centos filebeat-7.2.0]# tar -zvxf /ryt/soft/elk/logstash-7.2.0.tar.gz -C /usr/local/elk/
2.创建软连接
[root@VM_0_9_centos elk]# ln -s /usr/local/elk/logstash-7.2.0 /usr/local/elk/logstash
注:Java HotSpot(TM) 64-Bit Server VM warning:
INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed;
error='Not enough space' (errno=12)
[root@VM_0_9_centos elk]# vim ./elasticsearch-7.2.0/config/jvm.options
3.在/usr/local/elk/logstash/config/下新建文件logstash.config
内容如下:
input {
redis {
data_type => "list" #存储类型
type => "redis-input"
key => "logstash:redis" #key值,后面要与spring boot中key保持一致
host => "localhost"
port => 6379
# threads => 5 #启动线程数量
codec => "json"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "springboot-elk" #index是定义将过滤后的日志推送到Elasticsearch后存储的名字
}
stdout { codec => rubydebug} #是否在控制台打印
}
4.载入配置
[root@VM_0_9_centos config]# ../bin/logstash -f logstash-elasticsearch.conf -t
3.安装filebeat
1)解压安装包到路径/usr/local/elk下
[root@VM_0_9_centos elk]# tar xvf filebeat-7.2.0-linux-x86_64.tar.gz -C /usr/local/elk/
2)修改配置文件,使filebeat获取的日志进入redis:
注:此处演示获取spring cloud框架中eureka日志,其他程序日志都可相同方法获取
[root@VM_0_9_centos filebeat-7.2.0]#
[root@VM_0_9_centos filebeat-7.2.0]# pwd
/usr/local/elk/filebeat-7.2.0
[root@VM_0_9_centos filebeat-7.2.0]# vim ./filebeat.yml
#修改的内容有一家几个字段
enabled:true
paths:程序日志路径
#output只能有一个
#output.logstash:
# hosts:["服务器IP:5044"]
output.redis:
hosts:127.0.0.1 #redis所在服务器IP
port:6379 #redis端口
3)设置开机启动
修改配置rc.local,后面追加 /usr/local/elk/filebeat-7.2.0/filebeat > /tmp/filebeat.log 2>&1
[root@VM_0_9_centos filebeat-7.2.0]# vim /etc/rc.local
4)后台启动filebeat
[root@VM_0_9_centos filebeat-7.2.0]# /usr/local/elk/filebeat-7.2.0/filebeat &
5)查看启动,filebeat有没有监听端口,主要看日志和进程
[root@VM_0_9_centos filebeat-7.2.0]# ps -ef | grep filebeat
[root@VM_0_9_centos filebeat-7.2.0]# tailf logs/filebeat
4.启动logstash
测试一下logstash不指定配置文件启动
[root@VM_0_9_centos config]# /usr/local/elk/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
注:手动输入 hello world,它也会输出 hello world
5.安装kibana
1)解压安装包到路径/usr/local/elk下
[root@VM_0_9_centos ~]# tar -zxvf /ryt/soft/elk/kibana-7.2.0-linux-x86_64.tar.gz -C /usr/local/elk/
2)编辑kibana配置文件
[root@VM_0_9_centos ~]# vim /usr/local/elk/kibana-7.2.0/config/kibana.yml
3)后台启动kibana
[root@VM_0_9_centos ~]# /usr/local/elk/kibana-7.2.0/bin/kibana --allow-root &
6.ELK logstash启动慢解决方案
使用如下命令查询
[root@VM_0_9_centos ~]# cat /proc/sys/kernel/random/entropy_avail 如果返回值小于1000, 那么就需要安装haveged包。
[root@VM_0_9_centos ~]# yum -y install haveged
我在安装了以后, logstash启动慢的问题解决,在10秒内启动。
参考链接:https://wiki.archlinux.org/index.php/Haveged_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
Linux 搭建ELK日志收集系统的更多相关文章
- 快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana)
快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana) 概要说明 需求场景,系统环境是CentOS,多个应用部署在多台服务器上,平时查看应用日志及排查问题十 ...
- 用ElasticSearch,LogStash,Kibana搭建实时日志收集系统
用ElasticSearch,LogStash,Kibana搭建实时日志收集系统 介绍 这套系统,logstash负责收集处理日志文件内容存储到elasticsearch搜索引擎数据库中.kibana ...
- ELK 日志收集系统
传统系统日志收集的问题 在传统项目中,如果在生产环境中,有多台不同的服务器集群,如果生产环境需要通过日志定位项目的Bug的话,需要在每台节点上使用传统的命令方式查询,这样效率非常底下. 通常,日志被分 ...
- 快速搭建ELK日志分析系统
一.ELK搭建篇 官网地址:https://www.elastic.co/cn/ 官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/ ...
- Kubernetes 系列(八):搭建EFK日志收集系统
Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch.Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案. Elasticsearch 是一个 ...
- Docker搭建EFK日志收集系统,并自定义es索引名
EFK架构图 一.EFK简介 EFK不是一个软件,而是一套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用,是目前主流的一种日志系统. EFK是三个开源软件的缩写,分 ...
- ELK日志收集系统搭建
架构图 ELK 架构图:其中es 是集群,logstash 是单节点(猜想除非使用nginx对log4j的网络输出分发),kibana是单机(用不着做成集群). 1.拓扑图 2.logstash ...
- Windows系统搭建ELK日志收集服务器
一.ELK是什么?ELK是由Elasticsearch.Logstash.Kibana这3个软件的首字母缩写. Elasticsearch是一个分布式搜索分析引擎,稳定.可水平扩展.易于管理是它的主要 ...
- 十九,基于helm搭建EFK日志收集系统
目录 EFK日志系统 一,EFK日志系统简介: 二,EFK系统部署 1,EFK系统部署方式 2,基于Helm方式部署EFK EFK日志系统 一,EFK日志系统简介: 关于系统日志收集处理方案,其实有很 ...
随机推荐
- FL studio系列教程(十):FL Studio中如何新建样本
FL Studio中强调以样本为核心的编曲模式.样本其实就是一个小的音序片段,可以是单独的乐器或单独的打击乐,还可以是他们组合的一个小音序片段,它是我们学习编曲的最基础知识.所以本文主要为大家讲解的是 ...
- Vegas让人物回眸更有韵味的方法分享
"回眸一笑百媚生,六宫粉黛无颜色",是白居易在<长恨歌>中描述杨贵妃美貌的名句,这一句运用夸张的手法,反映了杨贵妃回眸时的娇媚横生,百般娇媚. 接下来,小编就教你用视频 ...
- python ddt实现数据驱动
首先安装ddt模块,命令:pip install ddt 通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或 ...
- P5851 [USACO19DEC]Greedy Pie Eaters P
如果只考虑选哪些奶牛吃派和奶牛吃派的顺序,就会陷入僵局,那么我们可以考虑派的情况. 套路地令 \(f_{i,j}\) 表示 \(i\sim j\) 这一段派,能满足一些奶牛,它们的最大可能体重. \[ ...
- java基础之一:基本数据类型
在java中有基本数据类型和引用类型两种,今天来说下基本数据类型和其对应的包装类的之间的关系. 一.概述 java中的基本数据类型有八种,分别是char.byte.short.int.long.flo ...
- sqli-labs-master less06
第六关与第五关步骤无区别,请参考 sqli-labs-master less05 及 Burp Suite暴力破解示例 区别:在第二步判断注入类型时发现 加单引号与不加单引号没有区别,加双引号时报错, ...
- JAVA在最新版Windows10_1909版本环境下的环境变量配置
1.配置 1.1新建 JAVA_HOME C:\Program Files\Java\jdk-13.0.2 1.2新建 CLASSPATH .;%JAVA_HOME%\bin;%JAVA_HOME%\ ...
- CSP2020复赛游记
CSP2020复赛游记 由于本蒟蒻侥幸通过PJ和TG的分数线并且侥幸的拿了一等,所以侥幸的来参加复赛 11.04~11.05 期中考,挂 11.06 对答案,炸 11.07 开始了第一次CSP复赛 坐 ...
- Spring Cloud 学习 (十) Spring Security, OAuth2, JWT
通过 Spring Security + OAuth2 认证和鉴权,每次请求都需要经过 OAuth Server 验证当前 token 的合法性,并且需要查询该 token 对应的用户权限,在高并发场 ...
- go语言的指针类型
一.指针与引用的相关概念 什么是指针? 指针,全称为指针变量,是用来存储内存地址的一种变量.程序中,一般通过指针来访问其指向的内存地址中的内容(数据). 什么是引用? 引用,是C++中提出来的一种新的 ...