部署zabbix
源码下载地址:
Download Zabbix sources
nginx: download
防火墙和selinux都需要关闭
1、部署监控服务器
1)安装LNMP环境
Zabbix监控管理控制台需要通过Web页面展示出来,并且还需要使用MySQL来存储数据,因此需要先为Zabbix准备基础LNMP环境。
[root@zabbixserver ~]# yum -y install gcc pcre-devel openssl-devel
[root@zabbixserver ~]# tar -xf nginx-1.12.2.tar.gz
[root@zabbixserver ~]# cd nginx-1.12.2
[root@zabbixserver nginx-1.12.2]# ./configure --with-http_ssl_module
[root@zabbixserver nginx-1.12.2]# make &&make install
[root@zabbixserver ~]# yum -y install php php-mysql php-fpm(注意,在centos8stream里没有php-mysql,需要安装php-mysqlnd)
[root@zabbixserver ~]# yum -y install mariadb mariadb-devel mariadb-server
2)修改Nginx配置文件
配置Nginx支持PHP动态网站,因为有大量PHP脚本需要执行,因此还需要开启Nginx的各种fastcgi缓存,加速PHP脚本的执行速度。
[root@zabbixserver ~]# vim /usr/local/nginx/conf/nginx.conf
… …
http{
… …
fastcgi_buffers 816k; #缓存php生成的页面内容,8个16k
fastcgi_buffer_size 32k; #缓存php生产的头部信息,32k
fastcgi_connect_timeout 300; #连接PHP的超时时间,300秒
fastcgi_send_timeout 300; #发送请求的超时时间,300秒
fastcgi_read_timeout 300; #读取请求的超时时间,300秒
location ~\.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;#[注意这里别出错]
}
… …
3)启动服务
启动Nginx、PHP-FPM、MariaDB服务,关闭SELinux与防火墙。
[root@zabbixserver ~]# systemctl start mariadb #启动服务
[root@zabbixserver ~]# systemctl start php-fpm #启动服务
[root@zabbixserver ~]# systemctl enable mariadb #设置开机自启
[root@zabbixserver ~]# systemctl enable php-fpm #设置开机自启
[root@zabbixserver ~]# /usr/local/nginx/sbin/nginx #启动服务
[root@zabbixserver ~]# echo /usr/local/nginx/sbin/nginx >>/etc/rc.local
[root@zabbixserver ~]# chmod +x /etc/rc.local
#通过rc.local设置开机自启
[root@zabbixserver ~]# firewall-cmd --set-default-zone=trusted
[root@zabbixserver ~]# setenforce 0
[root@zabbixserver ~]# sed -i '/SELINUX/s/enforcing/permissive/'/etc/selinux/config
注意:
在这里,需要验证一下php是否正常启动了:
ss -ntulp | grep php
如果没有输出,则需要修改php-fpm的配置:
[root@proxy etc]# vim /etc/php-fpm.d/www.conf
[www]
listen =127.0.0.1:9000 //PHP端口号
pm.max_children =32 //最大进程数量
pm.start_servers =15 //最小进程数量
2、部署监控服务器Zabbix Server
1)源码安装Zabbix Server
多数源码包都是需要依赖包的,zabbix也一样,源码编译前需要先安装相关依赖包。
[root@zabbixserver ]# yum -y install net-snmp-devel \
curl-devel autoconf libevent-devel
#安装相关依赖包
[root@zabbixserver]# tar -xf zabbix-3.4.4.tar.gz
[root@zabbixserver ]# cd zabbix-3.4.4/
[root@zabbixserver zabbix-3.4.4]# ./configure --enable-server \
--enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config \
--with-net-snmp --with-libcurl
# --enable-server安装部署zabbix服务器端软件
# --enable-agent安装部署zabbix被监控端软件
# --enable-proxy安装部署zabbix代理相关软件
# --with-mysql指定mysql_config路径
# --with-net-snmp允许zabbix通过snmp协议监控其他设备(如交换机、路由器等)
# --with-libcurl安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态
[root@zabbixserver zabbix-3.4.4]# make &&make install
2)创建并初始化数据库(root用户默认没有密码)
[root@zabbixserver ~]# mysql
mysql>create database zabbix character set utf8;
#创建数据库,数据库名称为zabbix,character set utf8是支持中文字符集
mysql>grant all on zabbix.*to zabbix@'localhost'identified by 'zabbix';
#创建可以访问数据库的账户与密码,用户名是zabbix,密码是zabbix
mysql>exit
#退出数据库
[root@zabbixserver ~]# cd zabbix-3.4.4/database/mysql/
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix <schema.sql
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix <images.sql
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix <data.sql
#刚刚创建是空数据库,zabbix源码包目录下,有提前准备好的数据
#使用mysql导入这些数据即可(注意导入顺序)
如果导入有如下问题:
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql ERROR 1118 (42000) at line 1244: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
修改my.cnf文件,添加或修改以下参数([root@zabbix mysql]# ls /etc/my.cnf):
innodb_file_per_table=1
innodb_file_format=Barracuda
innodb_strict_mode=0
#-u指定数据库用户名,-p指定数据库密码
如何测试?
[root@zabbixserver ~]# mysql -uzabbix -pzabbix -h localhost zabbix
#-u指定用户名,-p指定密码,-h指定服务器IP,最后的zabbix是数据库名称
#使用zabbix账户(密码为zabbix)连接localhost服务器上面的zabbix数据库
mysql>show tables;
#查看有没有数据表
mysql>exit
#退出数据库
3)修改zabbix_server配置并启动监控服务
修改Zabbix_server配置文件,设置数据库相关参数,启动Zabbix_server服务
[root@zabbixserver ~]# vim /usr/local/etc/zabbix_server.conf
DBHost=localhost
# 85行,定义哪台主机为数据库主机,localhost为本机
DBName=zabbix
#95行,设置数据库名称
DBUser=zabbix
#111行,设置数据库账户
DBPassword=zabbix
#119行,设置数据库密码
LogFile=/tmp/zabbix_server.log
#38行,日志的位置,排错使用,该行仅查看即可
AllowUnsupportedDBVersions=1
[root@zabbixserver ~]# useradd -s /sbin/nologin zabbix
#服务不允许以root身份启动,不创建用户无法启动服务(用户不需要登录系统)
#创建zabbix用户才可以以zabbix用户的身份启动服务
#启动服务后可以通过ps aux查看进程是以什么用户的身份启动的
通过创建service文件管理zabbix服务。
[root@zabbixserver ~]# vim /usr/lib/systemd/system/zabbix_server.service
[Unit]
Description=zabbix server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/tmp/zabbix_server.pid
ExecStart=/usr/local/sbin/zabbix_server
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
[root@zabbixserver ~]# systemctl enable zabbix_server --now
[root@zabbixserver ~]# ss -ntulp |grep zabbix_server #确认连接状态,端口10051
tcp LISTEN 0128*:10051*:*users:(("zabbix_server",pid=23275,fd=4),("zabbix_server",pid=23274,fd=4)
4) 修改Zabbix_agent配置文件,启动Zabbix_agent服务
[root@zabbixserver ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.2.5 #93行,允许哪些主机监控本机
ServerActive=127.0.0.1,192.168.2.5 #134行,允许哪些主机通过主动模式监控本机
Hostname=zabbix_server #145行,设置本机主机名(名称可以任意)
LogFile=/tmp/zabbix_agentd.log #设置日志文件(不需要修改)
UnsafeUserParameters=1 #280行,是否允许自定义监控传参
编写zabbix_agentd的service文件,通过systemd管理服务。
[root@zabbixserver ~]# vim /usr/lib/systemd/system/zabbix_agentd.service
[Unit]
Description=zabbix agent
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/tmp/zabbix_agentd.pid
ExecStart=/usr/local/sbin/zabbix_agentd
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
[root@zabbixserver ~]# systemctl enable zabbix_agentd --now
[root@zabbixserver ~]# ss -ntulp |grep zabbix_agentd #查看端口信息为10050
tcp LISTEN 0128*:10050*:*users:(("zabbix_agentd",pid=23505,fd=4),("zabbix_agentd",pid=23504,fd=4)
5)上线Zabbix的Web页面
[root@zabbixserver ~]# cd zabbix-3.4.4/frontends/php/
[root@zabbixserver php]# cp -r */usr/local/nginx/html/
[root@zabbixserver php]# chown -R apache.apache /usr/local/nginx/html/
#这里修改所有者使用:或者.都可以。
#修改权限的原因如下:
#php-fpm的账户是apache,后面我们需要让php-fpm对网站目录具有读写操作,
#而/usr/local/nginx/html默认是root所有,仅root具有写权限,php-fpm无写权限
浏览器访问Zabbix_server服务器的Web页面
火狐浏览器访问【 firefox http://192.168.2.5/index.php 】
#第一次访问,初始化PHP页面会检查计算机环境是否满足要求,如果不满足会给出修改建议
#默认会提示PHP的配置不满足环境要求,需要修改PHP配置文件
根据错误提示,安装依赖、修改PHP配置文件,满足Zabbix_server的环境要求。
[root@zabbixserver ~]# yum -y install php-gd php-xml
[root@zabbixserver ~]# yum -y install php-bcmath php-mbstring
[root@zabbixserver ~]# vim /etc/php.ini
date.timezone =Asia/Shanghai #878行,设置时区
max_execution_time =300 #384行,最大执行时间,秒
post_max_size =32M #672行,POST数据最大容量
max_input_time =300 #394行,服务器接收数据的时间限制
[root@zabbixserver ~]# systemctl restart php-fpm
3、部署被监控主机Zabbix Agent
1)源码安装Zabbix agent软件
在2.100和2.200做相同操作(以web1为例)。
[root@web1 ~]# useradd -s /sbin/nologin zabbix
[root@web1 ~]# yum -y install gcc pcre-devel autoconf
[root@web1 ~]# tar -xf zabbix-3.4.4.tar.gz
[root@web1 ~]# cd zabbix-3.4.4/
[root@web1 zabbix-3.4.4]# ./configure --enable-agent
[root@web1 zabbix-3.4.4]# make &&make install
2)修改agent配置文件,启动Agent
[root@web1 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.2.5 #93行,谁可以监控本机(被动监控模式)
ServerActive=127.0.0.1,192.168.2.5 #134行,谁可以监控本机(主动监控模式)
Hostname=web1 #145行,被监控端自己的主机名
EnableRemoteCommands=1
#69行,监控异常后,是否允许服务器远程过来执行命令,如重启某个服务
UnsafeUserParameters=1 #280行,是否允许自定义key传参
[root@web1 ~]# firewall-cmd --set-default-zone=trusted
[root@web1 ~]# sed -i '/SELINUX/s/enforcing/permissive/'/etc/selinux/config
[root@web1 ~]# setenforce 0
[root@web1 ~]# vim /usr/lib/systemd/system/zabbix_agentd.service
[Unit]
Description=zabbix agent
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/tmp/zabbix_agentd.pid
ExecStart=/usr/local/sbin/zabbix_agentd
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
[root@web1 ~]# systemctl enable zabbix_agentd --now
#启动服务器并设置开机自启动
相关文章:
部署zabbix
源码下载地址: Download Zabbix sources nginx: download 防火墙和selinux都需要关闭 1、部署监控服务器 1)安装LNMP环境 Zabbix监控管理控制台需要通过Web页面展示出来,并且还需要使用MySQL来存储数据,因此需要先为Zabbix准备基础…...
服务器感染了.locked、.locked1勒索病毒,如何确保数据文件完整恢复?
尊敬的读者: locked、.locked1勒索病毒的威胁如影随形,深刻影响着数字世界的安全。本文将深入揭示locked、.locked1的狡猾特征,为您提供实用的数据恢复方法,并分享一系列特别定制的预防措施,旨在使您的数字生活摆脱勒…...
【Linux系统化学习】命令行参数 | 环境变量的再次理解
个人主页点击直达:小白不是程序媛 Linux专栏:Linux系统化学习 代码仓库:Gitee 目录 mian函数传参获取环境变量 手动添加环境变量 导出环境变量 environ获取环境变量 本地变量和环境变量的区别 Linux的命令分类 常规命令 内建命令 …...
【STM32】TIM定时器编码器
1 编码器接口简介 Encoder Interface 编码器接口 编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度 接收正交信号&#…...
力扣44题通配符匹配题解
44. 通配符匹配 - 力扣(LeetCode) 给你一个输入字符串 (s) 和一个字符模式 (p) ,请你实现一个支持 ? 和 * 匹配规则的通配符匹配: ? 可以匹配任何单个字符。* 可以匹配任意字符序列(包括空字符序列)。 …...
windows系统安装RocketMQ_dashboard
1.下载源码 按照官网说明下载源码 官网 官网文档 2.源码安装 2.1.① 编译rocketmq-dashboard 注释掉报错的maven插件frontend-maven-plugin、maven-antrun-plugin mvn clean package -Dmaven.test.skiptrue2.2.② 运行rocketmq-dashboard java -jar target/rocketmq-…...
ATECLOUD电源自动测试系统打破传统 助力新能源汽车电源测试
随着新能源汽车市场的逐步扩大,技术不断完善提升,新能源汽车测试变得越来越复杂,测试要求也越来越严格。作为新能源汽车的关键部件之一,电源为各个器件和整个电路提供稳定的电源,满足需求,确保新能源汽车的…...
如何教会小白使用淘宝API接口获取商品数据
随着互联网的普及,越来越多的人开始接触网络购物,而淘宝作为中国最大的电商平台之一,成为了众多消费者首选的购物平台。然而,对于一些小白用户来说,如何通过淘宝API接口获取商品数据可能是一个难题。本文将详细介绍如何…...
Redis有序集合对象
一.编码 有序集合的编码可以是ziplist或者skiplist。 ziplist编码的有序集合对象使用压缩列表作为底层实现,每一个集合元素使用紧挨在一起的两个压缩列表节点来保存。第一个节点保存元素的成员(member),而第二个元素则保存元素的分值(score)。 127.0.0.…...
【C++数据结构 | 字符串速通】10分钟秒杀字符串相关操作 | 字符串的增删改查 | 字符串与数组相互转换
字符串 by.Qin3Yu 文中所有代码默认已使用std命名空间且已导入部分头文件: #include <iostream> #include <string> using namespace std;概念速览 字符串是一种非常好理解的数据类型,它用于存储和操作文本数据。字符串可以包含任意字符…...
运动重定向:C-3PO
C-3PO: Cyclic-Three-Phase Optimization for Human-Robot Motion Retargeting based on Reinforcement Learning解析 摘要1. 简介2. 相关工作2.1 运动重定向(Motion Retargeting)2.2 强化学习(Reinforcement Learning) 3. 预备知…...
天池SQL训练营(四)-集合运算-表的加减法和join等
-天池龙珠计划SQL训练营 4.1表的加减法 4.1.1 什么是集合运算 集合在数学领域表示“各种各样的事物的总和”, 在数据库领域表示记录的集合. 具体来说,表、视图和查询的执行结果都是记录的集合, 其中的元素为表或者查询结果中的每一行。 在标准 SQL 中, 分别对检索结果使用 U…...
thinkphp lists todo
来由: 数据库的这个字段我想返回成: 新奇的写法如下: 逻辑层的代码: public function goodsDetail($goodId){$detail $this->good->where(id, $goodId)->hidden([type_params,user_id])->find();if (!$detail) {ret…...
【Flutter】创建应用顶级组件,应用根组件 (学习记录)
前言 在 Flutter 中,应用的顶级组件或根组件通常是在 main() 函数中通过 runApp() 方法创建的。这个组件通常是一个 MaterialApp、CupertinoApp、GetMaterialApp 或其他类似的应用框架组件。 以下是一个创建 MaterialApp 作为根组件的示例: void main()…...
AI材料专题报告:AI革命催生新需求国产替代推动新方向
今天分享的AI系列深度研究报告:《AI材料专题报告:AI革命催生新需求国产替代推动新方向》。 (报告出品方:光大证券) 报告共计:25页 1、算力需求增长催生 800G 光模块需求 算力是数字经济时代新生产力&…...
JVM 分析GC日志
GC日志参数 -verbose:gc 输出gc日志信息,默认输出到标准输出 -XX:PrintGC 输出GC日志。类似:-verbose:gc -XX:PrintGCDetails 在发生垃圾回收时打印内存回收详细的日志,并在进程退出时输出当前内存各区域分配情况 -XX:PrintGCTimeStam…...
阿里云服务器环境配置,ssh免密登录和配置docker
此文章适合ubuntu20.04 64位和ubuntu22.04 64位版本 一.登陆服务器 租完服务器后,首选需要使用本地gitbash或者cmd进入服务器, 命令: ssh rootxxx xxx为服务器公网ip,然后yes,然后输入密码就会进入自己的服务器&am…...
【LeetCode】2621. 睡眠函数
睡眠函数 Promise异步 题目题解 题目 请你编写一个异步函数,它接收一个正整数参数 millis ,并休眠 millis 毫秒。要求此函数可以解析任何值。 示例 1: 输入:millis 100 输出:100 解释: 在 100ms 后此异步…...
网络入门---TCP通信实现
目录标题 前言准备工作 tcpserver.hpp构造函数初始化函数(listen)运行函数(accept) tcpserver.cctcpclient.hpp构造函数初始化函数运行函数(connect) tcpclient.cc问题测试改进一:多进程改进二:多线程改进三:线程池完整代码 前言 在前面的文…...
neuq-acm预备队训练week 8 P2661 [NOIP2015 提高组] 信息传递
题目背景 NOIP2015 Day1T2 题目描述 有 n 个同学(编号为 1 到n)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编号为 Ti 的同学。 游戏开始时,每人都…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
