Day07-ES集群加密,kibana的RBAC实战,zookeeper集群搭建,zookeeper根本管 ...

打印 上一主题 下一主题

主题 550|帖子 550|积分 1650

0、昨日内容回顾:



  • filebeat多实例
  • logstash的多实例
  • logstash的分支语法
  • logstash的pipeline
  • logstash的filter插件之mutate,useragent
  • ELFK架构采集日志写入ES集群,并使用kibana出图展示

    • map
    • 可视化库
    • dashboard

  • filebeat的模块使用
1、基于nginx的反向代理控制访问kibana

(1)摆设nginx服务
略,参考之前的条记即可。
(2)编写nginx的设置文件
  1. cat > /etc/nginx/conf.d/kibana.conf <<'EOF'
  2. server {
  3.   listen 80;
  4.   server_name kibana.oldboyedu.com;
  5.   location / {
  6.      proxy_pass http://10.0.0.103:5601$request_uri;
  7.      auth_basic "oldboyedu kibana web!";
  8.      auth_basic_user_file conf/htpasswd;
  9.   }
  10. }
  11. EOF
复制代码
(3)创建账号文件
  1. mkdir -pv /etc/nginx/conf
  2. yum -y install httpd-tools
  3. htpasswd -c -b /etc/nginx/conf/htpasswd admin oldboyedu
复制代码
(4)启动nginx服务
  1. nginx -t
  2. systemctl reload nginx
复制代码
(5)访问nginx验证kibana访问
如下图所示。
2、设置ES集群TSL认证:

(1)elk101节点天生证书文件
  1. cd /oldboyedu/softwares/es7/elasticsearch-7.17.5/
  2. ./bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""  --days 3650
复制代码
(2)elk101节点为证书文件修改属主和属组
  1. chown oldboyedu:oldboyedu config/elastic-certificates.p12
复制代码
(3)elk101节点同步证书文件到其他节点
  1. data_rsync.sh `pwd`/config/elastic-certificates.p12
复制代码
(4)elk101节点修改ES集群的设置文件
  1. vim /oldboyedu/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml
  2. ...
  3. cluster.name: oldboyedu-linux85-binary
  4. path.data: /oldboyedu/data/es7
  5. path.logs: /oldboyedu/logs/es7
  6. network.host: 0.0.0.0
  7. discovery.seed_hosts: ["elk101.oldboyedu.com","elk102.oldboyedu.com","elk103.oldboyedu.com"]
  8. cluster.initial_master_nodes: ["elk103.oldboyedu.com"]
  9. reindex.remote.whitelist: "10.0.0.*:19200"
  10. node.data: true
  11. node.master: true
  12. # 在最后一行添加以下内容
  13. xpack.security.enabled: true
  14. xpack.security.transport.ssl.enabled: true
  15. xpack.security.transport.ssl.verification_mode: certificate
  16. xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
  17. xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
复制代码
(5)elk101节点同步ES设置文件到其他节点
  1. data_rsync.sh `pwd`/config/elasticsearch.yml
复制代码
(6)全部节点重启ES集群
  1. systemctl restart es7
