前端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+kibanaweb192.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运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋侪,同时减轻各人的负担。
既有适合小白学习的零基础资料,也有适合3年以上履历的小同伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比力大,这里只是将部分目次大纲截图出来,每个节点里面都包含大厂面经、学习条记、源码讲义、实战项目、讲授视频,并且后续会持续更新
假如你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪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+ 道面试题, 内容 又全含金量又高
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、安卓逆向、云盘算
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |