【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution

【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution

首先前一篇文章我们介绍了docker安装,本次我们需要常规搭建,以下是docker和非docker的区别,由于优雅草的zabbix是要进行深度二开的,因此选择非docker,此前看了各种教程和视频,卓伊凡失败了不下3次,联合同事solution一起开始做,最终在这次整理了可行的方案,简化 方案,很多教程里面有些混乱,导致搭建各种报错,当然此方案你们也要践行

以下为你详细对比 Docker 容器搭建和非 Docker 搭建的优劣势:

### Docker 容器搭建

#### 优势

- **环境一致性**:Docker 可以将应用及其依赖打包成一个独立的容器,确保应用在不同的环境中都能以相同的方式运行。例如,开发环境、测试环境和生产环境可以保持高度一致,减少因环境差异导致的问题。

- **快速部署**:由于 Docker 容器的轻量级特性,启动和停止容器非常迅速。相比传统的部署方式,大大缩短了应用的部署时间。比如,一个复杂的微服务应用,使用 Docker 可以在几分钟内完成部署,而传统方式可能需要数小时甚至数天。

- **资源利用率高**:多个 Docker 容器可以共享宿主机的操作系统内核,减少了系统资源的开销。与传统的虚拟机相比,Docker 容器占用的资源更少,能够在相同的硬件资源下运行更多的应用实例。

- **可移植性强**:Docker 容器可以在任何支持 Docker 的平台上运行,无论是物理机、虚拟机还是云服务器。这使得应用的迁移和扩展变得更加容易,例如可以方便地将应用从本地开发环境迁移到云端生产环境。

- **隔离性好**:每个 Docker 容器都是相互隔离的,一个容器的故障不会影响其他容器的正常运行。这种隔离性提高了应用的稳定性和安全性,例如不同的业务系统可以分别运行在不同的容器中,互不干扰。

#### 劣势

- **安全风险**:虽然 Docker 提供了一定的隔离机制,但由于容器共享宿主机的内核,存在一定的安全风险。如果一个容器被攻击,攻击者可能会利用内核漏洞影响其他容器或宿主机。

- **学习成本**:对于不熟悉 Docker 技术的开发人员和运维人员来说,需要花费一定的时间来学习 Docker 的基本概念、命令和操作流程。

- **性能开销**:尽管 Docker 容器的性能开销相对较小,但在某些情况下,如大量的 I/O 操作或对内核资源的频繁访问,仍然会存在一定的性能损失。

- **管理复杂性**:当容器数量较多时,容器的管理和编排会变得复杂。需要使用专门的工具(如 Kubernetes)来进行容器的调度、监控和管理。

### 非 Docker 搭建

#### 优势

- **技术成熟度高**:非 Docker 搭建方式已经存在了很长时间,技术非常成熟。开发人员和运维人员对传统的部署方式比较熟悉,有丰富的经验和技术支持。

- **系统控制权强**:在非 Docker 搭建中,用户可以直接对操作系统进行配置和管理,拥有更高的系统控制权。对于一些对系统资源有特殊要求的应用,这种方式可以更好地满足需求。

- **安全性相对容易控制**:由于没有容器隔离带来的额外复杂性,传统部署方式的安全策略可以更加直接和明确。用户可以根据自己的需求对操作系统进行安全加固,减少安全漏洞。

- **无需额外依赖**:非 Docker 搭建不需要安装 Docker 引擎等额外的软件,减少了因依赖问题导致的故障和维护成本。

#### 劣势

- **环境配置复杂**:在不同的环境中部署应用时,需要手动配置各种依赖和环境变量,容易出现配置不一致的问题。例如,在不同的服务器上安装相同的应用,可能会因为操作系统版本、软件库版本等差异导致应用无法正常运行。

- **部署效率低**:传统的部署方式通常需要手动安装和配置应用的各个组件,过程繁琐,部署效率低下。特别是在大规模部署时,这种效率问题会更加明显。

- **资源利用率低**:每个应用都需要独立的操作系统环境,会占用大量的系统资源。例如,多个应用分别安装在不同的虚拟机上,会造成硬件资源的浪费。

- **可移植性差**:非 Docker 搭建的应用在不同的环境中迁移和部署比较困难,需要重新配置环境和安装依赖,增加了迁移的成本和风险。

CentOS8 安装zabbix7

教程

  • 强制创建目录/usr/local/zabbix7/

mkdir -p /usr/local/zabbix7/

  • 配置阿里源

sudo mkdir -p /etc/yum.repos.d/back && sudo mv /etc/yum.repos.d/CentOS* /etc/yum.repos.d/back && cat <<EOF | sudo tee /etc/yum.repos.d/Centos8.repo[BaseOS]name=CentOS-\$releasever - Basebaseurl=http://mirrors.aliyun.com/centos/\$releasever/BaseOS/\$basearch/os/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official[AppStream]name=CentOS-\$releasever - AppStreambaseurl=http://mirrors.aliyun.com/centos/\$releasever/AppStream/\$basearch/os/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official[extras]name=CentOS-\$releasever - Extrasbaseurl=http://mirrors.aliyun.com/centos/\$releasever/extras/\$basearch/os/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-OfficialEOFsudo dnf clean allsudo dnf makecache

  • 安装zabbix源

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/centos/8/x86_64/zabbix-release-latest-7.0.el8.noarch.rpm

  • 更新源

dnf clean all && sudo dnf makecache

  • 创建下载目录/usr/local/zabbix7/

mkdir -p /usr/local/zabbix7/zabbix-{server-mysql,web-mysql,nginx-conf,sql-scripts,selinux-policy,agent,mariadb,php,fonts,stress}

  • 下载zabbix组件

dnf download --resolve --destdir=/usr/local/zabbix7/zabbix-server-mysql zabbix-server-mysqldnf download --resolve --destdir=/usr/local/zabbix7/zabbix-web-mysql zabbix-web-mysqldnf download --resolve --destdir=/usr/local/zabbix7/zabbix-nginx-conf zabbix-nginx-confdnf download --resolve --destdir=/usr/local/zabbix7/zabbix-sql-scripts zabbix-sql-scriptsdnf download --resolve --destdir=/usr/local/zabbix7/zabbix-selinux-policy zabbix-selinux-policydnf download --resolve --destdir=/usr/local/zabbix7/zabbix-agent zabbix-agent

  • 下载PHP

sudo dnf install -y epel-releasesudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.0.rpmyum remove php*dnf module reset phpsudo dnf module enable php:remi-8.0dnf download --resolve --destdir=/usr/local/zabbix7/zabbix-php/ php php-fpm php-mysqlnd php-gd php-xml php-bcmath php-mbstring

  • 下载mariadb10.5

curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setupsudo bash mariadb_repo_setup --mariadb-server-version=10.5dnf module reset mariadb -ydnf module enable mariadb:10.5 -ydnf download --resolve --destdir=/usr/local/zabbix7/zabbix-mariadb mariadb mariadb-server

  • 下载字体包解决乱码问题

dnf download --resolve --destdir=/usr/local/zabbix7/zabbix-fonts wqy-microhei-fonts

  • 下载打高CPU测试命令便于后期测试告警

sudo dnf install -y epel-releasednf download --resolve --destdir=/usr/local/zabbix7/zabbix-stress stress

  • 离线安装(上面都是下载rpm,从这里开始安装这些rpm)
  • 安装mariadb(这里还依赖python3相关包)

cd /usr/local/zabbix7/zabbix-mariadbrpm -Uvh *.rpm

  • 安装zabbix-server-mysql

cd /usr/local/zabbix7/zabbix-server-mysql rpm -Uvh *.rpmrpm -Uvh fping-5.1-1.el8.x86_64.rpm OpenIPMI-libs-2.0.31-3.el8.x86_64.rpm unixODBC-2.3.7-1.el8.x86_64.rpm zabbix-server-mysql-7.0.0-release1.el8.x86_64.rpm

  • 安装zabbix-erbmysql

cd /usr/local/zabbix7/zabbix-web-mysql rpm -Uvh *.rpm

  • 安装zabbix-nginx-conf

