源码安装zabbix5.0.36完整版

源码安装zabbix5.0.36完整版

  • 环境:CentOS Linux release 7.9,cpu:16,mem:32G
  • 软件包如下:
    zabbix-5.0.36.tar.gz
    mysql-8.0.28-linux-glibc2.17-x86_64-minimal.tar.xz
    nginx-1.6.2.tar.gz

1. 配置前准备

systemctl stop firewalld    # 停止防火墙
systemctl disable firewalld   # 禁用防火墙
systemctl stop NetworkManager
systemctl disable NetworkManager
#查看状态 :systemctl status firewalld#找到这个参数并修改,然后使用reboot重启系统
vim /etc/selinux/config
SELINUX=disabled    # 创建组和用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql# 创建zabbix用户和组
groupadd zabbix# 新建zabbix用户并将其加入到zabbix组,并将他设置为不可登录的类型的用户。
useradd -g zabbix zabbix -s /sbin/nologin  # 清理旧数据
yum remove -y mariadb*# 创建MySQL相关目录,按实际调整
mkdir -p /data/mysql-cluster/mysql3306/{data,binlogs,logs,tmp}# 习惯软件版放这个目录
mkdir /packages# 配置yum源,两个都是阿里云的,前提是有网络,ping www.baidu.com
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repoyum clean all  # 清理缓存
yum makecache  # 生成缓存
yum repolist  # 查看有多少个包,这两个装好后,应该有3000+# 小工具安排上,工具包含netstat、iostat、vmstat这三命令很重要)
yum install -y net-tools

2. 下载并安装nginx


