ELK简介以及安装部署(1),Linux运维程序员架构之路该如何继续学习

前端nginx代理集群有5台,这上面都分布了nginx日志。突然当前时间点用户反馈网站访问不了,那我们就要去查看过滤出nginx日志http状态码为404,4xx,5xx的日志。如果使用awk,grep进行操作,那就登录到5台机器上进行操作,然后对结果进行一个合并。这种情况就不适用使用命令行工具去做分析和搜索,这种方法比较麻烦,效率又低,日志量大起来搜索又慢。对于这种情况,我们的日志就要进行集中化管理,集中化分析。如此一来,搭建ELK近实时日志分析搜索系统,无疑是一个好的解决方法。

ELK的安装部署

一、服务器准备

准备四台虚拟机

主机名IP地址描述
elasticsearch-1192.168.220.21es集群
elasticsearch-2192.168.220.22es集群
elasticsearch-3192.168.220.23es集群
kibana192.168.220.20logstash+kibana
web192.168.220.105nginx+filebeat

以及各个软件的安装包(版本都一致),下载地址(官网):https://www.elastic.co/cn/downloads

在这里插入图片描述

二、基础环境配置

ELK主机都需部署(都是如下操作)

1、jdk环境的部署
# 导入jdk安装包
[root@elasticsearch-1 ~]# mkdir /jdk && cd /jdk
[root@elasticsearch-1 jdk]# ls
jdk-8u381-linux-i586.tar.gz
# 解压到当前文件夹
[root@elasticsearch-1 jdk]# tar xf jdk-8u381-linux-i586.tar.gz
[root@elasticsearch-1 jdk]# ls
jdk1.8.0_381  jdk-8u381-linux-i586.tar.gz

# 配置/etc/profile文件
[root@elasticsearch-1 ~]# vim /etc/profile
JAVA\_HOME=/jdk/jdk1.8.0_381
JRE\_HOME=/jdk/jdk1.8.0_381/jre
PATH=$JAVA\_HOME/bin:$JRE\_HOME/bin:$PATH
CLASSPATH=$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar:$JRE\_HOME/lib
export PATH JAVA_HOME CLASSPATH JRE_HOME
# 重新加载文件
[root@elasticsearch-1 ~]# source /etc/profile

# 查看是否配置成功
root@elasticsearch-1 jdk]# java -version
-bash: /jdk/jdk1.8.0_381/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
# 此问题是因为少了glibc依赖,所以需要安装依赖
[root@elasticsearch-1 jdk]# yum install glibc.i686 -y
[root@kibana jdk]# java -version
java version "1.8.0\_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot(TM) Client VM (build 25.381-b09, mixed mode)

2、关闭防火墙和selinux
# 关闭防火墙
[root@elasticsearch-1 ~]# systemctl stop firewalld && systemctl disable firewalld
# 关闭selinux
[root@elasticsearch-1 ~]# setenforce 0 
[root@elasticsearch-1 ~]# sed -i 's/^SELINUX=enforcing$/SELINUS=disabled/' /etc/selinux/config

3、操作系统参数优化
# 设置进程数和文件句柄数以及内存限制配置
[root@elasticsearch-1 ~]# vim /etc/security/limits.conf
elastic soft memlock unlimited   #不进行内存限制
elastic hard memlock unlimited
elastic soft nofile 65535	     #进行打开文件数限制
elastic hard nofile 65535
elastic soft nproc 65535		 #进行打开文件数限制
elastic hard nproc 65535

# 虚拟内存设置
[root@elasticsearch-1 ~]# vim /etc/sysctl.conf
vm.max\_map\_count=655350			 #max\_map\_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量
# 执行sysctl -p生效
[root@elasticsearch-1 ~]# sysctl -p

三、ELK的部署
1、elasticsearch

(1) 创建es用户

[root@elasticsearch-1 ~]# useradd elastic
[root@elasticsearch-1 ~]# echo "123456" | passwd --stdin elastic