cd /usr/local/zabbix7/zabbix-nginx-conf rpm -Uvh *.rpmrpm -ivh httpd-filesystem-2.4.37-43.module_el8.5.0+1022+b541f3b1.noarch.rpmrpm -ivh nginx-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm nginx-all-modules-1.14.1-9.module_el8.0.0+184+e34fea82.noarch.rpm nginx-mod-http-image-filter-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm nginx-mod-http-perl-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm nginx-mod-http-xslt-filter-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm nginx-mod-mail-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm nginx-mod-stream-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpmrpm -ivh zabbix-nginx-conf-7.0.0-release1.el8.noarch.rpm

  • 安装zabbix-sql-scripts

cd /usr/local/zabbix7/zabbix-sql-scriptsrpm -Uvh *.rpm

  • 安装zabbix-selinux-policy

cd /usr/local/zabbix7/zabbix-selinux-policyrpm -Uvh *.rpm

  • 安装升级zabbix-php

cd /usr/local/zabbix7/zabbix-php rpm -Uvh *.rpm

  • 安装zabbix-fonts

cd /usr/local/zabbix7/zabbix-fontsrpm -ivh *.rpm

  • 安装zabbix-stress

cd /usr/local/zabbix7/zabbix-stress rpm -ivh *.rpm

  • 安装zabbix-agent

cd /usr/local/zabbix7/zabbix-agentrpm -Uvh *.rpm

  • 数据初始化

systemctl start mariadb.service systemctl enable mariadb.service systemctl status mariadb.servicemysql_secure_installation

  • zabbix数据库密码:hXHDKsp2CzhzMrKb


  • 登入数据库(root用户登陆,root密码在宝塔面板上查看)


mysql -uroot -pPASSWORD

  • 要删除之前创建的zabbix数据库
  • 创建一个名为zabbix的数据库,并设置字符集为utf8mb4,排序规则为utf8mb4_bin

create database zabbix character set utf8mb4 collate utf8mb4_bin;

  • 创建一个名为zabbix的数据库用户,并设置密码为’password’

create user zabbix@localhost identified by 'hXHDKsp2CzhzMrKb';

  • 授予zabbix用户对zabbix数据库的所有权限

grant all privileges on zabbix.* to zabbix@localhost;

  • 允许没有超级权限的用户创建或修改带有二进制日志功能的存储函数

set global log_bin_trust_function_creators = 1;

  • 退出

quit;

  • 查询sql文件位置

find /usr/ -name "server.sql.gz"

  • 导入数据库信息,server.sql.gz实际路径,输入数据库zabbix用户的密码 password

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

  • 修改Zabbix server配置文件,修改数据库密码其中password为你的真实数据库zabbix用户的密码

sudo sed -i '/^# DBPassword=/a DBPassword=password' /etc/zabbix/zabbix_server.conf

  • 修改Nginx配置文件(这个是什么意思)

sudo sed -i '/^server {/a listen 80;' /etc/nginx/conf.d/zabbix.confsudo sed -i '/^listen 80;/a server_name 192.168.121.250;' /etc/nginx/conf.d/zabbix.conf

  • 修复图形数据标识乱码问题

cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

  • 重启服务,开启自启,查看状态

systemctl enable zabbix-server zabbix-agent nginx php-fpm mariadb.servicesystemctl restart zabbix-server zabbix-agent nginx php-fpm mariadb.servicesystemctl status zabbix-server zabbix-agent nginx php-fpm mariadb.service

  • 访问zabbixweb

业务限制

  • 🙅🏻‍♀️不能使用docker
  • 🙅🏻‍♀️不能使用服务器打包编译,性能很弱,要使用二进制包

服务器环境信息

  • 服务器配置
  • 2C4G



  • 操作系统版本
  • CentOS Stream release 8



  • Mysql 版本
  • mysql Ver 8.0.24 for Linux on x86_64 (Source distribution)



  • PHP 版本
  • yum源备份

# yum源配置都在这个目录下 repo是个文本文件,可以使用cat查看配置内容cd /etc/yum.repos.d/# 文件备份命令,就是文件重命名sudo mv /etc/yum.repos.d/CentOS-Stream-Extras-common.repo /etc/yum.repos.d/CentOS-Stream-Extras-common.repo.backup

  • CentOS-Base.repo切换到阿里源