复制代码
(7)天生随机密码
  1. [root@elk101.oldboyedu.com elasticsearch-7.17.5]# ./bin/elasticsearch-setup-passwords auto
  2. warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
  3. Future versions of Elasticsearch will require Java 11; your Java version from [/oldboyedu/softwares/jdk1.8.0_291/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.
  4. Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
  5. The passwords will be randomly generated and printed to the console.
  6. Please confirm that you would like to continue [y/N]y
  7. Changed password for user apm_system
  8. PASSWORD apm_system = by9j4WkXTocxc7Gl7l8S
  9. Changed password for user kibana_system
  10. PASSWORD kibana_system = t0HSSsrBPACFTDxor4Ix
  11. Changed password for user kibana
  12. PASSWORD kibana = t0HSSsrBPACFTDxor4Ix
  13. Changed password for user logstash_system
  14. PASSWORD logstash_system = JUXrlCfaMa74seZJnhw4
  15. Changed password for user beats_system
  16. PASSWORD beats_system = 2V39PZkHNGIymaVaDFx0
  17. Changed password for user remote_monitoring_user
  18. PASSWORD remote_monitoring_user = UZplScGKm6zAmMCO9Jmg
  19. Changed password for user elastic
  20. PASSWORD elastic = e31LGPoUxik7fnitQidO
复制代码
(8)postman访问

3、设置kibana毗连ES集群


(1)修改kibana的设置文件
  1. [root@elk103.oldboyedu.com elasticsearch-7.17.5]# yy /etc/kibana/kibana.yml
  2. server.host: "0.0.0.0"
  3. elasticsearch.hosts: ["http://10.0.0.101:9200","http://10.0.0.102:9200","http://10.0.0.103:9200"]
  4. elasticsearch.username: "kibana_system"
  5. elasticsearch.password: "VxFV4WjsHyxsA3CH2LQT"
  6. i18n.locale: "zh-CN"
  7. [root@elk103.oldboyedu.com elasticsearch-7.17.5]#
复制代码
(2)重启kibana
  1. [root@elk103.oldboyedu.com elasticsearch-7.17.5]# systemctl restart kibana
复制代码
(3)使用elastic用户登录并修改密码

4、设置filebeat毗连ES集群

(1)修改设置文件
  1. [root@elk103.oldboyedu.com filebeat-7.17.5-linux-x86_64]# cat config/24-log-to-es_tls.yaml
  2. filebeat.inputs:
  3. - type: log
  4.   paths:
  5.     - /tmp/oldboyedu-linux85/test.log
  6. output.elasticsearch:
  7.   hosts: ["http://10.0.0.101:9200","http://10.0.0.102:9200","http://10.0.0.103:9200"]
  8.   username: "elastic"
  9.   password: "yinzhengjie"
  10.   index: "oldboyedu-jiaoshi07-test"
  11. setup.ilm.enabled: false
  12. setup.template.name: "oldboyedu-jiaoshi07"
  13. setup.template.pattern: "oldboyedu-jiaoshi07-*"
  14. setup.template.overwrite: true
  15. setup.template.settings:
  16.   index.number_of_shards: 3
  17.   index.number_of_replicas: 0
复制代码
(2)启动filebeat实例
  1. [root@elk103.oldboyedu.com filebeat-7.17.5-linux-x86_64]# filebeat -e -c config/24-log-to-es_tls.yaml
复制代码
5、设置logstash毗连ES集群

(1)编写设置文件
  1. [root@elk101.oldboyedu.com ~]# cat config/16-file-to-es_tsl.conf
  2. input {
  3.   file {
  4. # 指定本地文件的路径
  5. path => "/tmp/oldboyedu-linux85-file"
  6. # 指定读取文件的起始位置,但前提是该文件之前未读取过或者未在".sincedb"文件中记录。
  7. start_position => "beginning"
  8.   }
  9. }
  10. output {
  11.   # stdout {}
  12.   elasticsearch {
  13.     hosts => ["http://localhost:9200"]
  14.     index => "oldboyedu-linux85-logstash-file"
  15.     user => "elastic"
  16.     password => "yinzhengjie"
  17.   }
  18. }
  19. [root@elk101.oldboyedu.com ~]#
  20. [root@elk101.oldboyedu.com ~]#
复制代码
(2)启动logstash实例
  1. [root@elk101.oldboyedu.com ~]# logstash -rf config/16-file-to-es_tsl.conf
复制代码
查看logstash采集文件的偏移量路径。
  1. ls -la /oldboyedu/softwares/logstash-7.17.5/data/plugins/inputs/file/
复制代码
6、自定义脚色使用logstash组件写入数据到ES集群

  1. [root@elk101.oldboyedu.com ~]# cat config/16-file-to-es_tsl.conf
  2. input {
  3.   file {
  4.      # 指定本地文件的路径
  5.      path => "/tmp/oldboyedu-linux85-file"
  6.      # 指定读取文件的起始位置,但前提是该文件之前未读取过或者未在".sincedb"文件中记录。
  7.      start_position => "beginning"
  8.   }
  9. }
  10. output {
  11.   # stdout {}
  12.   elasticsearch {
  13.     hosts => ["http://localhost:9200"]
  14.     #index => "oldboyedu-linux85-logstash-file"
  15.     index => "oldboyedu-linux85-logstash-demo"
  16.     user => "jiaoshi07-logstash"
  17.     password => "123456"
  18.   }
  19. }
  20. [root@elk101.oldboyedu.com ~]#
复制代码


7、摆设zookeeper单点

(1)下载zookeeper软件
  1. https://zookeeper.apache.org/releases.html
  2. [root@elk101.oldboyedu.com ~]# wget http://192.168.15.253/ElasticStack/day07-/softwares/apache-zookeeper-3.8.0-bin.tar.gz
复制代码
(2)解压软件包
  1. [root@elk101.oldboyedu.com ~]# tar xf apache-zookeeper-3.8.0-bin.tar.gz -C /oldboyedu/softwares/
复制代码
(3)创建符号毗连
  1. [root@elk101.oldboyedu.com ~]# cd /oldboyedu/softwares/ && ln -sv apache-zookeeper-3.8.0-bin zk
复制代码
(4)声明zk的情况变量
  1. [root@elk101.oldboyedu.com softwares]# cat > /etc/profile.d/kafka.sh <<'EOF'  
  2. #!/bin/bash
  3. export ZK_HOME=/oldboyedu/softwares/zk
  4. export PATH=$PATH:$ZK_HOME/bin
  5. EOF
  6. source /etc/profile.d/kafka.sh
复制代码
(5)创建zk的设置文件
  1. [root@elk101.oldboyedu.com ~]# cp /oldboyedu/softwares/zk/conf/{zoo_sample.cfg,zoo.cfg}
复制代码
(6)启动zk节点
  1. [root@elk101.oldboyedu.com ~]# zkServer.sh start
  2. [root@elk101.oldboyedu.com ~]# zkServer.sh status
  3.   # 查看zk服务的状态信息
  4. [root@elk101.oldboyedu.com ~]# zkServer.sh stop
  5. [root@elk101.oldboyedu.com ~]# zkServer.sh restart
复制代码
(7)毗连ZK节点
  1. [root@elk101.oldboyedu.com ~]# zkCli.sh
复制代码
8、zookeeper的下令行根本管理

  1. # 查看
  2. ls /  # 查看根(/)下有多少子zookeeper node,简称"znode"。       
  3. get /oldboyedu-linux85/jiaoshi07   # 查看"/oldboyedu-linux85/jiaoshi07"的数据。
  4. # 创建
  5. create /oldboyedu-linux85  # 在根路径下创建一个名为"oldboyedu-linux85"的"znode"。
  6. create /oldboyedu-linux85/jiaoshi07 123 # 在"/oldboyedu-linux85/"znode下创建一个名为"jiaoshi07"的子znode,并指定该znode数据为"123"。
  7. create -s /oldboyedu-linux85/jiaoshi07/liwenxuan 88888 # 创建一个前缀为"/oldboyedu-linux85/jiaoshi07/liwenxuan"有序编号的znode,数据为88888
  8. create -s -e /oldboyedu-linux85/linux85/test # 创建一个名为"/oldboyedu-linux85/linux85/test"的临时znode。当前会话结束,临时znode会自动删除。
  9. # 修改
  10. set /oldboyedu-linux85/jiaoshi07 456 # 将"/oldboyedu-linux85/jiaoshi07 "的znode数据修改为456.
  11. # 删除
  12. delete /oldboyedu-linux85/test02 # 删除名为"/oldboyedu-linux85/test02"的znode,但该znode不能有子znode。即必须为空。
  13. deleteall /oldboyedu-linux85/jiaoshi07 # 递归删除"/oldboyedu-linux85/jiaoshi07"下的所有znode。
复制代码

9、zookeeper集群摆设

(1)创建zk的数据目次
  1. [root@elk101.oldboyedu.com ~]# install -d /oldboyedu/data/zk
复制代码
(2)修改单点zk的设置文件
  1. [root@elk101.oldboyedu.com ~]# vim /oldboyedu/softwares/zk/conf/zoo.cfg                          
  2. ...
  3. # 定义最小单元的时间范围tick。
  4. tickTime=2000
  5. # 启动时最长等待tick数量。
  6. initLimit=5
  7. # 数据同步时最长等待的tick时间进行响应ACK
  8. syncLimit=2
  9. # 指定数据目录
  10. dataDir=/oldboyedu/data/zk
  11. # 监听端口
  12. clientPort=2181
  13. # 开启四字命令允许所有的节点访问。
  14. 4lw.commands.whitelist=*
  15. # server.ID=A:B:C[:D]
  16. # ID:
  17. #    zk的唯一编号。
  18. # A:
  19. #    zk的主机地址。
  20. # B:
  21. #    leader的选举端口,是谁leader角色,就会监听该端口。
  22. # C:
  23. #    数据通信端口。
  24. # D:
  25. #    可选配置,指定角色。
  26. server.101=10.0.0.101:2888:3888
  27. server.102=10.0.0.102:2888:3888
  28. server.103=10.0.0.103:2888:3888
复制代码
(3)同步数据即可
  1. [root@elk101.oldboyedu.com ~]# data_rsync.sh /oldboyedu/softwares/zk/
  2. [root@elk101.oldboyedu.com ~]# data_rsync.sh /oldboyedu/softwares/apache-zookeeper-3.8.0-bin/
  3. [root@elk101.oldboyedu.com ~]# data_rsync.sh /oldboyedu/data/zk/
  4. [root@elk101.oldboyedu.com ~]# data_rsync.sh /etc/profile.d/kafka.sh        
复制代码
(4)创建myid文件
  1. [root@elk101.oldboyedu.com ~]# for ((host_id=101;host_id<=103;host_id++)) do ssh 10.0.0.${host_id} "echo ${host_id} > /oldboyedu/data/zk/myid";done
复制代码
(5)全部节点启动zk服务
  1. [root@elk101.oldboyedu.com ~]# zkServer.sh start
  2. [root@elk102.oldboyedu.com ~]# source /etc/profile.d/kafka.sh
  3. [root@elk102.oldboyedu.com ~]# zkServer.sh start
  4. [root@elk103.oldboyedu.com ~]# source /etc/profile.d/kafka.sh
  5. [root@elk103.oldboyedu.com ~]# zkServer.sh start
复制代码
(6)查看zk的脚色状态
  1. [root@elk101.oldboyedu.com ~]# zkServer.sh status
复制代码
leader选举流程图解

10、编写zk的集群管理脚本

  1. [root@elk101.oldboyedu.com ~]# cat /usr/local/sbin/zkManager.sh
  2. #!/bin/bash
  3. #判断用户是否传参
  4. if [ $# -ne 1 ];then
  5.     echo "无效参数,用法为: $0  {start|stop|restart|status}"
  6.     exit
  7. fi
  8. #获取用户输入的命令
  9. cmd=$1
  10. #定义函数功能
  11. function zookeeperManger(){
  12.     case $cmd in
  13.     start)
  14.         echo "启动服务"        
  15.         remoteExecution start
  16.         ;;
  17.     stop)
  18.         echo "停止服务"
  19.         remoteExecution stop
  20.         ;;
  21.     restart)
  22.         echo "重启服务"
  23.         remoteExecution restart
  24.         ;;
  25.     status)
  26.         echo "查看状态"
  27.         remoteExecution status
  28.         ;;
  29.     *)
  30.         echo "无效参数,用法为: $0  {start|stop|restart|status}"
  31.         ;;
  32.     esac
  33. }
  34. #定义执行的命令
  35. function remoteExecution(){
  36.     for (( i=101 ; i<=103 ; i++ )) ; do
  37.             tput setaf 2
  38.             echo ========== 10.0.0.${i} zkServer.sh  $1 ================
  39.             tput setaf 9
  40.             ssh 10.0.0.${i}  "source /etc/profile.d/kafka.sh; zkServer.sh $1 2>/dev/null"
  41.     done
  42. }
  43. #调用函数
  44. zookeeperManger
  45. [root@elk101.oldboyedu.com ~]# chmod +x /usr/local/sbin/zkManager.sh
  46. [root@elk101.oldboyedu.com ~]# zkManager.sh start
  47. [root@elk101.oldboyedu.com ~]# zkManager.sh staus