(2) 解压elasticsearch压缩包

[root@elasticsearch-1 elk]# ls
elasticsearch-8.6.0-linux-x86_64.tar.gz
# 将elasticsearch-8.6.0-linux-x86\_64.tar.gz解压到 / 目录下
[root@elasticsearch-1 elk]# tar xf elasticsearch-8.6.0-linux-x86\_64.tar.gz -C /
# 授予权限
[root@elasticsearch-1 ~]# chown -R elastic:elastic /elasticsearch-8.6.0/
[root@elasticsearch-1 ~]# ll -d /elasticsearch-8.6.0/
drwxr-xr-x 9 elastic elastic 172 Aug 30 16:01 /elasticsearch-8.6.0/

(3) 创建elasticsearch数据以及日志所存放的目录

[root@elasticsearch-1 ~]# mkdir -p /data/elasticsearch/{data,logs}
# 授予权限
[root@elasticsearch-1 ~]# chown -R elastic:elastic /data/elasticsearch/{data,logs}
[root@elasticsearch-1 ~]# ll /data/elasticsearch/
drwxr-xr-x 5 elastic elastic   87 Sep  4 17:27 data
drwxr-xr-x 2 elastic elastic 4096 Aug 31 09:45 logs

(4) 配置集群间安全访问证书密钥(仅在elasticsearch-1节点上操作即可)