# CentOS-Base.repo## The mirror system uses the connecting IP address of the client and the# update status of each mirror to pick mirrors that are updated to and# geographically close to the client. You should use this for CentOS updates# unless you are manually picking other mirrors.## If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead.## [base]name=CentOS-8.5.2111 - Base - mirrors.aliyun.combaseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/ http://mirrors.aliyuncs.com/centos-vault/8.5.2111/BaseOS/$basearch/os/ http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/BaseOS/$basearch/os/gpgcheck=0gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official #additional packages that may be useful[extras]name=CentOS-8.5.2111 - Extras - mirrors.aliyun.combaseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/extras/$basearch/os/ http://mirrors.aliyuncs.com/centos-vault/8.5.2111/extras/$basearch/os/ http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/extras/$basearch/os/gpgcheck=0gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official #additional packages that extend functionality of existing packages[centosplus]name=CentOS-8.5.2111 - Plus - mirrors.aliyun.combaseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/centosplus/$basearch/os/ http://mirrors.aliyuncs.com/centos-vault/8.5.2111/centosplus/$basearch/os/ http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/centosplus/$basearch/os/gpgcheck=0enabled=0gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official [PowerTools]name=CentOS-8.5.2111 - PowerTools - mirrors.aliyun.combaseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/PowerTools/$basearch/os/ http://mirrors.aliyuncs.com/centos-vault/8.5.2111/PowerTools/$basearch/os/ http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/PowerTools/$basearch/os/gpgcheck=0enabled=0gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

[AppStream]name=CentOS-8.5.2111 - AppStream - mirrors.aliyun.combaseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/$basearch/os/ http://mirrors.aliyuncs.com/centos-vault/8.5.2111/AppStream/$basearch/os/ http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/AppStream/$basearch/os/gpgcheck=0gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

  • CentOS-Stream-Extras-common.repo切换到阿里源

# CentOS-Stream-Extras-common.repo## The mirrorlist system uses the connecting IP address of the client and the# update status of each mirror to pick current mirrors that are geographically# close to the client. You should use this for CentOS updates unless you are# manually picking other mirrors.## If the mirrorlist does not work for you, you can try the commented out# baseurl line instead.

[extras-common]name=CentOS Stream $releasever - Extras common packagesbaseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111/extras/$basearch/os/enabled=1gpgcheck=0gpgkey=https://mirrors.aliyun.com/centos-stream/8-stream/Extras/x86_64/os/RPM-GPG-KEY-CentOS-Official

zabbix 官方rpm

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/centos/8/x86_64/zabbix-release-latest-7.0.el8.noarch.rpmdnf clean all# php版本8.2dnf module switch-to php:8.2

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
7月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
1323 39
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
460 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
432 61
|
11月前
|
监控 关系型数据库 MySQL
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
386 0
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
1259 7
|
Docker 容器
【赵渝强老师】Docker的None网络模式
Docker容器在网络方面实现了逻辑隔离,提供了四种网络模式:bridge、container、host和none。其中,none模式下容器具有独立的网络命名空间,但不包含任何网络配置,仅能通过Local Loopback网卡(localhost或127.0.0.1)进行通信。适用于不希望容器接收任何网络流量或运行无需网络连接的特殊服务。
259 0
|
Docker 容器
【赵渝强老师】Docker的Host网络模式
Docker容器在网络环境中是隔离的,可通过配置不同网络模式(如bridge、container、host和none)实现容器间或与宿主机的网络通信。其中,host模式使容器与宿主机共享同一网络命名空间,提高性能但牺牲了网络隔离性。
750 0
|
4月前
|
存储 C语言
`scanf`是C语言中用于按格式读取标准输入的函数
`scanf`是C语言中用于按格式读取标准输入的函数,通过格式字符串解析输入并存入指定变量。需注意输入格式严格匹配,并建议检查返回值以确保读取成功,提升程序健壮性。
1116 0
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
762 23
|
6月前
|
安全 C语言
C语言中的字符、字符串及内存操作函数详细讲解
通过这些函数的正确使用,可以有效管理字符串和内存操作,它们是C语言编程中不可或缺的工具。
361 15

热门文章

最新文章