Linux部署elk日志监控系统

目录

一、简介

二、部署elasticsearch

2.1 安装jdk11(jdk版本>=11)

2.2 下载安装包

2.3 授权elk用户 

2.4 配置elasticsearch.yml

2.5 启动elasticsearch

三、部署logstash

3.1 启动测试

3.2 可能出现的报错

3.3 指定配置文件启动logstash

3.4 安装Elasticsearch Head

3.4.1 安装谷歌插件

3.4.2 安装nodejs

四、部署kibana

4.1 修改配置文件并启动 


一、简介

ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。

框架简介作用
Elasticsearch开源分布式搜索引擎,提供存储、分析、搜索功能。特点:分布式、基于reasful风格、支持海量高并发的准实时搜索场景、稳定、可靠、快速、使用方便等。接收搜集的海量结构化日志数据,并提供给kibana查询分析
Logstash开源日志搜集、分析、过滤框架,支持多种数据输入输出方式。用于收集日志,对日志进行过滤形成结构化数据,并转发到elasticsearch中
Kibana开源日志报表系统,对elasticsearch以及logstash有良好的web页面支持对elasticsearch提供的数据进行分析展示

应用场景:分布式部署项目,需要收集日志、微服务架构项目,收集各个服务的日志、大数据行业。

二、部署elasticsearch

如果是多节点,其他节点只需要安装elasticsearch即可。

11.0.1.16elasticsearch+logstash+kibana

 

2.1 安装jdk11(jdk版本>=11)

jdk安装包不能直接wget下载,oracle下载需要用户登录验证

jdk下载地址:Java Downloads | Oracle

[root@elk-16 /]# hostnamectl set-hostname elk-16
[root@elk-16 /]# ls /opt/jdk/
jdk-11.0.20_linux-x64_bin.tar.gz
[root@elk-16 /]# tar -zxf jdk-11.0.20_linux-x64_bin.tar.gz[root@elk-16 /]# vim /etc/profile
#文末添加两行,配置环境变量
export JAVA_HOME=/opt/jdk/jdk-11.0.20
export PATH=$JAVA_HOME/bin:$PATH
[root@elk-16 /]# source /etc/profile[root@elk-16 /]# java -version
java version "11.0.20" 2023-07-18 LTS
******

2.2 下载安装包

下载组件,注意版本保持一致

[root@elk-16 /]# mkdir /opt/elk
[root@elk-16 /]# cd /opt/elk
[root@elk-16 elk]# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.9.3-linux-x86_64.tar.gz
[root@elk-16 elk]# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.9.3.tar.gz
[root@elk-16 elk]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-linux-x86_64.tar.gz
[root@elk-16 elk]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.3-linux-x86_64.tar.gz

2.3 授权elk用户 

#解压
[root@elk-16 elk]# tar -zxf elasticsearch-7.9.3-linux-x86_64.tar.gz  -C /opt/elk/
[root@elk-16 elk]# tar -zxf kibana-7.9.3-linux-x86_64.tar.gz -C /opt/elk/
[root@elk-16 elk]# tar -zxf logstash-7.9.3.tar.gz -C /opt/elk/#创建elk用户
[root@elk-16 elk]# useradd elk#创建数据日志目录
[root@elk-16 elk]# mkdir /opt/elk
[root@elk-16 elk]# mkdir /var/log/elk/es7
[root@elk-16 elk]# mkdir /data/es7#elk用户授权
[root@elk-16 elk]# chown -R elk:elk /opt/elk
[root@elk-16 elk]# chown -R elk:elk /var/log/elk
[root@elk-16 elk]# chown -R elk:elk /data/es7[root@elk-16 opt]# chown -R elk:elk /opt/elk/logstash-7.9.3
[root@elk-16 opt]# chown -R elk:elk /opt/elk/kibana-7.9.3-linux-x86_64

2.4 配置elasticsearch.yml

更改配置文件elasticsearch.yml