复制代码
验证集群:
  1. [root@elk103.oldboyedu.com ~]# zkCli.sh -server 10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181
复制代码
11、使用zkWeb管理zookeeper集群

(1)下载软件包
  1. [root@elk103.oldboyedu.com ~]# wget http://192.168.15.253/ElasticStack/day07-/softwares/zkWeb-v1.2.1.jar
复制代码
(2)启动zkweb
  1. java -jar zkWeb-v1.2.1.jar
复制代码

12、快速搭建kafka单点情况

(1)下载kafka软件包
  1. [root@elk101.oldboyedu.com ~]# wget http://192.168.15.253/ElasticStack/day07-/softwares/kafka_2.13-3.2.1.tgz
复制代码
(2)解压软件包
  1. [root@elk101.oldboyedu.com ~]# tar xf kafka_2.13-3.2.1.tgz -C /oldboyedu/softwares/
复制代码
(3)创建符号毗连
  1. [root@elk101.oldboyedu.com ~]# cd /oldboyedu/softwares/ && ln -svf kafka_2.13-3.2.1 kafka
复制代码
(4)设置情况变量
  1. [root@elk101.oldboyedu.com softwares]# cat /etc/profile.d/kafka.sh
  2. #!/bin/bash
  3. export ZK_HOME=/oldboyedu/softwares/zk
  4. export PATH=$PATH:$ZK_HOME/bin
  5. export KAFKA_HOME=/oldboyedu/softwares/kafka
  6. export PATH=$PATH:$KAFKA_HOME/bin
  7. [root@elk101.oldboyedu.com softwares]# source /etc/profile.d/kafka.sh
