『亚马逊云科技产品测评』活动征文|借助AWS EC2搭建服务器群组运维系统Zabbix+spug

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。

本文基于以下软硬件工具: 

+ aws ec2

+ frp-0.52.3

+ zabbix 6.0 LTS

+ spug-3.3

+ win10笔记本

0. 环境

- 虚拟机ubuntu22(server),192.168.8.162

- 虚拟机ubuntu22(agent),192.168.8.173

- 笔记本win10,192.168.8.132
- aws ec2,54.195.224.245

目录

0. 环境

1. 虚拟机ubuntu22安装zabbix

1.1 安装 Zabbix 仓库

1.2 安装 Zabbix server, frontend, agent

1.3 创建 初始 数据库

1.4 Configure the database for Zabbix server

1.5 Configure PHP for Zabbix frontend

1.6 Start Zabbix server and agent processes

1.7 Open Zabbix UI web page

1.8 frp

1.8.1 下载可执行文件

1.8.2 解压

1.8.3 切换目录

1.8.4 修改配置

1.8.5 运行

2. aws ec2准备

2.1 控制台

2.2 连接到实例

2.3 部署frp

2.3.1 下载可执行文件

2.3.2 解压

2.3.3 切换目录

2.3.4 修改配置

2.3.5 服务器开启端口

2.3.6 测试web

2.3.7 测试zabbix server部署情况

3. 添加监控设备

3.1 win10

3.1.1 下载

3.2 修改配置

3.3 启动 zabbix agent

3.4 web添加主机

3.2 ubuntu22

3.2.1 切换用户

3.2.2 Install and configure Zabbix for your platform

 3.2.4 重启 zabbix服务

3.2.5 web添加主机

3.5 效果

小结

4. 服务器部署spug

4.1 安装docker

4.2 创建docker-compose.yml

4.3 启动容器

4.4 初始化

4.6 通过aws访问本主机

 4.6.1 开通端口

4.6.2  frp客户端添加端口

4.6.3 测试


1. 虚拟机ubuntu22安装zabbix

切换账号

sudo -s

1.1 安装 Zabbix 仓库

wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
apt update

1.2 安装 Zabbix server, frontend, agent

apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

1.3 创建 初始 数据库

mysql -uroot -p

问题:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘

apt install mysql-server

mysql默认输入root密码是password。

mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix


password

mysql -uroot -p


password

mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;


1.4 Configure the database for Zabbix server

Edit file /etc/zabbix/zabbix_server.conf

/etc/zabbix/zabbix_server.conf

添加:

DBPassword=password 



1.5 Configure PHP for Zabbix frontend

Edit file /etc/zabbix/nginx.conf uncomment and set 'listen' and 'server_name' directives.

vim  /etc/zabbix/nginx.conf

取消注释这两行:
 

# listen 8080;
# server_name example.com;

 


1.6 Start Zabbix server and agent processes


启动zabbix服务:

systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm


1.7 Open Zabbix UI web page


http://192.168.125.146:8080/setup.php
 

 
默认语音    配置中文


配置DB        配置数据库密码 password


配置时区    Asia/Shanghai


用户名:Admin
密码:zabbix

1.8 frp

1.8.1 下载可执行文件


当前最新版本是0.52.3

wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz

1.8.2 解压

tar -zvxf frp_0.52.3_linux_amd64.tar.gz

1.8.3 切换目录

cd frp_0.52.3_linux_amd64

1.8.4 修改配置

vim frpc.ini

修改为以下内容:

serverAddr = "54.195.224.245"
serverPort = 30000auth.method = "token" 
auth.token = "520101"[[proxies]]
name = "zabbix_agent"
type = "tcp"
localIP = "127.0.0.1"
localPort = 10050
remotePort = 10050[[proxies]]
name = "zabbix_server"
type = "tcp"
localIP = "127.0.0.1"
localPort = 10051
remotePort = 10051[[proxies]]
name = "zabbix_nginx"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 10052

1.8.5 运行

./frpc -c frpc.toml &


 


2. aws ec2准备

2.1 控制台


本步骤我们低成本创建服务器。
https://aws.amazon.com/cn/

在控制台主页,地区选择 爱尔兰 eu-west-1

创建服务器
Search栏输入 -> EC2
-> 启动实例 -> 
-> Quick Start: Amazon Linux aws,
-> 实例类型:选择符合条件的免费套餐,t2.micro
-> 密钥对:创建密钥对
-> 名称:zzzzzzzzzzzzzzzzzzzz2#,RSA,.pem,然后保存到本地。ssh登录需要用到。
-> 创建实例

得到了服务器IP:54.195.224.245

2.2 连接到实例

用 MobaXterm为例
打开 MobaXterm -> Session -> SSH 
-> Remote host: 54.229.195.3
-> 勾选Specify username: ec2-user
-> Avanced SSH settings
-> 勾选 Use private key


2.3 部署frp