#1、修改elasticsearch.yml配置文件vim /opt/elk/elasticsearch-7.9.3/config/elasticsearch.yml# ---------------------------------- Cluster -----------------------------------cluster.name: bigdata-elk# ------------------------------------ Node ------------------------------------node.name: elk-16# ----------------------------------- Paths ------------------------------------path.data: /data/es7path.logs: /var/log/elk/es7# ---------------------------------- Network -----------------------------------network.host: 0.0.0.0transport.host: 0.0.0.0network.publish_host: 11.0.1.16http.port: 9200# --------------------------------- Discovery ----------------------------------#如果有多节点,其他节点只需要安装es7,其余两个不用,并且这两行需要添加所有节点IP、主机名,用逗号“,”隔开discovery.seed_hosts: ["11.0.1.16"]cluster.initial_master_nodes: ["elk-16"]# ---------------------------------- Various -----------------------------------http.cors.enabled: true          http.cors.allow-origin: "*"        bootstrap.memory_lock: falsebootstrap.system_call_filter: false#2、修改系统参数,不修改可能达到系统瓶颈,导致软件崩溃echo "vm.max_map_count=655360" >> /etc/sysctl.confsysctl -p报错:sysctl: cannot stat /proc/sys/–p: No such file or directory执行以下命令:1、  modprobe br_netfilter2、  ls /proc/sys/net/bridge3、  sysctl -pvim /etc/security/limits.conf* soft nofile 65536* hard nofile 65536* soft nproc  65536* hard nproc  65536echo "elk     soft    nproc       65536" >> /etc/security/limits.d/20-nproc.conf#3、告警:Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone.
#在文件elasticsearch.yml中加入下面的配置
xpack.security.enabled: false

2.5 启动elasticsearch

注意切换到elk用户再启动elasticsearch

提示jdk版本过低(因为一开始我装的是jdk8,后面改了jdk11就没问题了)

[elk@elk-16 elk]$ /opt/elk/elasticsearch-7.9.3/bin/elasticsearch -d
future versions of Elasticsearch will require Java 11; your Java version from [/opt/jdk/jdk1.8.0_381/jre] does not meet this requirement
future versions of Elasticsearch will require Java 11; your Java version from [/opt/jdk/jdk1.8.0_381/jre] does not meet this requirement

换到jdk11后,启动正常

[elk@elk-16 elasticsearch-7.9.3]$ /opt/elk/elasticsearch-7.9.3/bin/elasticsearch -d
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
******
For complete error details, refer to the log at /var/log/elk/es7/elk.log

ctrl+c不会停止elasticsearch,测试,有以下内容表示elasticsearch启动成功。