复制代码
(5)修改设置文件
  1. [root@elk101.oldboyedu.com ~]# yy /oldboyedu/softwares/kafka/config/server.properties
  2. ...
  3. broker.id=101
  4. zookeeper.connect=10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181/oldboyedu-linux85-kafka321
  5. [root@elk101.oldboyedu.com ~]#
复制代码
(6)启动kafka单点
  1. [root@elk101.oldboyedu.com softwares]# kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
复制代码
(7)验证zookeeper的源数据信息
  1. [root@elk101 softwares]# kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
  2. [root@elk101 softwares]# jps
  3. 4134 Jps
  4. 1134 Elasticsearch
  5. 1135 Elasticsearch
  6. 2815 QuorumPeerMain
  7. [root@elk101 softwares]# cat /tmp/kafka-logs/meta.properties
  8. #
  9. #Fri Jun 07 11:14:46 CST 2024
  10. cluster.id=H2ceIpqTT1iUzb46e5jeKw
  11. version=0
  12. broker.id=101
  13. [root@elk101 softwares]# jps
  14. 4156 Jps
  15. 1134 Elasticsearch
  16. 1135 Elasticsearch
  17. 2815 QuorumPeerMain
  18. [root@elk101 softwares]# rm -rf /tmp/kafka-logs/
  19. [root@elk101 softwares]# kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
复制代码
在zkWeb查看即可。

今日作业
(1)完成课堂的全部练习并整理思维导图;
扩展作业:
(1)使用ansible一键摆设zookeeper集群;

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

美食家大橙子

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表