2.3.1 下载可执行文件


https://github.com/fatedier/frp/releases
下载

当前最新版本是0.52.3

wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz

2.3.2 解压


tar -zvxf frp_0.52.3_linux_amd64.tar.gz

2.3.3 切换目录

cd frp_0.52.3_linux_amd64

2.3.4 修改配置

vim frps.toml

修改为以下内容:

bindPort = 30000
auth.method = "token" 
auth.token = "520101"
webServer.addr = "0.0.0.0"
webServer.port = 30001       
webServer.user = "admin"
webServer.password = "jian@123"

运行

./frps -c frps.toml &


2.3.5 服务器开启端口


通过web配置,开启自定义TCP,30000、30001、10050、10051、10052



2.3.6 测试web

浏览器打开 54.195.224.245:30001

 


2.3.7 测试zabbix server部署情况

浏览器打开 54.195.224.245:10052

 

 登录账号和密码:

Admin

zabbix


3. 添加监控设备

3.1 win10

3.1.1 下载

https://www.zabbix.com/download_agents?version=6.4&release=6.4.8&os=Windows&os_version=Any&hardware=amd64&encryption=OpenSSL&packaging=Archive&show_legacy=0

下载
zabbix_agent-6.0.23-windows-amd64-openssl.zip
解压到 
zabbix_agent-6.0.23-windows-amd64-openssl

3.2 修改配置


修改agent配置文件
zabbix_agent-6.0.23-windows-amd64-openssl\conf\zabbix_agentd.conf

Server=192.168.8.162
ServerActive=192.168.8.162
Hostname=192.168.8.132

其中Server和ServerActive用aws EC2的公网IP。Hostname用win10的ip。

3.3 启动 zabbix agent


打开命令行

切换目录zabbix_agent-6.0.23-windows-amd64-openssl\bin
然后:

zabbix_agentd.exe -c ..\conf\zabbix_agentd.conf -f

3.4 web添加主机

打开web:http://54.195.224.245:10052

配置 -> 主机 -> 创建主机
-> 主机名称:192.168.8.132
-> 模板:    AIX by Zabbix agent
-> 群组:    Templates
-> Interfaces: 客户端 192.168.8.132:10050
-> 更新

3.2 ubuntu22

3.2.1 切换用户


sudo -s


3.2.2 Install and configure Zabbix for your platform


a. Install Zabbix repository

# wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
# dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
# apt update

b. Install Zabbix agent

# apt install zabbix-agent

3.2.3 修改agent配置文件

vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.8.162    #指定zabbix server地 址
ServerActive=192.168.8.162
Hostname=192.168.8.173


 
3.2.4 重启 zabbix服务


Start Zabbix agent process and make it start at system boot.

# systemctl restart zabbix-agent
# systemctl enable zabbix-agent

3.2.5 web添加主机

打开web:http://54.195.224.245:10052

配置 -> 主机 -> 创建主机
-> 主机名称:192.168.8.173
-> 模板:    AIX by Zabbix agent
-> 群组:    Templates
-> Interfaces: 客户端 192.168.8.173:10050
-> 更新

3.5 效果

 

小结

 本文借助AWS EC2的公网功能,可以远程检测服务器群组的运行情况。当前zabbix agent的模式是被动模式,需要和server处于同一网段才可以连接成功。主动模式下agent可以主动向server传输被检测服务器的状态,但是本文未实现,暂时先进展到这。另外,除了通过web检测服务器群组,还存在通过web ssh服务器群组的工具,比如spug。

4. 服务器部署spug

在ubuntu22的zabbix server中部署spug,可通过web登录被服务器群组。

4.1 安装docker

$ sudo apt remove docker docker-engine docker
$ sudo apt update
$ sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io
$ sudo systemctl status docker
$ sudo systemctl restart docker
$ sudo docker run hello-world

4.2 创建docker-compose.yml


 

cd ~/
mkdir spug && cd spuggedit docker-compose.yml

添加以下内容:

version: "3.3"
services:db:image: mariadb:10.8.2container_name: spug-dbrestart: alwayscommand: --port 3306 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_civolumes:- /data/spug/mysql:/var/lib/mysqlenvironment:- MYSQL_DATABASE=spug- MYSQL_USER=spug- MYSQL_PASSWORD=spug.cc- MYSQL_ROOT_PASSWORD=spug.ccspug:image: openspug/spug-servicecontainer_name: spugprivileged: truerestart: alwaysvolumes:- /data/spug/service:/data/spug- /data/spug/repos:/data/reposports:# 如果80端口被占用可替换为其他端口,例如: - "8000:80"- "18000:80"environment:- MYSQL_DATABASE=spug- MYSQL_USER=spug- MYSQL_PASSWORD=spug.cc- MYSQL_HOST=db- MYSQL_PORT=3306depends_on:- db


4.3 启动容器

sudo docker compose up -d

4.4 初始化


