首页 > 其他分享 >ELK日志收集之ES集群部署 二进制

ELK日志收集之ES集群部署 二进制

时间:2024-09-22 22:51:47浏览次数:3  
标签:es7 ELK 7.17 elasticsearch ES 日志 es softwares

一、简介

ELK是三个开源软件的缩写:Elasticsearch, Logstash 和 Kibana,这三个组件常用于日志收集和分析。

Logstash是一个日志收集和转发的工具,可以将不同源的日志统一收集、过滤、转发。
Elasticsearch是基于Lucene的搜索和分析引擎,可用于存储、搜索和分析大量的日志数据。它的特点是能够实时地对大量数据进行搜索和分析。
Kibana是一个日志分析的工具,它可以将Elasticsearch的数据以图表的形式展现出来,帮助分析者更好地理解日志中的信息。
简单来说:
Logstash:收集日志,过滤并转发给Elasticsearch。另外filebeat收集日志。
Elasticsearch:存储日志数据,并提供搜索和分析接口。
Kibana:查询和分析Elasticsearch中的日志数据,并提供友好的界面。

ELK日志收集之ES集群部署 二进制_elasticsearch

二、单机版部署

ES软件包下载地址

#下载ES安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.5-x86_64.rpm
#安装
rpm -ivh elasticsearch-7.17.5-x86_64.rpm
#修改配置文件
cat >>/etc/elasticsearch/elasticsearch.yml<<'EOF'
#ES监听地址 对外暴露服务的地址
network.host: 0.0.0.0
#ES集群的节点IP
discovery.seed_hosts: ["192.168.77.176"]
#master选举的节点
cluster.initial_master_nodes: ["192.168.77.176"]
EOF
#查看配置
egrep -v '^#|^$' /etc/elasticsearch/elasticsearch.yml
#启动ES
systemctl start elasticsearch
#检查端口 9200对外提供http服务的端口 9300对内提供tcp服务的端口
ss -tlunp | egrep "9300|9200"
#验证服务
curl 192.168.77.176:9200
#或浏览器访问
http://192.168.77.176:9200

