OpenStack & Distributed Log Querier
做一个小项目,使用openstack搭建1个控制节点,4个计算节点,然后使用分布式日志查询器查询日志
网络结构
controller
compute
compute02
compute03
compute04
ens33
192.168.10.10
192.168.10.20
192.168.10.30
192.168.10.40
192.168.10.50
ens34
192.168.20.10
192.168.20.20
192.168.20.30
192.168.20.40
192.168.20.50
ens33和34是网络接口
Openstack搭建 前期准备 资源准备 点击下载资源包云盘
虚拟机配置 我所使用的是Vmware 16 Pro版本 选择更改设置 添加一张新的网卡,两个都选择仅主机模式,填写对应的ip地址
网络1 仅主机 192.168.10.0
网络2 仅主机 192.168.20.0
新建虚拟机 创建新的虚拟机->选择centos7 iso ->分配磁盘大小40G->点击完成 修改虚拟机配置 配置内存和处理器,然后添加网络适配器,选择刚刚设置好的两个网卡
初步配置第一台虚拟机 开机后设置安装位置,选择40G硬盘,done 配置用户名和密码,重启 重启完成后,输入用户名root,输入密码(注意linux中输入密码是不显示的),输入完成按回车 接下来编辑网卡设置
1 2 3 4 5 6 7 vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=static ONBOTT=yes IPADDR=192.168.10.10 NETMASK=255.255.255.0
重启一下
再修改一下另一个网卡
1 2 3 vi /etc/sysconfig/network-scripts/ifcfg-ens34 IPADDR=192.168.20.10 NETMASK=255.255.255.0
关闭防火墙
1 2 systemctl stop firewalld systemctl disable firewalld
关闭安全策略
1 2 3 setenforce 0 vi /etc/selinux/config SELINUX=disable
设置hosts
1 2 3 4 5 6 vi /etc/hosts 192.168.10.10 controller 192.168.10.20 compute 192.168.10.30 compute02 192.168.10.40 compute03 192.168.10.50 compute04
到这里基础步骤就完成啦!
初步配置其他虚拟机 将第一台机器关机,右击克隆 一路下一步即可 我建议先克隆一台机器,当compute一个节点配置完毕后,再克隆配置好的compute
配置compute节点 同样也是先改好ip地址然后通过ssh连接
1 2 3 4 5 6 7 8 9 10 11 vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=static ONBOTT=yes IPADDR=192.168.10.20 NETMASK=255.255.255.0 systemctl restart network vi /etc/sysconfig/network-scripts/ifcfg-ens34 IPADDR=192.168.20.20 NETMASK=255.255.255.0
配置源 1 2 3 4 hostnamectl set-hostname controller hostnamectl set-hostname compute
上传两个ISO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 yum 源配置 vi /etc/yum.repos.d/local.repo [centos] name=centos enabled=1 gpgcheck=0 baseurl=file:///opt/centos [iaas] name=iaas enabled=1 gpgcheck=0 baseurl=file:///opt/iaas/iaas-repo mkdir /opt/centosmkdir /opt/iaas---------------------------------------------------- yum 源配置 rm -rf /etc/yum.repos.d/*vi /etc/yum.repos.d/ftp.repo [centos] name=centos enabled=1 gpgcheck=0 baseurl=ftp://192.168.10.10/centos [iaas] name=iaas enabled=1 gpgcheck=0 baseurl=ftp://192.168.10.10/iaas/iaas-repo mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt/ cp -rvf /mnt/* /opt/centosumount /mnt/ mount -o loop openstack.iso /mnt/ cp -rvf /mnt/* /opt/iaas/umount /mnt/ yum repolist rm -rf /etc/yum.repos.d/C*yum install vsftpd -y vi /etc/vsftpd/vsftpd.conf anon_root=/opt systemctl restart vsftpd systemctl enable vsftpd
安装Openstack 1 2 yum install openstack-iaas -y
安装完成刷新一下终端 接下来我们要配置openstack文件 在controller中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 vi /etc/openstack/openrc.sh ctrl+v+G+d :%s/PASS=/PASS=000000/g HOST_IP=192.168.10.10 HOST_NAME=controller HOST_IP_NODE=192.168.10.20,192.168.10.30,192.168.10.40,192.168.10.50 HOST_NAME_NODE=compute network_segment_IP=192.168.0.0/16 INTERFACE_NAME=ens34 Physical_NAME=provider minvlan=1 maxvlan=400 BLOCK_DISK=sdb OBJECT_DISK=sdc STORAGE_LOCAL_NET_IP=192.168.10.20
其他地方按照提示样例写就可以 然后将这份配置文件也传到compute节点中
1 2 scp /etc/openstack/openrc.sh root@192.168.10.20:/etc/openstack/ 输入密码
安装主要组件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 iaas-pre-host.sh 重新连接ssh iaas-install-mysql.sh iaas-install-keystone.sh iaas-install-glance.sh iaas-install-placement.sh iaas-install-nova-controller.sh iaas-install-neutron-controller.sh iaas-install-dashboard.sh iaas-install-nova-compute.sh iaas-install-neutron-compute.sh
分布式日志查询 在两台机器上安装go
1 2 3 4 5 6 7 8 9 tar -zxf go1.17.2.linux-amd64.tar.gz -C /usr/local vi /etc/profile export GO111MODULE=onexport GOROOT=/usr/local/goexport GOPATH=/home/gopathexport PATH=$PATH :$GOROOT /bin:$GOPATH /binsource /etc/profile
代码链接https://github.com/44maker/DistributedLogQuerier 将代码上传到两台机器 到这里所有的配置工作就完成啦 可以将机器关闭,然后克隆compute节点,再复制3台机器,安装上文讲过的配置一下ip地址,ssh连接上
Test 1 2 3 4 5 6 go run server.go go build client.go ./client [query] [log file name] example: ./client name
单元测试 1 2 3 4 5 6 go run generate_testfiles.go go run server.go go test -v client_test.go
参考结果