以下操作会创建一个用户名为 admin 密码为 spug.dev 的管理员账户,可自行替换管理员账户/密码。

sudo docker exec spug init_spug admin spug.dev

4.5 访问测试
在浏览器中输入 http://192.168.8.162:18000/host 访问(默认账户密码在第4步初始化时设置)。
admin
spug.dev

参考:https://www.spug.cc/docs/install-docker/

4.6 通过aws访问本主机

 4.6.1 开通端口

开通18000

4.6.2  frp客户端添加端口

在前文的基础上添加18000

[[proxies]]
name = "spug"
type = "tcp"
localIP = "127.0.0.1"
localPort = 18000
remotePort = 18000

并重启frpc

4.6.3 测试

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/194259.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

复旦EMBA美东国际课程走进哈佛、耶鲁、麻省理工、哥大等顶尖名校

2023夏末秋初,复旦大学EMBA“问道东西”国际课程重新起航,同学们来到美国东海岸,走进顶级名校,开启学习与交流。    同学感悟      此次美东国际课程,整个设计非常合理。哈佛大学,麻省理工以及哥伦…

计算机视觉与机器学习D1

计算机视觉简介 技术背景 了解人工智能方向、热点 目前人工智能的技术方向有: 1、计算机视觉——计算机视觉(CV)是指机器感知环境的能力;这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。物体检测和人脸识别是其比较成功…

Prometheus+Grafana监控

Prometheus是一种开源监控系统,可用于收集指标和统计数据,并提供强大的查询语言,以便分析和可视化这些数据。它被广泛用于云原生和容器化环境中,可以嵌入到Kubernetes集群中,并与其他Kubernetes工具进行集成。 Grafan…

优卡特脸爱云一脸通智慧管理平台权限绕过漏洞复现(CVE-2023-6099)

0x01 产品简介 脸爱云一脸通智慧管理平台是一套功能强大,运行稳定,操作简单方便,用户界面美观,轻松统计数据的一脸通系统。无需安装,只需在后台配置即可在浏览器登录。 功能包括:系统管理中心、人员信息管理…

单片机课程设计——基于C51电子密码锁(源代码)

本设计是基于AT89C51单片机的电子密码锁设计,实现电子密码锁的基本功能。我们这里实现的是硬件仿真,关于软件仿真可以参考其他人的文章。 单片机课程设计--基于C51电子密码锁 效果展示 我们先来看效果展示,公主王子请看视频: 课…

jbase打印完善

上一篇实现了粗略的打印元素绘制协议,并且写了打印示例和导出示例,趁着空隙时间完善一下打印。 首先元素构造函数默认初始化每个字段值 package LIS.Core.Dto;/*** 打印约定元素*/ public class PrintElement {/*** 元素类型*/public String PrintType…

凸包的学习之路

5.算法策略5:Graham Scan Algorithm 算法思路: 给定二维点集,求其凸包 1)presorting: (1)先找到 ltl点 ,也就是y值最小的点,若是存在y值相等的点,再取x值…

WSA子系统(一)

WSA子系统安装教程 Windows Subsystem for Android (WSA) 是微软推出的一项功能,它允许用户在 Windows 11 上运行 Android 应用程序。通过在 Windows 11 上引入 WSA,用户可以在其 PC 上轻松运行 Android 应用程序,从而扩展了用户的应用程序选…

【【SOC设计之 数据回路从 DMA到 FIFO再到BRAM 再到FIFO 再写回DMA】】

SOC设计之 数据回路从 DMA到 FIFO再到BRAM 再到FIFO 再写回DMA 基本没问题的回路设计 从 DMA出发将数据传递到 FIFO 再 写到 自定义的 RTL文件中 再写到 BRAM 再到 自定义的RTL文件 再到 FIFO 再写回DMA block design 的 设计连接 可以参考我上一个文件的设计 下面介绍两个c…

kubenetes-Service和EndpointSlice

一、Service 二、Endpoint Endpoint记录一个 Service 对应一组 Pod 的访问地址,一个 Service 只有一个 Endpoint资源。Endpoint资源会去监测Pod 集合,只要服务中的某个 Pod 发生变更,Endpoint 就会进行同步更新。 三、Service、Endpoint和 P…

算法设计与分析复习--求解最大子段和问题(分支法、动态规划)

文章目录 问题描述分治法动态规划法 问题描述 最大子段和问题; 洛谷P1115.最大子段和 分治法 利用归并排序的方法,但是由于是算最大子段和所以,并不能将它变成有序的,左边和右边的最大子段和通过调用函数,而中间的要…

安装第三方包报错 error: Microsoft Visual C++ 14.0 or greater is required——解决办法

1、问题描述 手动安装第三方软件时,可以使用setup.py,来安装已经下载的第三方包。一般文件下会存在setup,在所要安装库的目录下的cmd执行:python setup.py install报错:error: Microsoft Visual C 14.0 or greater i…