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

news2024/11/17 17:31:45

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 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 = 30000

auth.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 spug

gedit docker-compose.yml

添加以下内容:

version: "3.3"
services:
  db:
    image: mariadb:10.8.2
    container_name: spug-db
    restart: always
    command: --port 3306 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    volumes:
      - /data/spug/mysql:/var/lib/mysql
    environment:
      - MYSQL_DATABASE=spug
      - MYSQL_USER=spug
      - MYSQL_PASSWORD=spug.cc
      - MYSQL_ROOT_PASSWORD=spug.cc
  spug:
    image: openspug/spug-service
    container_name: spug
    privileged: true
    restart: always
    volumes:
      - /data/spug/service:/data/spug
      - /data/spug/repos:/data/repos
    ports:
      # 如果80端口被占用可替换为其他端口,例如: - "8000:80"
      - "18000:80"
    environment:
      - MYSQL_DATABASE=spug
      - MYSQL_USER=spug
      - MYSQL_PASSWORD=spug.cc
      - MYSQL_HOST=db
      - MYSQL_PORT=3306
    depends_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.coloradmin.cn/o/1226658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web之JavaScript(jQuery)笔记

Web之HTML、CSS、JavaScript 三、JavaScriptJS调试变量自定义函数数据类型及转换运算符优先级内置函数数组事件DOM(Document Object Model 文档对象模型)jQuery Web之HTML笔记 Web之CSS笔记 三、JavaScript JavaScript(简称“JS”)是一种轻量级的面向对…

心怀祖国放眼世界 爱国人士华国中应邀参加美国旧金山2023(APEC)峰会

据相关媒体美国旧金山报道:2023亚太经合组织(APEC)领导人非正式会议将于11月15日至17日在美国旧金山召开。11月11日,本年度APEC高级财政官员和部长会晤在旧金山率先启动,APEC CEO峰会将于11月14日至16日开幕。著名爱国人士、亚太一…

《向量数据库指南》——亚马逊云科技向量数据库揭秘:点亮数据未来!

在我们讨论亚马逊云科技向量数据库之前,我们必须先搞懂向量数据库。 那么,向量数据库是什么呢?简单来说,向量数据库就是一种专门用于处理和查询向量数据的数据库。与传统数据库以表格形式组织和存储数据不同,向量数据库采用多维数值数组的形式处理和存储数据。它的主要目标…

和解电话(匿名电话)/情侣拉黑联系电话/虚拟号/虚拟中间号/拉黑联系项目代码

和解电话&#xff0c;又名匿名电话 使用中间号转接到被叫人&#xff0c;不显示呼叫人号码&#xff0c;类似美团隐私号 呼叫人A->中间号B->被叫人C 演示地址&#xff1a;微信打开(http://sms.test.4php.top/sms/phone) 实现代码如下 <section class"section&q…

图像分类(四) 全面解读复现GoogleNet_InceptionV1-V4

论文解读 InceptionV1 前言 论文题目: Going Deeper with Convolutions Googlenet论文原文地址:https://arxiv.org/pdf/1409.4842.pdf 之前看过VGG的论文&#xff08;VGG精读直达&#xff09;。当时VGG获得了 2014 ILSVRC 图像分类的第二名&#xff0c;今天来看一下第一名…

【linux网络】解读FTP文件传输服务器配置,揭秘百度云下载限速原理

目录 一、FTP文件传输协议 1.1FTP工作原理 1.2两种模式介绍 1.3FTP状态码 1.4FTP的三种用户分类 二、vsftpd软件的介绍 2.1服务端介绍 2.2不同操作系统下的客户端登录操作 三、vsftpd的常见配置 3.1修改默认的命令端口 3.2限制匿名用户登录&#xff08;系统原本是默…

鸿蒙:实现两个Page页面跳转

效果展示 这篇博文在《鸿蒙&#xff1a;从0到“Hello Harmony”》基础上实现两个Page页面跳转 1.构建第一个页面 第一个页面就是“Hello Harmony”&#xff0c;把文件名和显示内容都改一下&#xff0c;改成“FirstPage”&#xff0c;再添加一个“Next”按钮。 Entry Compone…

[每周一更]-(第73期):介绍容器监控工具-CAdvisor

CAdvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行CAdvisor用户可以轻松的获取到当前主机上容器的运行统计信息&#xff0c;并以图表的形式向用户展示。 命令行监控Docker容器-docker stats 访问地址 http://localhost:8080/containers/ …