# 签发ca证书
[root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-certutil ca
# 输入该指令后一直回车即可

# 签发节点证书
[root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
# 输入该指令后一直回车即可

(5) 将证书移至certs目录(仅在elasticsearch-1节点上操作即可)

# 无cert目录就创建(切记需用elastic用户创建)
[root@elasticsearch-1 ~]# mv /elasticsearch-8.6.0/elastic-stack-ca.p12 /elasticsearch-8.6.0/config/certs
[root@elasticsearch-1 ~]# mv /elasticsearch-8.6.0/elastic-certificates.p12 /elasticsearch-8.6.0/config/certs
[root@elasticsearch-1 ~]# scp -r /elasticsearch-8.6.0/config/certs 192.168.220.22:/elasticsearch-8.6.0/config/
[root@elasticsearch-1 ~]# scp -r /elasticsearch-8.6.0/config/certs 192.168.220.23:/elasticsearch-8.6.0/config/

(6) 创建elasticsearch.keystore文件(仅在elasticsearch-1节点上操作即可)

[root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-keystore create
[root@elasticsearch-1 ~]# scp /elasticsearch-8.6.0/config/elasticsearch.keystore 192.168.220.22:/elasticsearch-8.6.0/config/
[root@elasticsearch-1 ~]# scp /elasticsearch-8.6.0/config/elasticsearch.keystore 192.168.220.23:/elasticsearch-8.6.0/config/

(7) 证书权限更新(所有的证书都必须是elastic权限)

[root@elasticsearch-1 ~]# ll /elasticsearch-8.6.0/config/certs/
-rw------- 1 elastic elastic 3596 Aug 29 11:53 elastic-certificates.p12
-rw------- 1 elastic elastic 2672 Aug 29 11:53 elastic-stack-ca.p12
[root@elasticsearch-1 ~]# ll /elasticsearch-8.6.0/config/elasticsearch.keystore
-rw-rw---- 1 elastic elastic 199 Aug 29 11:59 /elasticsearch-8.6.0/config/elasticsearch.keystore

(8) elasticsearch配置文件修改

vim /elasticsearch-8.6.0/config/elasticsearch.yml(添加如下内容)

# 集群名称,三个节点保持一致
cluster.name: zhangjiaxin-es
# 节点名称,一般为主机名,三个节点不一致
node.name: elasticsearch-1
# 节点角色,master表示管理节点,data表示数据节点,该配置中节点既是管理节点,也是数据节点,remote\_cluster\_client远程集群客户端节点。
node.roles: [master,data,remote_cluster_client]
# 数据存放路径
path.data: /data/elasticsearch/data
# 日志存放路径
path.logs: /data/elasticsearch/logs
# 绑定监听IP
network.host: 192.168.220.21
# 设置对外服务的http端口,默认为9200
http.port: 9200
# #是否允许跨域访问,true表示允许
http.cors.enabled: true
# 设置访问
http.cors.allow-origin: "\*"
# 设置节点端口
transport.port: 9300
# 节点发现
discovery.seed\_hosts: ["192.168.220.21", "192.168.220.22", "192.168.220.23"]
# 集群初始化时master节点
cluster.initial\_master\_nodes: ["elasticsearch-1", "elasticsearch-2", "elasticsearch-3"]
# 启用节点上ES的XPACK安全功能,相当于总开关
xpack.security.enabled: true
# 传输层的认证设置
xpack.security.transport.ssl:
  enabled: true
  verification\_mode: none
  keystore.path: certs/elastic-certificates.p12
  truststore.path: certs/elastic-certificates.p12

(9) elasticsearch jvm参数配置

# 按照虚机分配的内存配置-Xms和-Xmx,本文中虚机内存为2G,设置-Xms和-Xmx值为1G,为一半
[root@elasticsearch-1 ~]# vim /elasticsearch-8.6.0/config/jvm.options
-Xms1g
-Xmx1g

(10) 将elasticsearch加入systemctl

[root@elasticsearch-1 ~]# vim /usr/lib/systemd/system/elasticsearch.service
[Unit]
Description=elasticsearch
After=network.target

[Service]
Type=forking
User=elastic
ExecStart=/elasticsearch-8.6.0/bin/elasticsearch -d
PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65535
# 指定此进程可以打开的最大进程数
LimitNPROC=65535
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

(11) 启动elasticsearch

[root@elasticsearch-1 ~]# systemctl start elasticsearch && systemctl enable elasticsearch

(12) 设置elasticsearch密码

[root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-setup-passwords interactive

在这里插入图片描述

(13) 查看集群状态

curl -u elastic:123456 http://192.168.220.21:9200/_cat/health?v

在这里插入图片描述

2、kibana

(1) 创建用户

[root@elasticsearch-1 ~]# useradd kibana
[root@elasticsearch-1 ~]# echo "123456" | passwd --stdin kibana
# 程序不以root用户启动

(2) 解压kibana压缩包

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

ved的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 22
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux环境下安装部署ELK(Elasticsearch、Logstash、Kibana),可以按照以下步骤进行操作: 1. 首先,下载并安装Node.js:使用`wget`命令下载Node.js的tar包,例如`wget https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz`。然后,使用`tar -xf`命令解压下载的tar包文件,例如`tar -xf node-v8.11.3-linux-x64.tar.xz`。接下来,配置环境变量,在`/etc/profile`文件中添加以下内容: ``` export NODE_HOME=/usr/local/elk/node-v8.11.3-linux-x64 export PATH=$PATH:$NODE_HOME/bin ``` 最后,使用`source /etc/profile`命令刷新环境变量。 2. 验证Node.js安装是否成功,可以使用`node -v`命令查看Node.js版本。 3. 安装ELK的依赖包:使用`npm install -g`命令进行全局安装安装的包将放置在`/usr/local`或Node.js的安装目录下。如果不加`-g`参数,则是进行本地安装,包将放在当前目录的`./node_modules`下。 4. 下载并解压Kibana:使用`tar -zxvf`命令解压已下载的Kibana压缩包文件,例如`tar -zxvf kibana-7.8.0-linux-x86_64.tar.gz`。 至此,ELKLinux环境下的安装部署已经完成。请注意,以上步骤仅为基本操作,具体的安装部署过程可能因系统版本和个人需求而有所不同。请参考官方文档或相关教程以获得更详细的指导。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [elk安装部署linux环境(亲测有效)](https://blog.csdn.net/weixin_40691089/article/details/123635331)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值