#如果遇到集群的uuid为"_na_"情况时,可以执行如下操作:
systemctl stop elasticsearch
rm -rf /var/lib/elasticsearch/* /var/log/elasticsearch/* /tmp/*
systemctl start elasticsearch
curl 192.168.77.176:9200

三、集群部署

0.资源规划和目录规划

192.168.77.176 elk01

centos7 2C8G100G

cluster.name  cluster-es

192.168.77.177 elk02

centos7 2C8G100G

cluster.name  cluster-es

192.168.77.178 elk03

centos7 2C8G100G

cluster.name  cluster-es

#数据目录
/es/data/es7
#日志目录
/es/logs/es7
#软件目录
/es/softwares/es7

1.RPM包方式部署集群

#三台都执行
#下载ES安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.5-x86_64.rpm
#安装
rpm -ivh elasticsearch-7.17.5-x86_64.rpm
#修改配置文件 elk01修改后复制到其他2台
cat >>/etc/elasticsearch/elasticsearch.yml<<'EOF'
#ES集群的名称
cluster.name: cluster-es
#ES监听地址 对外暴露服务的地址
network.host: 0.0.0.0
#ES集群的节点IP
discovery.seed_hosts: ["192.168.77.176","192.168.77.177","192.168.77.178"]
#master选举的节点
cluster.initial_master_nodes: ["192.168.77.176","192.168.77.177","192.168.77.178"]
EOF
#配置文件分发到其他2台节点
scp /etc/elasticsearch/elasticsearch.yml  192.168.77.177:/etc/elasticsearch/elasticsearch.yml
scp /etc/elasticsearch/elasticsearch.yml  192.168.77.178:/etc/elasticsearch/elasticsearch.yml
#所有节点启动ES服务
systemctl enable  elasticsearch
systemctl start  elasticsearch
#验证ES集群节点
curl 192.168.77.176:9200/_cat/nodes

2.二进制包部署集群

#所有节点
#配置hosts
cat >> /etc/hosts <<'EOF'
192.168.77.176 elk01
192.168.77.177 elk02
192.168.77.178 elk03
EOF
#关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
#修改文件描述符
cat >>/etc/security/limits.conf<<'EOF'
es soft nofile 65536
es hard nofile 65536
EOF
cat >>/etc/security/limits.d/20-nproc.conf<<'EOF'
es soft nofile 65536
es hard nofile 65536
* hard nproc 4096
EOF
#内核虚拟内存映射值
echo "vm.max_map_count=655360" >> /etc/sysctl.conf
#重新加载 配置生效
sysctl -p

#elk01节点
#ssh免密登录
#elk01节点上生成密钥对
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa -q
#elk01配置所有集群节点的免密登录  交互输入yes和密码
for i in `seq -w 01 03`;do ssh-copy-id elk${i} ;done
#连接测试 elk01可免密登录elk01、elk02和elk03
ssh elk01
ssh elk02
ssh elk03

#所有节点
#下载安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.5-linux-x86_64.tar.gz
#创建用户
useradd -u 2000 es
#创建目录并授权
mkdir -pv /es/{data,logs,softwares}/es7
chown es:es -R /es/{softwares,data,logs}/es7/
#或 创建目录并授权
install -d /es/{data,logs,softwares}/es7 -o es -g es
#解压
tar xf elasticsearch-7.17.5-linux-x86_64.tar.gz -C /es/softwares/es7/
#修改配置文件
#查看当前配置文件
egrep -v "^#|^$" /es/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml
#修改
cat >>/es/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml<<'EOF'
#集群名字
cluster.name: cluster-es
#数据目录
path.data: /es/data/es7
#日志目录
path.logs: /es/logs/es7
#ES监听地址 对外暴露服务的地址
network.host: 0.0.0.0
#ES集群的节点IP
discovery.seed_hosts: ["elk01","elk02","elk03"]
#master选举的节点
cluster.initial_master_nodes: ["elk01","elk02","elk03"]
EOF
#验证当前配置文件
egrep -v "^#|^$" /es/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml

#se用户启动所有节点服务  稍等
su - es -c '/es/softwares/es7/elasticsearch-7.17.5/bin/elasticsearch -d'
#日志查看
tailf -n 100 /es/logs/es7/cluster-es.log
##检查端口 9200对外提供http服务的端口 9300对内提供tcp服务的端口
ss -tlunp | egrep "9300|9200"
#验证ES集群节点
curl 192.168.77.176:9200/_cat/nodes

#所有节点
#systemd管理es7
#停止ES服务
pkill java
#编写ES启动脚本
cat > /usr/lib/systemd/system/es7.service <<EOF
[Unit]
Description= es7
After=network.target

[Service]
Type=simple
ExecStart=/es/softwares/es7/elasticsearch-7.17.5/bin/elasticsearch
User=es
LimitNOFILE=131070

[Install]
WantedBy=multi-user.target
EOF
#重新加载
systemctl daemon-reload
#设置开机自启动
systemctl enable --now es7
#查看服务是否正常运行
systemctl status es7
##检查端口 9200对外提供http服务的端口 9300对内提供tcp服务的端口
ss -tlunp | egrep "9300|9200"
#验证ES集群节点
curl 192.168.77.176:9200/_cat/nodes

3.使用oracle JDK管理ES服务

下载jdk-8u351-linux-x64.tar.gz软件包

#所有节点
#下载jdk-8u351-linux-x64.tar.gz
#解压到/es/softwares/
tar xf jdk-8u351-linux-x64.tar.gz -C /es/softwares/
#配置环境变量
cat >>/etc/profile <<'EOF'
JAVA_HOME=/es/softwares/jdk1.8.0_351
PATH=${JAVA_HOME}/bin:$PATH
EOF
#环境变量生效
source /etc/profile
#版本验证
java -version
#停止ES服务
pkill java
#修改启动脚本
cat > /usr/lib/systemd/system/es7.service <<EOF
[Unit]
Description= es7
After=network.target

[Service]
Type=simple
Environment=JAVA_HOME=/es/softwares/jdk1.8.0_351
ExecStart=/es/softwares/es7/elasticsearch-7.17.5/bin/elasticsearch
User=es
LimitNOFILE=131070
LimitNPROC=8192

[Install]
WantedBy=multi-user.target
EOF
#重新加载并重启es7
systemctl daemon-reload
systemctl restart es7
#日志查看
tailf -n 100 /es/logs/es7/cluster-es.log
##检查端口 9200对外提供http服务的端口 9300对内提供tcp服务的端口
ss -tlunp | egrep "9300|9200"
#验证ES集群节点
curl 192.168.77.176:9200/_cat/nodes

#查看ES环境的堆(heap)内存大小 MaxHeapSize= 1073741824 (1024.0MB) 默认1GB
jps
jmap -heap 67464 | grep MaxHeapSize
#修改ES环境的堆(heap)内存大小 
cat >>/es/softwares/es7/elasticsearch-7.17.5/config/jvm.options<<'EOF'
-Xms512m
-Xmx512m
EOF
#重启
systemctl restart es7
#验证ES环境的堆(heap)内存大小
jps
jmap -heap 67775 | grep MaxHeapSize


标签:es7,ELK,7.17,elasticsearch,ES,日志,es,softwares
From: https://blog.51cto.com/alibaby/12081949

相关文章

  • 2024/09/22:TypeScript 学习笔记二
    1、类型注解在TypeScript中,可以使用类型注解来明确标识类型。如:constgreeting:string='helloworld' 2、类型检查静态类型检查:在程序编译时进行——(两种静态类型检查模式:非严格类型检查【默认方式】;严格类型检查)动态类型检查:在程序运行时进行3、TypeScri......
  • Python可视化过程中.pictures.add这里一直报错,不明原因
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【沐子山树】问了一个Python可视化的问题,问题如下:importmatplotlib.pyplotasplt#创建一个简单的图表fig,ax=plt.subplots()ax.plot([1,2,3,4])ax.set_ylabel('somenumbers')#保存图表为PNG文件temp......
  • codeforces 1041 C. Coffee Break
    题意第一行输入三个整数\(n,m,d(1\leqn\leq2*10^5,n\leqm\leq10^9,1\leqd\leqn)\),第二行输入\(n\)个整数,保证每个数均不大于\(m\)。在每一天你都可以任意选择一个未选过的数\(a_i\),随后可以继续选任意一个大于\(a_i+d\)的数\(a_j\);接下来可以再选任意......
  • Podcast Subtitles AI Generator All In One
    PodcastSubtitlesAIGeneratorAllInOne播客字幕AI生成器???TranscribePodcasttoTexthttps://www.youtube.com/watch?v=WVhcmJl4ZFwhttps://video.adorilabs.com/https://www.youtube.com/watch?v=h5AEXBS5lf0https://www.media.io/transcribe-podcast-to-texts......
  • Setup passphraseless ssh
    生成密钥对,将公钥添加到认证文件中$ssh-keygen-trsa-P''-f~/.ssh/id_rsa$cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys$chmod0600~/.ssh/authorized_keys生成config文件,并修改文件权限为600$vi~/.ssh/configHost*StrictHostKeyCheckingno$chmod600......
  • koa 和 express 的对比
    https://blog.csdn.net/James_xyf/article/details/128176580 前言天冷了,唯有学习来温暖自己。最近利用业余的时间,跟着coderwhy老师学习node.js,了解以及掌握一些服务端的常见知识:fileSystem:文件读取模块。events:事件流Buffer:node中处理二进制的方式http创建服务器Stream......
  • Express、Koa、Egg.js:Node.js框架的对比与选择
    摘要:本文将对比分析Express、Koa、Egg.js这三个Node.js框架的特点、优势和应用场景,帮助读者根据实际需求选择最适合的框架。引言:在现代Web开发中,Node.js框架是不可或缺的工具。Express、Koa、Egg.js是三种流行的Node.js框架,它们各自具有独特的特点和优势。本文将详细对比分析这三......
  • Koa 与 Express 究竟有何不同
    https://juejin.cn/post/7366526529521270796 三者皆是用于构建Web应用程序的Node.js框架。Express:设计:Express是一个基于回调函数的Web框架,它使用中间件模式来处理请求和响应。它提供了许多内置的中间件,如路由、模板引擎等,并且可以与第三方中间件集成。功能:Express......
  • Kubernetes最新版本部署完整过程(1.31)
    参考官方文档进行部署:Kubernetes一、环境准备本次实验使用的操作系统为:Centosstream91.1节点规划一台兼容的Linux主机。Kubernetes项目为基于Debian和RedHat的Linux发行版以及一些不提供包管理器的发行版提供通用的指令。每台机器2GB或更多的RAM(......
  • [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\partmgr\Parameters] "SanP
    WindowsRegistryEditorVersion5.00;关闭windowstogo特性[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control]"PortableOperatingSystem"=dword:00000000 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\partmgr\Parameters]"SanPolicy"=......