源码安装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.repo

yum 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

K8s集群初始化遇到的问题

kubectl describe pod coredns-545d6fc579-s9g5s -n kube-system 找到原因1&#xff1a;CoreDNS Pod 处于 Pending 状态的原因是集群中的节点都带有 node.kubernetes.io/not-ready 污点 journalctl -u kubelet -f 14:57:59.178592 3553 remote_image.go:114] "PullIma…

集群节点状态异常的解决方式

文章目录 集群节点状态异常的解决方式问题概述解决方式1.关闭所有服务2.对所有集群删除Hadoop相关文件2.1 删除Hadoop系统运行时创建的临时数据和文件2.2 删除Hadoop的数据文件 3.重新对Hadoop节点进行初始化和启用4.重启服务&#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虚拟机)详细图…

护眼台灯的功能作用有哪些?深挖台灯护眼是真的吗

随着现代生活方式的改变&#xff0c;孩子们面临着越来越多的视力挑战。在近视学生中&#xff0c;近10%为高度近视&#xff0c;且占比随年级升高而增长。幼儿园6岁儿童中有1.5%为高度近视&#xff0c;而高中阶段则达到了17.6%。为了守护孩子们的视力健康&#xff0c;在科技飞速发…

查看apk版本号

获取未安装的apk版本号 1. 使用aapt命令 使用cmd cd到aapt工具的位置。位于‌Android SDK的build-tools目录下。 使用aapt命令&#xff0c;指向apk所在绝对路径 aapt dump badging your_apk_file.apk &#xff08;win7按住shift键&#xff0c;右键apk文件选择“复制为路径”…

自学鸿蒙HarmonyOS的ArkTS语言<十>@BuilderParam装饰器

作用&#xff1a;当子组件多处使用时&#xff0c;给某处的子组件添加特定功能 一、初始化 1、只能被Builder装饰的方法初始化 2、使用所属自定义组件的builder方法初始化 3、使用父组件的builder方法初始化 - 把父组件的builder传过去&#xff0c;参数名和子组件的builderPar…

Android NDK开发之震动服务客户端编写程序(C++)

一、背景 最近有个小伙伴问我可不可以写一个可执行程序(C/C) 来实现Android设备的震动的功能。 作为一个多年的Android开发者&#xff0c;我觉得这是可以实现的。 但是由于过去我一直做App开发&#xff0c;也就把这个实现过程想简单了。 经过了几天的折腾&#xff0c;终于算是…

【python学习】numpy第三方库的定义、功能、使用场景和使用以及遇到的一些问题

引言 python学习学习到第三方库知识&#xff0c;首先学习的就是机器学习以及对应的numpy第三方库 文章目录 引言一、numpy第三方库的定义二、numpy第三方库的功能2.1数组操作2.2 线性代数计算2.3 随机数生成2.4 文件读写 三、numpy第三方库的使用场景3.1需要进行数值计算3.2 需…

【连续四届EI检索|稳定ACM出版、EI检索|线上线下结合】2024年第五届医学人工智能国际学术会议(ISAIMS 2024,8月13-17)

第五届医学人工智能国际学术会议&#xff08;ISAIMS2024&#xff09;将于2024年8月13-17日于荷兰阿姆斯特丹自由大学召开&#xff0c;国内分会场将于2024年10月25-27日于中国武汉召开。 会议自2020年至今已经成功举办四届&#xff0c;吸引了来自海内外相关领域学者600余名。本届…

C# Opencv实现本地以图搜图

地址&#xff1a;冯腾飞/本地以图搜图

【找不到视图问题解决】@RestController 与 @Controller注解的使用区别

一、问题描述 苍穹外卖在菜品分页查询功能实现的过程中&#xff0c;出现了找不到视图的情况 2024-07-12 21:54:20.860 ERROR 22488 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with p…

OpenSceneGraph学习笔记

目录 引言第一章&#xff1a;OSG概述一、前言&#xff08;1&#xff09;为什么要学习OSG?&#xff08;2&#xff09;OSG的组成&#xff08;3&#xff09;OSG的智能指针&#xff08;4&#xff09;OSG的安装编译 二、第一个OSG程序&#xff08;1&#xff09;Hello OSG程序&#…

移动UI:具备什么特征,可以被认定为科技风格。

移动UI设计在科技风格上通常具备以下特征&#xff1a; 1. 清晰简洁的排版&#xff1a; 科技风格的移动UI通常采用清晰简洁的排版&#xff0c;注重信息的层次感和结构化&#xff0c;以便用户能够快速、直观地获取所需信息。 2. 几何形状和线条&#xff1a; 科技风格的移动UI常…

Vscode ssh远程连接Linux服务器登录时密码password无法输入

问题 最近在用Vscode远程连接Linux服务器时&#xff0c;在终端提示输入密码password的时候用键盘输入没有反应。 以为是键盘坏了&#xff0c;然后尝试复制粘贴没有用。 后来找到了原因以及解决方法&#xff0c;感谢原帖作者&#xff08;原贴链接粘在下面&#xff09; 原因 …

2024.7.16日 最新版 docker cuda container tookit下载!

nvidia官方指导 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html 其实就是这几个命令&#xff0c;但是有墙&#xff1a; curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/shar…

知识图谱研究综述笔记

推荐导读&#xff1a;知识图谱Knowledge Graph Embeddings 论文标题:A Survey on Knowledge Graphs:Representation, Acquisition and Applications发表期刊:IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS, 2021本文作者&#xff1a;Shaoxiong Ji, Shirui Pan, M…

[A-04] ARMv8/ARMv9-Cache的相关策略

ver0.3 前言 前面我们已经通过三篇文章反反复复的讲Cache的概念、结构、架构&#xff0c;相信大家对Cache已经大概有了初步的了解。这里简单归纳一下: (1) Cache从硬件视角看&#xff0c;是连接PE-Core和主存的一种存储介质&#xff0c;存储的数据是主存中数据的副本&#xf…

精选电脑视频录制软件,这3款让录制更高效!

随着信息技术的飞速发展&#xff0c;电脑视频录制软件在日常生活和工作中的应用越来越广泛。无论是教学演示、游戏录制、网络会议&#xff0c;还是个人创作&#xff0c;视频录制都扮演着不可或缺的角色。本文将详细介绍3款电脑视频录制软件&#xff0c;旨在帮助用户选择最适合自…

AI写作辅助工具,如何避免学术不端?

正如常言道&#xff0c;水边行走难免沾湿——虽然这个比喻并不完全适用——AI创作依赖于现有数据&#xff0c;其生成内容多基于已有素材。目前AI的智能尚未达到人类思维的复杂性&#xff0c;创作过程仍显机械。因此&#xff0c;AI撰写的文章常带有可辨识的特征。 在学术界&…

ARM功耗管理之功耗数据与功耗收益评估

安全之安全(security)博客目录导读 思考&#xff1a;功耗数据如何测试&#xff1f;功耗曲线&#xff1f;功耗收益评估&#xff1f; UPF的全称是Unified Power Format&#xff0c;其作用是把功耗设计意图&#xff08;power intent&#xff09;传递给EDA工具&#xff0c; 从而帮…