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

打印 上一主题 下一主题

主题 1838|帖子 1838|积分 5514

前端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环境的部署

  1. # 导入jdk安装包
  2. [root@elasticsearch-1 ~]# mkdir /jdk && cd /jdk
  3. [root@elasticsearch-1 jdk]# ls
  4. jdk-8u381-linux-i586.tar.gz
  5. # 解压到当前文件夹
  6. [root@elasticsearch-1 jdk]# tar xf jdk-8u381-linux-i586.tar.gz
  7. [root@elasticsearch-1 jdk]# ls
  8. jdk1.8.0_381  jdk-8u381-linux-i586.tar.gz
  9. # 配置/etc/profile文件
  10. [root@elasticsearch-1 ~]# vim /etc/profile
  11. JAVA\_HOME=/jdk/jdk1.8.0_381
  12. JRE\_HOME=/jdk/jdk1.8.0_381/jre
  13. PATH=$JAVA\_HOME/bin:$JRE\_HOME/bin:$PATH
  14. CLASSPATH=$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar:$JRE\_HOME/lib
  15. export PATH JAVA_HOME CLASSPATH JRE_HOME
  16. # 重新加载文件
  17. [root@elasticsearch-1 ~]# source /etc/profile
  18. # 查看是否配置成功
  19. root@elasticsearch-1 jdk]# java -version
  20. -bash: /jdk/jdk1.8.0_381/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
  21. # 此问题是因为少了glibc依赖,所以需要安装依赖
  22. [root@elasticsearch-1 jdk]# yum install glibc.i686 -y
  23. [root@kibana jdk]# java -version
  24. java version "1.8.0\_381"
  25. Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
  26. Java HotSpot(TM) Client VM (build 25.381-b09, mixed mode)
复制代码
2、关闭防火墙和selinux

  1. # 关闭防火墙
  2. [root@elasticsearch-1 ~]# systemctl stop firewalld && systemctl disable firewalld
  3. # 关闭selinux
  4. [root@elasticsearch-1 ~]# setenforce 0
  5. [root@elasticsearch-1 ~]# sed -i 's/^SELINUX=enforcing$/SELINUS=disabled/' /etc/selinux/config
复制代码
3、操纵体系参数优化

  1. # 设置进程数和文件句柄数以及内存限制配置
  2. [root@elasticsearch-1 ~]# vim /etc/security/limits.conf
  3. elastic soft memlock unlimited   #不进行内存限制
  4. elastic hard memlock unlimited
  5. elastic soft nofile 65535             #进行打开文件数限制
  6. elastic hard nofile 65535
  7. elastic soft nproc 65535                 #进行打开文件数限制
  8. elastic hard nproc 65535
  9. # 虚拟内存设置
  10. [root@elasticsearch-1 ~]# vim /etc/sysctl.conf
  11. vm.max\_map\_count=655350                         #max\_map\_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量
  12. # 执行sysctl -p生效
  13. [root@elasticsearch-1 ~]# sysctl -p
复制代码
三、ELK的部署

1、elasticsearch

(1) 创建es用户
  1. [root@elasticsearch-1 ~]# useradd elastic
  2. [root@elasticsearch-1 ~]# echo "123456" | passwd --stdin elastic
复制代码
(2) 解压elasticsearch压缩包
  1. [root@elasticsearch-1 elk]# ls
  2. elasticsearch-8.6.0-linux-x86_64.tar.gz
  3. # 将elasticsearch-8.6.0-linux-x86\_64.tar.gz解压到 / 目录下
  4. [root@elasticsearch-1 elk]# tar xf elasticsearch-8.6.0-linux-x86\_64.tar.gz -C /
  5. # 授予权限
  6. [root@elasticsearch-1 ~]# chown -R elastic:elastic /elasticsearch-8.6.0/
  7. [root@elasticsearch-1 ~]# ll -d /elasticsearch-8.6.0/
  8. drwxr-xr-x 9 elastic elastic 172 Aug 30 16:01 /elasticsearch-8.6.0/
复制代码
(3) 创建elasticsearch数据以及日记所存放的目次
  1. [root@elasticsearch-1 ~]# mkdir -p /data/elasticsearch/{data,logs}
  2. # 授予权限
  3. [root@elasticsearch-1 ~]# chown -R elastic:elastic /data/elasticsearch/{data,logs}
  4. [root@elasticsearch-1 ~]# ll /data/elasticsearch/
  5. drwxr-xr-x 5 elastic elastic   87 Sep  4 17:27 data
  6. drwxr-xr-x 2 elastic elastic 4096 Aug 31 09:45 logs