ADS村田电感.mod(spice netlist文件)和.s2p模型导入与区别

ADS村田电感.mod&#xff08;spice netlist文件&#xff09;和.s2p模型导入与区别 简介环境过程s2pspice netlist&#xff08;.mod文件&#xff09;导入和结果对比 简介 记录了ADS村田电感.mod&#xff08;spice netlist文件&#xff09;和.s2p模型导入与区别 环境 ADS2020 …

安顿APP3.0全新升级,引领智能穿戴健康革新,专注预警疾病风险

随着人们生活水平的提高和工作压力的增加&#xff0c;心脑血管疾病已经成为现代社会的严重问题&#xff0c;特别是心梗、脑卒中等疾病已经开始夺去年轻人的生命。 据报道&#xff0c;近年来&#xff0c;多位年轻人因心脑血管疾病突发去世&#xff0c;如42岁的知名男演员、30岁的…

基于猕猴Spike运动解码的不同解码方法性能对比

公开数据集中文版详细描述 参考前文&#xff1a;https://editor.csdn.net/md/?not_checkout1&spm1011.2124.3001.6192神经元Spike信号分析 参考前文&#xff1a;https://blog.csdn.net/qq_43811536/article/details/134359566?spm1001.2014.3001.5501神经元运动调制分析 …

【MATLAB源码-第83期】基于matlab的MIMO中V-BALST结构ZF和MMSE检测算法性能误码率对比。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 在多输入多输出&#xff08;MIMO&#xff09;通信系统中&#xff0c;V-BLAST&#xff08;垂直波束形成层间空间时间编码技术&#xff09;是一种流行的技术&#xff0c;用于提高无线通信的数据传输速率和容量。它通过在不同的…

遥感数据

在研究中&#xff0c;我们常需要遥感数据。在下面的网站中&#xff0c;可以得到遥感数据。 EarthExplorer (usgs.gov)https://earthexplorer.usgs.gov/登陆网站&#xff1a; 通常&#xff0c;在Additional Criteria中&#xff0c;可以下载遥感数据。 不过&#xff0c;这个选项…

集合框架面试题

一、集合容器的概述 1. 什么是集合 集合框架&#xff1a;用于存储数据的容器。 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合框架都包含三大块内容&#xff1a; 对外的接口、接口的实现和对集合运算的算 法。 接口&#xff1a;表示集合的抽象数据…

Sectigo证书——全球SSL证书第一品牌

随着互联网技术的发展和网络安全意识的提升&#xff0c;SSL证书已经成为确保网络数据传输安全的重要工具。而在众多SSL证书品牌中&#xff0c;Sectigo无疑是其中的佼佼者&#xff0c;被誉为“全球证书第一品牌”。 Sectigo是一个有着超过二十年行业经验的老牌认证机构&#xff…

自定义业务异常处理类加入全局处理器中

自定义业务异常处理类并将其加入全局异常处理器&#xff0c;从而避免业务层直接处理异常造成代码污染&#xff0c;达到业务清晰简洁。 描述 在进行分类模块开发时&#xff0c;删除某个分类时当分类关联了菜品和套餐时&#xff0c;是不允许删除的。我们在管理端删除的时候会提示…

解决在pycharm中使用matplotlib画图问题

第一&#xff0c;再导入包后直接绘图出现&#xff1a; AttributeError: module backend_interagg has no attribute FigureCanvas表明版本不兼容&#xff0c;我们需要加入&#xff1a;matplotlib.use(‘TkAgg’) 导入函数就变成了&#xff1a; import matplotlib matplotlib.…

AtCoder Beginner Contest 329 题解A~F

A - Spread 输入字符串&#xff0c;字符之间加上空格输出 B - Next 输出数组当中第二大的数 C - Count xxx 统计每个字符出现过的最长长度&#xff0c;再累加即可 #include<bits/stdc.h> #pragma GCC optimize("Ofast") #define INF 0x3f3f3f3f #define I…

Java Web——Web开发介绍

什么是Web开发 Web开发是一种创建和维护全球广域网&#xff08;World Wide Web&#xff09;上的网站和应用的技术。全球广域网也称为万维网(www World Wide Web)&#xff0c;是一个能够通过浏览器访问的互联网上的巨大信息库。 Web开发的目标是创建功能齐全、易于使用和安全的…

资深测试总结,现在软件测试有未来吗?“你“的底气在哪里?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、为什么会有 “…