#安装依赖
yum install mysql-devel libcurl libevent libevent-devel fping curl-devel libxml2  libxml2-devel gcc net-snmp-devel pcre-devel zlib-devel openssl-devel -y#下载nginx源码包,一般软件包放这个目录下
cd /packages
wget http://nginx.org/download/nginx-1.6.2.tar.gz  # 不指定目录,则下载到当前目录#解压nginx
# 指定解压到 /data 目录下,解压后为名字前面一样的目录
tar zxvf nginx-1.6.2.tar.gz  -C /data/   
cd /data/nginx-1.6.2# 编译安装
./configure --with-http_ssl_module        #安装目录默认/usr/local/nginx;安装时会自动加nginx用户和nginx用户组,不用额外指定
make && make install
echo $? # 0 则成功,不是0就是报错,有问题# 给nginx所有文件添加权限,防止系统权限限制后对nginx报权限不足的
chmod -R 755 /usr/local/nginx/*#启动nginx
/usr/local/nginx/sbin/nginx#修改nginx配置文件,找到如下内容,取消注释
vim /usr/local/nginx/conf/nginx.conf# 内容如下,找到对应信息并修改,注释掉前面的#,并修改为如下内容,在第65行左右
... ...
location ~ \.php$ {root           html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;include        fastcgi.conf;}
... ...
# 保存退出#重启nginx
/usr/local/nginx/sbin/nginx -t   # 成功则看到....ok
/usr/local/nginx/sbin/nginx -s reload   # 应用刚修改后的文件# 查看端口是否起来,默认端口 80
netstat -nulpt  |grep nginx# 测试nginx,端口按实际来,成功则如下
192.168.169.100:80

PS:ngingx搭建成功如下,注意ip更换为自己的,然后在浏览器上输入"ip:端口"nginx3 、安装MySQL数据库
my.cnf 配置文件在文末。

# 安装依赖,Nothing to do说明已经安装过了。
yum install libaio -y# 创建组和用户,上面已经创建了,这里会提示已经存在
groupadd mysql
useradd -r -g mysql -s /bin/false mysql# 下载安装包,一般软件包放这个目录下
cd /packages
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.28-linux-glibc2.17-x86_64-minimal.tar.xz# 解压
tar xvf mysql-8.0.28-linux-glibc2.17-x86_64-minimal.tar.xz# 放到指定目录下
mv mysql-8.0.28-linux-glibc2.17-x86_64-minimal /usr/local/
cd /usr/local/
mv mysql-8.0.28-linux-glibc2.17-x86_64-minimal mysql # 改名# 配置环境变量,先看看/etc/profile中是否有echo的内容,若有则跳过
echo 'export PATH=$PATH:/usr/local/mysql/bin:/usr/local/nginx/sbin' | sudo tee -a /etc/profile
source /etc/profile   # 使环境变量立即生效# 编辑mysql配置文件my.cnf,可参考文末,复制的时候,注意内容是否有缺失
vim /etc/my.cnf # 编辑my.cnf文件,末尾有自取,修改实际的目录路径,调整cpu和内存相关# 对相关目录的修改属性
chown mysql:mysql -R /data/mysql-cluster/mysql3306# 开始 初始化MySQL
# 用绝对路径是防止用到系统默认版本的命令。而导致初始化报错
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql  #{# 查看MySQL的错误日志,内容里有error,则初始化失败,清除 /data/mysql-cluster/mysql3306/data/下的所有数据rm -rf /data/mysql-cluster/mysql3306/data/*     # 再运行上面的初始化命令,知道错误日志没有error 
#}# 找到MySQL的配置文件my.cnf中的错误日志位置,检查日志内容中是否有erro来判断是否初始化成功
# 生产环境需要把告警Warning信息页全部处理了。
cat /etc/my.cnf |grep -w log_error   # 通过grep过滤错误信息来判断MySQL初始化是否成功,若有error,则说明初始化不成功
cat /data/mysql-cluster/mysql3306/logs/error.log |grep -i error # 配置启动文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/# 启动数据库
/etc/init.d/mysql.server start   #启动成功会看到OK或starting
#{      #错误的话#Starting MySQL.2023-10-06T10:55:31.176795Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.#这个一看就是权限问题了#ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).#用WinSCP去看的时候发现并没有/var/log/mariadb/mariadb.log这个路径,那我们就创建, 并给mysql用户授权即可mkdir /var/log/mariadb touch /var/log/mariadb/mariadb.log chown -R mysql:mysql  /var/log/mariadb/
#}#用以下两条命令找到数据库的随机密码
error_log_path=$(ps -ef | grep mysql | awk '{print $13}' | awk -F '=' '{print $2}')
cat $error_log_path |grep root  # 输出结果最右边如root@localhost: )qruePb?K13g        “)qruePb?K13g” 这个就是随机密码# 内容:2023-08-14T08:25:39.873361Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: JLYwq)wga5kR
ps -ef |grep mysql # 登录MySQL
mysql -uroot -p   # ,回车后,输入上面的随机密码# 登录后,代码输入符变为‘mysql>’,第一件事只能改密码
mysql> ALTER user root@localhost IDENTIFIED BY '123456';  # 修改root的密码#  创建zabbix需要的数据库账号
mysql> CREATE USER zabbix@localhost IDENTIFIED WITH mysql_native_password BY 'qaz123456'; # 记住密码,配置zabbix_server.conf的时候用到,登录网页的时候也用的
mysql> create database zabbix character set utf8 collate utf8_bin;    # 创建zabbix数据保存的库
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;  # 给zabbix用户分配权限
mysql> set global log_bin_trust_function_creators = 1;
mysql> FLUSH PRIVILEGES;  # 刷新权限
mysql> exit# 创建别名,方便登录
vim /root/.bashrc # 添加下面这条,‘MySQL登录的信息’里面按实际登录信息填写,记得保存退出
alias dba3306='mysql -uroot -p123456'
source /root/.bashrc #使生效# 测试别名,直接输入就可以登录mysql了
dba3306 

4、安装php

# yum安装php相关依赖,最好执行两次以确认依赖都已经安装成功
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json 
yum install -y php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache 
yum install -y php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip 
yum install -y php73-php-recode php73-php-snmp php73-php-soap php73-php-xml php73-php-ldap# 配置zabbix所需的参数
vim /etc/opt/remi/php73/php.ini# 找到以下参数,并修改
date.timezone = Asia/Shanghai    # 设置时区
max_execution_time = 300    # 最大执行时间
post_max_size = 16M    # post数据最大容量
max_input_time = 300    # 服务器接受数据的时间限制
# 以下这两条可不写,但是MySQL的socke需要用默认的,则/tmp下面那个,或者用ln -s创建软连接解决
mysqli.default_socket = /data/mysql-cluster/mysql3306/tmp/mysqld3306.sock  # 按实际填写mysql的socket,用ps看
pdo_mysql.default_socket = /data/mysql-cluster/mysql3306/tmp/mysqld3306.sock   # 按实际填写mysql的socket,用ps看# 启动php
systemctl start php73-php-fpm# php占用的端口为9000,用如下命令查看php端口是否存活
netstat -ntlp | grep 9000   
# 重启
systemctl restart php73-php-fpm# 设置开机启动
systemctl enable php73-php-fpm
#出现则成功:Created symlink from /etc/systemd/system/multi-user.target.wants/php73-php-fpm.service to /usr/lib/systemd/system/php73-php-fpm.service.

5、测试PHP是否成功安装

# 写一个php脚本,测试php是否搭建并启动成功
vim /usr/local/nginx/html/test.php# 将如下内容编辑进去
<?php
$i=100;
echo $i;
?>
# 保存退出#测试,有时复制可能会格式不兼容,尽量手敲。
# IP按实际情况填写,ip a 可以查看网卡信息,有输出结果为:100  和所写脚本内容一致,则搭建、启动成功
curl http://192.168.169.100/test.php   

6、安装zabbix服务
官网下载源码包:https://www.zabbix.com/cn/download_sources

# 创建zabbix用户和组
# 新建zabbix用户并将其加入到zabbix组,并将他设置为不可登录的类型的用户。提示已存在,则跳过
useradd -g zabbix zabbix -s /sbin/nologin  # 直接用wget下载源码安装包
cd /packages# 如果因为 OpenSSL 问题无法直接wget,则去浏览器直接下载,然后在上传,注意路径,xshell直接上传的时候有可能不成功,可尝试其他渠道,我是用MobaXterm上传的。
wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.36.tar.gz#解压并安装
tar zxvf zabbix-5.0.36.tar.gz -C /data/ # 解压到指定目录/data/下面
cd /data/zabbix-5.0.36# 安装依赖
yum install -y net-snmp-devel net-snmp-utils# 开始编译
# 注意这个文件/usr/local/mysql/bin/mysql_config,按对应的数据库版本的文件为准,本次所用为msyql8.0的,这个文件就用对应的
./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl  # 安装一些zabbix-server所需的功能make install  # 开始安装
echo $? # 0 则成功,不是0就是报错,有问题# 创建mysql的socket软连接,不然就要去php的配置文件改
ln -s /data/mysql-cluster/mysql3306/tmp/mysqld3306.sock /tmp/mysql.sock# 将源码包中的数据导入数据库中
cd /data/zabbix-5.0.36/database/mysql/# 这三个文件,一定要按顺序来跑
mysql -uzabbix -p'qaz123456' zabbix < schema.sql
mysql -uzabbix -p'qaz123456'  zabbix < images.sql
mysql -uzabbix -p'qaz123456'  zabbix < data.sql# 修改zabbix-server的配置文件
vim /usr/local/etc/zabbix_server.conf  # 内容如下, 找到下面内容并修改,密码对应实际情况
LogFile=/tmp/zabbix_server.log
DBName=zabbix
DBUser=zabbix
DBPassword='qaz123456'
DBPort=3306    # mysql数据库的端口,有些不一定是3306,按实际填写
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
# 保存退出# 检查一下内容
cat /usr/local/etc/zabbix_server.conf | grep -v ^# |grep -v ^$
# 内容如下
LogFile=/tmp/zabbix_server.log
DBName=zabbix
DBUser=zabbix
DBPassword='qaz123456'
DBPort=3306
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1#  将动态库,软连接到指定目录/usr/lib64下
ln -s /usr/local/mysql/lib/libmysqlclient.so.21 /usr/lib64   
ln -s /usr/local/mysql/lib/private/libcrypto.so.1.1 /usr/lib64
ln -s /usr/local/mysql/lib/private/libssl.so.1.1 /usr/lib64# 启动zabbix服务
zabbix_server# 用netstat 查看进程是否启动成功,占用端口为10051
netstat -nulpt |grep zabbix_server

7、初始化准备zabbix的web数据

#将源码包中的所有关于php页面的文件拷贝到nginx中
cp -a /data/zabbix-5.0.36/ui/* /usr/local/nginx/html#并将所有文件赋上所有权限
chmod -R 777 /usr/local/nginx/html
chown -R zabbix.mysql /usr/local/nginx/html/*# 浏览器访问zabbix页面,并做配置
http://192.168.169.100/setup.php  # 替换实际的IP

8、配置web网页

  • 数据库用户
    账号:zabbix
    密码:qaz123456
  • PS:注意数据库类型是MySQL
    在这里插入图片描述
  • 一直点击“下一步”,直到完成
    在这里插入图片描述
  • 默认账号密码为Admin,密码为:zabbix
  • 如果不记得了,直接百度,但是要注意版本
    在这里插入图片描述
  • 点击Sign in,登录到首页
    在这里插入图片描述
    至此,zabbix以全部搭建完成!!

MySQL的配置文件my.cnf如下:

# 文档使用版本8.0.28版本,内容仅供参考
[client]
port            = 3306
socket          = /data/mysql-cluster/mysql3306/tmp/mysqld3306.sock[mysqld]
user = mysql 
port            = 3306
socket          = /data/mysql-cluster/mysql3306/tmp/mysqld3306.sock
pid-file = /data/mysql-cluster/mysql3306/tmp/my3306.pid
basedir = /usr/local/mysql
datadir = /data/mysql-cluster/mysql3306/data
slow_query_log_file = /data/mysql-cluster/mysql3306/logs/3306slow.log
log_error = /data/mysql-cluster/mysql3306/logs/error.log
log_bin=/data/mysql-cluster/mysql3306/binlogs/my3306_bin

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

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

相关文章

[MySQL][表的增删查改][二][Retrieve][SELECT][WHERE]详细讲解

目录 1.Retrieve1.基本语法2.SELECT列1.全列查询2.查询字段为表达式3.为查询结果指定别名4.结果去重 3.WHERE条件1.比较运算符2.逻辑运算符3.示例 4.结果排序1.基本语法2.示例 5.筛选分页结果 1.Retrieve 1.基本语法 SELECT [DISTINCT] * | {column [, column] ...} [FROM ta…

基于pytesseract的OCR图片识别

简介 pytesseract是基于谷歌的tesseract的OCR包&#xff0c;支持识别一些简单的数字、字母、中文。 安装 安装引擎 下载地址&#xff1a;https://digi.bib.uni-mannheim.de/tesseract/ 一般是Windows 64位系统最新版&#xff1a; 如果要识别中文&#xff0c;注意选中中文…

【微服务】Spring Cloud Config解决的问题和案例

文章目录 强烈推荐引言解决问题1. 配置管理的集中化2. 配置的版本控制3. 环境特定配置4. 配置的动态刷新5. 安全管理敏感数据6. 配置的一致性 组件1. **配置服务器&#xff08;Config Server&#xff09;**2. **配置客户端&#xff08;Config Client&#xff09;** 配置示例配置…

十一、(正点原子)Linux异步通知

一、简介 我们首先来回顾一下“中断”&#xff0c;中断是处理器提供的一种异步机制&#xff0c;我们配置好中断以后就可以让处理器去处理其他的事情了&#xff0c;当中断发生以后会触发我们事先设置好的中断服务函数&#xff0c;在中断服务函数中做具体的处理。 Linux …

JVM常见知识点总结

最近在看关于JVM的一些知识点&#xff0c;之前也有了解过&#xff0c;可是时间一长就总会忘&#xff0c;索性按照自己的记忆方式去回顾一下知识点。 首先&#xff0c;jvm是Java程序运行的环境&#xff0c;全称为Java Virtual Machine 当我们写好的Java文件经过javac编译后就变成…

Java SE—基本数据类型(详细讲解)

&#x1f4dd;个人主页&#x1f339;&#xff1a;誓则盟约 ⏩收录专栏⏪&#xff1a;Java SE &#x1f921;往期回顾&#x1f921;&#xff1a;Python 神器&#xff1a;wxauto 库——解锁微信自动化的无限可能 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f3…

售前工程师的AI大模型转型之路

随着人工智能技术的飞速发展&#xff0c;大模型&#xff08;Large Language Models, LLMs&#xff09;正逐渐成为IT行业的热点。对于售前工程师来说&#xff0c;转行大模型领域不仅意味着新的机遇&#xff0c;也面临着诸多挑战。本文将探讨售前工程师转行大模型领域的机遇与挑战…

嵌入式人工智能(6-树莓派4B按键输入控制LED)

1、按键 按键的原理都是一样&#xff0c;通过按键开关的按下导通&#xff0c;抬起断开的情况&#xff0c;GPIO引脚来检测其是否有电流流入。GPIO有input()方法&#xff0c;对于GPIO引脚检测电流&#xff0c;不能让其引脚悬空&#xff0c;否则引脚会受周边环境电磁干扰产生微弱…

SpringBoot之健康监控(Actuator)

1&#xff0c;基本介绍 Spring Actuator 是 Spring Boot 提供的一个扩展模块&#xff0c;用于监控和管理应用程序的生产环境。它通过 HTTP 端点暴露了大量的监控和管理功能&#xff0c;使得开发者可以在运行时查看应用程序的运行状况、配置信息、性能指标等。 主要功能&#…

探索未来视界:LC201小尺寸红外热成像机芯引领行业新变革

在当今科技飞速发展的时代&#xff0c;红外热成像技术正以前所未有的方式革新着诸多行业&#xff0c;而灵卡技术推出的LC201小尺寸红外热成像机芯&#xff0c;正是这一变革的先锋。专为体积和功耗敏感领域设计&#xff0c;LC201以超紧凑的22x22mm尺寸、轻量化设计&#xff0c;及…

什么是边缘计算技术和边缘计算平台?

随着物联网、5G技术和人工智能的不断发展&#xff0c;数据的规模和种类也在快速增加。在这种背景下&#xff0c;传统的云计算模式面临着一些问题&#xff0c;例如延迟高、网络拥塞等&#xff0c;这些问题限制了数据的处理速度和效率&#xff0c;降低了用户的使用体验。为了解决…

非对称加解密和签名

非对称加解密特点 一对密钥&#xff0c;公钥和私钥。私钥自己持有&#xff0c;公钥公开给通信的对方。 如果公钥用作加密&#xff0c;那么私钥用作解密。 如果私钥用做加密&#xff0c;那么公钥用作解密。 如果数据量少可用非对称加密算法直接加密。 如果数据量大&#xff0c;…

【Python爬虫教程】第7篇-requests模块的cookies保存和使用

文章目录 为什么要保存cookiesrequests.utils工具类保存cookies到本地文件从本地文件解析cookies使用使用实践 为什么要保存cookies 保存cookies是避免每次都登录获取权限&#xff0c;一遍权限是有过期时间的&#xff0c;不需要每次重复登录&#xff0c;可以将cookies保存起来…

MySQL事务隔离级别+共享锁,排他锁,乐观锁,悲观锁

在操作数据库的时候&#xff0c;可能会由于并发问题而引起的数据的不一致性&#xff08;数据冲突&#xff09;。 MySQL事务隔离级别 一个事务的执行&#xff0c;本质上就是一条工作线程在执行&#xff0c;当出现多个事务同时执行时&#xff0c;这种情况则被称之为并发事务&am…

AI算法16-贝叶斯线性回归算法Bayesian Linear Regression | BLR

贝叶斯线性回归算法简介 频率主义线性回归概述 线性回归的频率主义观点可能你已经学过了&#xff1a;该模型假定因变量&#xff08;y&#xff09;是权重乘以一组自变量&#xff08;x&#xff09;的线性组合。完整的公式还包含一个误差项以解释随机采样噪声。如有两个自变量时…

excel系列(二) - 利用 easypoi 快速实现 excel 文件导入导出

一、介绍 在上篇文章中&#xff0c;我们介绍了 apache poi 工具实现 excel 文件的导入导出。 本篇我们继续深入介绍另一款优秀的 excel 工具库&#xff1a;easypoi。 二、easypoi 以前的以前&#xff0c;有个大佬程序员&#xff0c;跳到一家公司之后就和业务人员聊上了&…

Parallels Desktop 19 for Mac(PD19虚拟机)详细图文安装教程分享

Parallels Desktop 19是一款功能丰富、性能强大且易于使用的虚拟机软件&#xff0c;它可以让您在Mac上同时运行多个操作系统&#xff0c;为您提供更大的灵活性和兼容性。 Parallels Desktop 19 for Mac(PD19虚拟机)下载安装包 Parallels Desktop 19 for Mac(PD19虚拟机)详细图…

linux端口,进程管理,主机状态监控

linux端口&#xff0c;进程管理&#xff0c;主机状态监控 一、端口 1、什么是端口?2、端口的划分2、查看端口占用 二、进程 1、什么是进程2、查看进程信息2、关闭进程 三、主机状态监控 1、查看资源占用2、磁盘信息监控3、查看网络情况 四、命令总结 一、端口 1、什么是端口…

电力调度台如何助力电力指挥中心更智慧

在现代电力系统的复杂运行环境中&#xff0c;电力调度台正逐渐成为电力指挥中心实现智慧化管理的关键力量。 电力调度台具备强大的信息集成与处理能力。它能够将来自不同监测系统、传感器和数据源的海量数据汇聚一处&#xff0c;包括电力设备的实时运行状态、电力负荷的动态变化…

C++客户端Qt开发——常用控件(输入类控件)

4.输入类控件 ①Line Edit 单行输入框 属性 说明 text 输入框中的文本 input 输入内容格式约束 maxLength 最大长度 frame 是否添加边框 echoMode 显示方式 QLineEdit::Normal&#xff1a;这是默认值&#xff0c;文本框会显示输入的文本。 QLineEdit::Password&…