[root@elk-16 ~]# curl 127.0.0.1:9200
{"name" : "elk-16","cluster_name" : "elk","cluster_uuid" : "ZwKngvYkT82yM-lbqAgXXA","version" : {"number" : "7.9.3","build_flavor" : "default","build_type" : "tar","build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868","build_date" : "2020-10-16T10:36:16.141335Z","build_snapshot" : false,"lucene_version" : "8.6.2","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}

宿主机也测试一下,遇到过11.0.1.16本机可以访问,虚拟机宿主机却访问不了的情况,正常情况下本机宿主机都是可以访问的。 

如果想要结束elasticsearch进程,用kill命令结束进程

#查看进程号
ps -ef | grep elastic 或者 lsof -i:9200
kill -9 ***

三、部署logstash

3.1 启动测试

注意,解压logstash后可能会出现找不到java命令的情况,使用source /etc/profiles 刷新环境变量即可,测试启动logstash,出现“Successfully started Logstash API endpoint {:port=>9600}
”启动成功。

[root@elk-16 opt]# su elk
[elk@elk-16 opt]# cd /opt/elk/logstash-7.9.3
[elk@elk-16 logstash-7.9.3]# bin/logstash -e 'input {stdin {}} output {stdout {}}'
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jruby.ext.openssl.SecurityHelper 
******
[2023-09-25T17:20:44,771][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}
hello
{"@timestamp" => 2023-09-25T14:36:42.644Z,"@version" => "1","host" => "elk-16","message" => "hello"
}#hello是我输入的,启动后会生成终端,可以随意输入,ctrl+c停止logstash运行

3.2 可能出现的报错

出现“Errno::EACCES - Permission denied - /opt/elk/logstash-7.9.3/data”,没有给elk用户授权/opt/elk/logstash-7.9.3

#无logstash-7.9.3/data无权限
[elk@elk-16 logstash-7.9.3]$ bin/logstash -e 'input { stdin { } } output { stdout {} }'
******
[ERROR] 2023-09-25 22:28:46.776 [main] Logstash - java.lang.IllegalStateException: Logstash stopped processing because of an error: (ArgumentError) Path "/opt/elk/logstash-7.9.3/data" does not exist, and I failed trying to create it: Errno::EACCES - Permission denied - /opt/elk/logstash-7.9.3/data

 如果授权后还是不行,尝试删除/opt/elk/logstash-7.9.3/data。删除后使用logstash命令会重新生产一个data目录。

[elk@elk-16 logstash-7.9.3]# bin/logstash -e 'input {stdin {}} output {stdout {}}'
******
[2023-09-25T17:25:46,132][ERROR][org.logstash.Logstash    ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (SystemExit) exit

3.3 指定配置文件启动logstash

更改配置文件需要切换回root用户,建议开两个终端,一个elk一个root,避免来回切换麻烦。

[elk@elk-16 logstash-7.9.3]# su root
[root@elk-16 logstash-7.9.3]# vim /opt/elk/logstash-7.9.3/config/test_file.confinput {file {path => ["/var/log/elk/es7/bigdata-elk.log"]type => "bigdata-elk"}
}output {elasticsearch {hosts => ["11.0.1.16:9200"]index => "sbigdata-elk-log-%{+YYY.MM.dd}"}
}

注意启动都是elk用户,指定配置文件启动logstash成功

[elk@elk-16 logstash-7.9.3]$ bin/logstash -f config/test_file.conf
******
[2023-09-26T10:42:02,634][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

需要保证elasticsearch启动,没有启动会抛出拒绝连接错误

[2023-09-25T23:08:00,360][WARN ][logstash.outputs.elasticsearch][main] Attempted to resurrect connection to dead ES instance, but got an error. {:url=>"http://11.0.1.16:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch Unreachable: [http://11.0.1.16:9200/][Manticore::SocketException] 拒绝连接 (Connection refused)"}

 打开新的终端,查看9200、9600

[root@elk-16 ~]# netstat -tulnp | grep 9600
tcp6       0      0 127.0.0.1:9600          :::*                    LISTEN      1755/java           
[root@elk-16 ~]# 
[root@elk-16 ~]# netstat -tulnp | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      1483/java  

3.4 安装Elasticsearch Head

两种方式,谷歌插件或者部署nodejs,可以观察集群监控状态

3.4.1 安装谷歌插件

下载谷歌插件Multi Elasticsearch Head,注意需要挂梯子,没条件请使用nodejs,打开插件,“New”,输入elasticsearch接口URL。

3.4.2 安装nodejs

github下载elasticsearch-head-master.zip传入/opt/elk目录

下载地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster

安装nodejs

#nodejs v14.15安装包
[root@elk-16 elk]# wget https://nodejs.org/dist/v14.15.0/node-v14.15.0-linux-x64.tar.xz
[root@elk-16 elk]# xz -d node-v14.15.0-linux-x64.tar.xz
[root@elk-16 elk]# tar -xf node-v14.15.0-linux-x64.tar[root@elk-16 elk]# unzip elasticsearch-head-master.zip#phantomjs 官网	https://phantomjs.org/download.html
[root@elk-16 elk]# wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@elk-16 elk]# yum -y install bzip2 fontconfig-devel
[root@elk-16 elk]# tar -xvjf  phantomjs-2.1.1-linux-x86_64.tar.bz2#创建node、npm命令软连接
[root@elk-16 elk]# ln -s /opt/elk/node-v14.15.0-linux-x64/bin/node /usr/local/bin/node
[root@elk-16 elk]# ln -s /opt/elk/node-v14.15.0-linux-x64/bin/npm /usr/local/bin/npm
[root@elk-16 elk]# ln -s /opt/elk/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs#查看版本
[root@elk-16 elk]# node -v
v14.15.0
[root@elk-16 elk]# npm -v
6.14.8
[root@elk-16 elk]# phantomjs --version
2.1.1
#安装模块
[root@elk-16 elk]# cd /opt/elk/elasticsearch-head-master
[root@elk-16 elasticsearch-head-master]# npm install --registry=https://registry.npm.taobao.org

npm install 报错,npm install因为某些原因中断最好删除node_modules目录

npm ERR! phantomjs-prebuilt@2.1.16 install: `node install.js` 

#手动全局安装phantomjs-prebuilt@2.1.16
[root@elk-16 elasticsearch-head-master]# npm -g install phantomjs-prebuilt@2.1.16 --ignore-script

测试前台启动成功后ctrl+c再用后台启动

#前台启动
[root@elk-16 elasticsearch-head-master]# npm run start
******
Waiting forever...
Started connect web server on http://localhost:9100#后台启动
[root@elk-16 elasticsearch-head-master]# npm run start &
[root@elk-16 ~]# netstat -tulnp |grep 9100
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      5080/grunt

四、部署kibana

4.1 修改配置文件并启动 

#修改配置文件
vim /opt/elk/kibana-7.9.3-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: "11.0.1.16"
server.name: "bigdata-kibana"
elasticsearch.hosts: ["http://11.0.1.16:9200"]
logging.dest: /var/log/elk/kibana/kibana.log
i18n.locale: "zh-CN"#创建日志目录
mkdir /var/log/elk/kibana
chown -R elk:elk /var/log/elk/kibana#前台启动kibana
bin/kibana#后台启动kibana
bin/kibana &

查看9200 9600 9100 5601 端口,结束进程请使用kill命令 

通过查询端口号结束后台运行进程

[root@elk-16 /]# yum install -y lsof
[root@elk-16 /]# lsof -i:5601
[root@elk-16 /]# kill -9 ******

 访问 http://11.0.1.16:5601/

至此,elasticsearch+logstash+kibana日志监控系统部署完成。

参考文档:

https://www.cnblogs.com/wangzhuxing/p/9665905.html#_label1_1

ELK 安装部署(入门必备)_elk安装部署_与光同尘~追光者的博客-CSDN博客

logstash报错问题解决:Logstash stopped processing because of an error: (SystemExit) exit_BigCabbageFy的博客-CSDN博客

npm install 安装时i,报错 phantomjs-prebuilt@2.1.16 install: `node install.js`-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/143049.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络安全】网络攻击的类型有哪些?

对网络的攻击大致可以分为两类:服务供给和非服务攻击。从攻击的手段可以分为8类:系统入侵类攻击、缓冲区溢出类攻击、欺骗类攻击、拒绝服务类攻击、防火墙攻击、病毒类攻击、木马类攻击与后门攻击。 服务类攻击(Application Dependent Attrac…

正点原子lwIP学习笔记——NETCONN接口简介

1. NETCONN接口简介 NETCONN API 使用了操作系统的 IPC 机制, 对网络连接进行了抽象,使用同一的接口完成UDP和TCP连接。 NETCONN API接口是在RAW接口基础上延申出来的一套API接口 首先会调用netconn_new创建一个pcb控制块,其实际是一个宏定…

全链路压测:优化系统性能的关键措施

在现代互联网时代,系统的性能稳定性和可靠性对于企业的成功至关重要。全链路压测作为一项关键的测试措施,可以模拟真实的负载情况,全面评估系统在高负载环境下的表现。本文将介绍全链路压测的定义、作用以及在优化系统性能方面的重要性。 一、…

PowerDsigner 数据库逆向pdm数模 常见数据库连接问题

本文章记录本人在使用powerdsigner工具,反向工程生成项目数据库表结构以及表关系的过程中遇到的两个常见问题。 问题1:Could not Initialize JavaVM 问题2:Non SQL Error : Could not load class oracle.jdbc.OracleDriver 环境&#xff1…

Docker-如何获取docker官网x86、ARM、AMD等不同架构下的镜像资源

文章目录 一、概要二、资源准备三、环境准备1、环境安装2、服务器设置代理3、注册docker账号4、配置docker源 四、查找资源1、服务器设置代理2、配置拉取账号3、查找对应的镜像4、查找不同版本镜像拉取 小结 一、概要 开发过程中经常会使用到一些开源的资源,比如经…

界面组件DevExpress WPF v23.2新功能预览 - 更轻量级的主题

本文主要描述了DevExpress WPF即将在几个月之后发布的v23.2中包含的新功能,持续关注我们获取更多最新资讯哦~ P.S:DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强…

自己开发一个VSCode插件,快速生成Flex布局代码

插件CSS Flex 安装地址:VSCode插件安装 GitHub:https://github.com/xutao-o/css-flex-code 💡介绍 这是一个快捷生成CSS Flex布局代码的VS Code插件,类似于Google开发者控制台里的Flex布局工具,就是看谷歌的布局工具…

爬虫获取一个网站内所有子页面的内容

上一篇介绍了如何爬取一个页面内的所有指定内容,本篇讲的是爬去这个网站下所有子页面的所有指定的内容。 可能有人会说需要的内容复制粘贴,或者直接f12获取需要的文件下载地址一个一个下载就行了,但是如下图十几个一级几十个二级一百多个疾病…

【Spring Cloud】认识微服务架构,拆分简单的 Demo 实现服务的远程调用

文章目录 前言一、认识微服务1.1 服务架构的演变:从单体到微服务单体架构分布式架构微服务架构 1.2 微服务技术的对比:Dubbo、Spring Cloud、Spring Cloud Alibaba技术对比公司需求的选择 1.3 Spring Cloud:微服务框架的精华什么是 Spring Cl…

工具篇 | WSL使用入门教程以及基于WSL和natApp内网穿透实践 - 对比VMWare

介绍 在开发工具中,Windows Subsystem for Linux (WSL) 和 VMWare 它们都可以实现了在 Windows 上运行 Linux系统。 文章概览 WSL Vs VMWare 我们将简单比对 WSL 和 VMWare,在性能、资源消耗等方面的差异,以协助您做出更加明确的选择。 …

数据结构与算法

目录 数据结构与算法 为什么要学习数据结构和算法? 常见的数据结构 常用算法 插入排序 一、概念及其介绍 二、适用说明 三、过程图示 希尔排序 一、概念及其介绍 二、适用说明 三、过程图示 归并排序 一、概念及其介绍 二、适用说明 三、过程图示 …

python抓取网页视频

1. 喜马拉雅音频 1-1 喜马拉雅 import requests import json import time import random import hashliburl https://www.ximalaya.com/revision/play/v1/audio?id46103875&ptype1headers { user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.3…

【量化】量化原理浅析

前言 模型在端侧运行时,会追求模型保持原有精度的同时,让模型的运行速度更快。基本方向为模型压缩和加速,着力于减少网络参数量、降低计算复杂度。可通过以下方式实现: 针对网络结构本身进行改进,常用的3x3的卷积的叠加…

从零搭建开发脚手架 顺应潮流开启升级 - SpringBoot 从2.x 升级到3.x

文章目录 涉及升级项导入包修改SpringBoot3.x中spring.factories功能被移除 涉及升级项 升级JDK 8 -> JDK17 Spring Boot 2.3.7 -> Spring Boot 3.1.3 Mysql5.7.x -> Mysql8.x Mybatis-Puls 3.4.2 -> 3.5.3 knife4j 2.x -> 4.3.x sa-token 1.24.x -> 1.…

基于Xilinx UltraScale+ MPSOC(ZU9EG/ZU15EG)的高性能PCIe数据预处理平台

PCIE707是一款基于PCIE总线架构的高性能数据预处理FMC载板,板卡具有1个FMC(HPC)接口,1路PCIe x4主机接口、1个RJ45千兆以太网口、2个QSFP 40G光纤接口。板卡采用Xilinx的高性能UltraScale MPSOC系列FPGA作为实时处理器&#xff0c…

vue3 - 使用 xlsx 库将数据导出到 Excel 文件

GitHub Demo 地址 在线预览 xlsx是由SheetJS开发的一个处理excel文件的JavaScript库。它可以读取、编写和操作 Excel 文件 安装xlsx npm install xlsx --save实现一个通过的数据导出工具类 import * as XLSX from xlsx/*** description: 导出excel* param {any} dataList* p…

公司新招了个字节拿36K的人,让我见识到了什么才是测试扛把子......

5年测试,应该是能达到资深测试的水准,即不仅能熟练地开发业务,而且还能熟悉项目开发,测试,调试和发布的流程,而且还应该能全面掌握数据库等方面的技能,如果技能再高些的话,甚至熟悉分…

枚举enum

使用enum关键字定义提供枚举类的对象,多个对象用逗号分开,结尾用分号结束提供构造方法,给属性赋值使用public statiac final来修饰是属性提供get方法提供toString方法 public enum Season {SPRING("春天", "春暖花开"),…

linux下解决tomcat错误问题

错误一: Linux下Tomcat启动报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 原因:可能是Linux环境变了,需要在catalina.sh文件里指定JDK路径 解决方式: 在/bin/catalina.sh配置文件中加…

CSS详细基础(二)文本样式

插播一条CSS的工作原理: CSS是一种定义样式结构如字体、颜色、位置等的语言,被用于描述网页上的信息格式化和显示的方式。CSS样式可以直接存储于HTML网页或者单独的样式单文件。无论哪一种方式,样式单包含将样式应用到指定类型的元素的规则。…