复制代码
(4) 配置集群间安全访问证书密钥(仅在elasticsearch-1节点上操纵即可)
  1. # 签发ca证书
  2. [root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-certutil ca
  3. # 输入该指令后一直回车即可
  4. # 签发节点证书
  5. [root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
  6. # 输入该指令后一直回车即可
复制代码
(5) 将证书移至certs目次(仅在elasticsearch-1节点上操纵即可)
  1. # 无cert目录就创建(切记需用elastic用户创建)
  2. [root@elasticsearch-1 ~]# mv /elasticsearch-8.6.0/elastic-stack-ca.p12 /elasticsearch-8.6.0/config/certs
  3. [root@elasticsearch-1 ~]# mv /elasticsearch-8.6.0/elastic-certificates.p12 /elasticsearch-8.6.0/config/certs
  4. [root@elasticsearch-1 ~]# scp -r /elasticsearch-8.6.0/config/certs 192.168.220.22:/elasticsearch-8.6.0/config/
  5. [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节点上操纵即可)
  1. [root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-keystore create
  2. [root@elasticsearch-1 ~]# scp /elasticsearch-8.6.0/config/elasticsearch.keystore 192.168.220.22:/elasticsearch-8.6.0/config/
  3. [root@elasticsearch-1 ~]# scp /elasticsearch-8.6.0/config/elasticsearch.keystore 192.168.220.23:/elasticsearch-8.6.0/config/
复制代码
(7) 证书权限更新(所有的证书都必须是elastic权限)
  1. [root@elasticsearch-1 ~]# ll /elasticsearch-8.6.0/config/certs/
  2. -rw------- 1 elastic elastic 3596 Aug 29 11:53 elastic-certificates.p12
  3. -rw------- 1 elastic elastic 2672 Aug 29 11:53 elastic-stack-ca.p12
  4. [root@elasticsearch-1 ~]# ll /elasticsearch-8.6.0/config/elasticsearch.keystore
  5. -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(添加如下内容)
  1. # 集群名称,三个节点保持一致
  2. cluster.name: zhangjiaxin-es
  3. # 节点名称,一般为主机名,三个节点不一致
  4. node.name: elasticsearch-1
  5. # 节点角色,master表示管理节点,data表示数据节点,该配置中节点既是管理节点,也是数据节点,remote\_cluster\_client远程集群客户端节点。
  6. node.roles: [master,data,remote_cluster_client]
  7. # 数据存放路径
  8. path.data: /data/elasticsearch/data
  9. # 日志存放路径
  10. path.logs: /data/elasticsearch/logs
  11. # 绑定监听IP
  12. network.host: 192.168.220.21
  13. # 设置对外服务的http端口,默认为9200
  14. http.port: 9200
  15. # #是否允许跨域访问,true表示允许
  16. http.cors.enabled: true
  17. # 设置访问
  18. http.cors.allow-origin: "\*"
  19. # 设置节点端口
  20. transport.port: 9300
  21. # 节点发现
  22. discovery.seed\_hosts: ["192.168.220.21", "192.168.220.22", "192.168.220.23"]
  23. # 集群初始化时master节点
  24. cluster.initial\_master\_nodes: ["elasticsearch-1", "elasticsearch-2", "elasticsearch-3"]
  25. # 启用节点上ES的XPACK安全功能,相当于总开关
  26. xpack.security.enabled: true
  27. # 传输层的认证设置
  28. xpack.security.transport.ssl:
  29.   enabled: true
  30.   verification\_mode: none
  31.   keystore.path: certs/elastic-certificates.p12
  32.   truststore.path: certs/elastic-certificates.p12
复制代码
(9) elasticsearch jvm参数配置
  1. # 按照虚机分配的内存配置-Xms和-Xmx,本文中虚机内存为2G,设置-Xms和-Xmx值为1G,为一半
  2. [root@elasticsearch-1 ~]# vim /elasticsearch-8.6.0/config/jvm.options
  3. -Xms1g
  4. -Xmx1g
复制代码
(10) 将elasticsearch参加systemctl
  1. [root@elasticsearch-1 ~]# vim /usr/lib/systemd/system/elasticsearch.service
  2. [Unit]
  3. Description=elasticsearch
  4. After=network.target
  5. [Service]
  6. Type=forking
  7. User=elastic
  8. ExecStart=/elasticsearch-8.6.0/bin/elasticsearch -d
  9. PrivateTmp=true
  10. # 指定此进程可以打开的最大文件数
  11. LimitNOFILE=65535
  12. # 指定此进程可以打开的最大进程数
  13. LimitNPROC=65535
  14. # 最大虚拟内存
  15. LimitAS=infinity
  16. # 最大文件大小
  17. LimitFSIZE=infinity
  18. # 超时设置 0-永不超时
  19. TimeoutStopSec=0
  20. # SIGTERM是停止java进程的信号
  21. KillSignal=SIGTERM
  22. # 信号只发送给给JVM
  23. KillMode=process
  24. # java进程不会被杀掉
  25. SendSIGKILL=no
  26. # 正常退出状态
  27. SuccessExitStatus=143
  28. [Install]
  29. WantedBy=multi-user.target
复制代码
(11) 启动elasticsearch
  1. [root@elasticsearch-1 ~]# systemctl start elasticsearch && systemctl enable elasticsearch
复制代码
(12) 设置elasticsearch密码
  1. [root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-setup-passwords interactive
复制代码

(13) 查看集群状态
  1. curl -u elastic:123456 http://192.168.220.21:9200/_cat/health?v
复制代码

2、kibana

(1) 创建用户
  1. [root@elasticsearch-1 ~]# useradd kibana
  2. [root@elasticsearch-1 ~]# echo "123456" | passwd --stdin kibana
  3. # 程序不以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+ 道面试题, 内容 又全含金量又高


  • 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、安卓逆向、云盘算

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表