Zabbix 6 系列学习 06:编译方式安装
yuyutoo 2024-11-10 13:48 3 浏览 0 评论
接着上篇的 Zabbix Appliance 安装,今天带来的是源码编译的安装方式,本文并不是全源码方式,仅仅是 Zabbix 部分源码安装。
本文环境
- CentOS 7 2009
关闭 Firewall、Selinux
systemctl stop firwalld && systemctl disable firewalld
setenforce 0
永久关闭 selinux,需要重启服务器
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
reboot
安装所需软件,更新系统到最新
yum -y install tar vim wget
yum update -y
下载源码包
cd /tmp
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.12.tar.gz
解压软件包
tar -zxvf zabbix-6.0.12.tar.gz
数据库部分
由于 6.0 需要 mysql 8.0 以上,而自带的为 mysql 5.6,所以安装 mysql 8.0 的 yum 仓库文件。
yum -y install https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm
安装数据库
yum -y install mysql-server
启动数据库
systemctl start mysqld && systemctl enable mysqld
查找数据库密码
cat /etc/var/mysqld.log
可以看到密码为 0fs!KjAe1dMm
初始化数据库
mysql_secure_installation
该步骤仅需要修改密码即可,其他直接回车就可以了
其他回车即可
用新密码登录测试(密码自行设置,下面的密码仅限本文使用)
mysql -uroot -pHuawei@123!
创建 Zabbix 用户及用户组
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
创建 Zabbix 目录
mkdir -p /app/zabbix
编译软件
cd /tmp/zabbix-6.0.12
- prefix 指定安装目录
- enable-server 启用 Zabbix Server
- enable-agent2 启用 Zabbix agent2
- with-mysql 后端指定数据库为 mysql
- net-snmp 支持 snmp 协议
其实有很多参数,大家可以通过 ./configure --help 自行研究
./configure --prefix=/app/zabbix --enable-server --enable-agent2 --with-mysql --with-net-snmp
报错1,C 语言环境问题
解决方法
yum -y install gcc-c++
报错2,mysql 库文件没有
解决办法
yum -y install mysql-devel
报错03,net-snmp 部分问题
解决办法
yum -y install net-snmp-devel
报错03,libevent 报错
解决办法
yum -y install libevent-devel
报错04,缺少 go 环境(如果是一代 agent,无此问题)
解决办法
yum -y install golang
编译完成
安装
make install
整体安装目录
/app/zabbix
├── bin
│ └── zabbix_js
├── etc
│ ├── zabbix_agent2.conf
│ ├── zabbix_agent2.d
│ │ └── plugins.d
│ │ ├── ceph.conf
│ │ ├── docker.conf
│ │ ├── memcached.conf
│ │ ├── modbus.conf
│ │ ├── mqtt.conf
│ │ ├── mysql.conf
│ │ ├── oracle.conf
│ │ ├── redis.conf
│ │ └── smart.conf
│ ├── zabbix_agentd.conf
│ ├── zabbix_agentd.conf.d
│ ├── zabbix_server.conf
│ └── zabbix_server.conf.d
├── lib
│ └── modules
├── sbin
│ ├── zabbix_agent2
│ ├── zabbix_agentd
│ └── zabbix_server
└── share
├── man
│ └── man8
│ ├── zabbix_agent2.8
│ └── zabbix_server.8
└── zabbix
├── alertscripts
└── externalscripts
PHP 部分
Zabbix 6.0 LTS 需要 php 7.2.5 版本以上,需要安装 remi 源支持 php 7.x,官方暂不支持 php 8.x 版本。
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php74
yum -y install php php-fpm
NGINX 部分
1.安装 Nginx
yum -y install epel-release
yum -y install nginx
2.移动前端文件到 Zabbix 目录
mv /tmp/zabbix-6.0.12/ui/ /app/zabbix
vim /etc/nginx/conf.d/zabbix.conf
3.修改 Zabbix nginx 配置文件
server {
listen 80;
# server_name example.com;
root /app/zabbix/ui;
index index.php;
location = /favicon.ico {
log_not_found off;
}
location / {
try_files $uri $uri/ =404;
}
location /assets {
access_log off;
expires 10d;
}
location ~ /\.ht {
deny all;
}
location ~ /(api\/|conf[^\.]|include|locale|vendor) {
deny all;
return 404;
}
location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/run/php-fpm/zabbix.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /app/zabbix/ui;
fastcgi_param SCRIPT_FILENAME /app/zabbix/ui$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /app/zabbix/ui$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}
4.修改 Nginx 配置文件
vim /etc/nginx/nginx.conf
将端口全部注释掉即可
5.启动 Nginx
systemctl start nginx && systemctl enable nginx
6.打开 php-fpm
systemctl start php-fpm && systemctl enable php-fpm
访问前端
直接访问 IP 地址,发现是 502 报错
查看 Nginx 日志
tail -f /var/log/nginx/error.log
通过日志可以看出,没有 sock 文件,其实很简单,将 fastcgi_pass unix:/run/php-fpm/zabbix.sock 改为 fastcgi_pass 127.0.0.1:9000
vim /etc/nginx/conf.d/zabbix.conf
重启 Nginx 服务
systemctl restart nginx
就可以访问了,直接点击下一步
进入到环境检查界面和包安装基本是天壤之别,由于很多依赖和配置没修改,所以正常,按照警告消息解决就行
依赖安装
yum -y install php-bcmath php-mbstring php-gd php-xml php-mysqlnd
PHP 配置文件调整
vim /etc/php.ini
max_excution_time 时间改为300,原来为30
max_input_time 时间改为300,原来为60
重启 php-fpm 服务
systemctl restart php-fpm
进入到数据库配置界面,还需要配置数据库
创建数据库实例及用户
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'Huawei@123!';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;
导入 Zabbix 所需要的数据文件
cat /tmp/zabbix-6.0.12/database/mysql/schema.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
cat /tmp/zabbix-6.0.12/database/mysql/images.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
cat /tmp/zabbix-6.0.12/database/mysql/data.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
数据库界面填写数据库密码即可(Zabbix 用户),下一步
时区与服务名称界面,修改完,下一步
下一步
出现这个问题就是目录权限问题
将该目录拥有者改为 apache,然后点击 back,在点击下一步
chmod 755 /app/zabbix/ui -R
这里大家知道为什么不是 nginx 么?
Zabbix 是一个 PH P应用,Nginx 通过 php-fpm 来执行 PHP 脚本,而 php-fpm 又是以服务的形式在运行,因此猜想是因为执行写入时 php-fpm 使用的用户不是 Nginx
通过 ps -ef | grep php-fpm 查看服务
那么到这里基本就完成了前端的配置,下一步
登录界面
进入首页
此时会发现前端啥也没有,但是依然能进入到前端里,这也就是为什么能够把各组件分开部署。
Zabbix 部分
- 程序文件路径为 /app/zabbix/sbin/ 下
- 配置文件路径为 /app/zabbix/etc/ 下
制作 Zabbix server 守护文件
vim /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=postgresql.service
After=pgbouncer.service
After=postgresql-13.service
[Service]
Environment="CONFFILE=/app/zabbix/etc/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/app/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
[Install]
WantedBy=multi-user.target
制作 Zabbix agent2 守护文件
vim /usr/lib/systemd/system/zabbix-agent2.service
[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/app/zabbix/etc/zabbix_agent2.conf"
EnvironmentFile=-/etc/sysconfig/zabbix_agent2
Type=simple
Restart=on-failure
PIDFile=/run/zabbix/zabbix_agent2.pid
KillMode=control-group
ExecStart=/app/zabbix/sbin/zabbix_agent2 -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
修改 Zabbix 配置文件
和包安装一样,需要修改数据库部分配置
vim /app/zabbix/etc/zabbix_server.conf
启动相关组件
systemctl restart zabbix-server zabbix-agent2
首页恢复正常
附录
编译安装没有修改任何参数的情况下,pid 文件,sock 文件以及日志都在 /tmp 目录下,如需要调整请修改 Zabbix 配置文件
最后
本文篇幅较长,如果是完全编译的话更费劲,当然针对一些完全没有外网的朋友相对来说更加的麻烦,有空我会出一个完全离线编译的版本,欢迎大家关注后续的文章哦,谢谢!
相关推荐
- 史上最全的浏览器兼容性问题和解决方案
-
微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻︻▄(页底留言开放,欢迎来吐槽)●●●...
-
- 平面设计基础知识_平面设计基础知识实验收获与总结
-
CSS构造颜色,背景与图像1.使用span更好的控制文本中局部区域的文本:文本;2.使用display属性提供区块转变:display:inline(是内联的...
-
2025-02-21 16:01 yuyutoo
- 写作排版简单三步就行-工具篇_作文排版模板
-
和我们工作中日常word排版内部交流不同,这篇教程介绍的写作排版主要是用于“微信公众号、头条号”网络展示。写作展现的是我的思考,排版是让写作在网格上更好地展现。在写作上花费时间是有累积复利优势的,在排...
- 写一个2048的游戏_2048小游戏功能实现
-
1.创建HTML文件1.打开一个文本编辑器,例如Notepad++、SublimeText、VisualStudioCode等。2.将以下HTML代码复制并粘贴到文本编辑器中:html...
- 今天你穿“短袖”了吗?青岛最高23℃!接下来几天气温更刺激……
-
最近的天气暖和得让很多小伙伴们喊“热”!!! 昨天的气温到底升得有多高呢?你家有没有榜上有名?...
- CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式
-
之前也有写过CSS优惠券样式《CSS3径向渐变实现优惠券波浪造型》,这次再来温习一遍,并且将更为详细的讲解,从布局到具体样式说明,最后定义CSS变量,自定义主题颜色。布局...
- 你的自我界限够强大吗?_你的自我界限够强大吗英文
-
我的结果:A、该设立新的界限...
- 行内元素与块级元素,以及区别_行内元素和块级元素有什么区别?
-
行内元素与块级元素首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block)、行内(inline)。块级元素:(以下列举比较常...
-
- 让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华
-
去年的两会期间,习近平总书记在参加人大会议四川代表团审议时,对治蜀兴川提出了明确要求,指明了前行方向,并带来了“祝四川人民的生活越来越安逸”的美好祝福。又是一年...
-
2025-02-21 16:00 yuyutoo
- 今年国家综合性消防救援队伍计划招录消防员15000名
-
记者24日从应急管理部获悉,国家综合性消防救援队伍2023年消防员招录工作已正式启动。今年共计划招录消防员15000名,其中高校应届毕业生5000名、退役士兵5000名、社会青年5000名。本次招录的...
- 一起盘点最新 Chrome v133 的5大主流特性 ?
-
1.CSS的高级attr()方法CSSattr()函数是CSSLevel5中用于检索DOM元素的属性值并将其用于CSS属性值,类似于var()函数替换自定义属性值的方式。...
- 竞走团体世锦赛5月太仓举行 世界冠军杨家玉担任形象大使
-
style="text-align:center;"data-mce-style="text-align:...
- 学物理能做什么?_学物理能做什么 卢昌海
-
作者:曹则贤中国科学院物理研究所原标题:《物理学:ASourceofPowerforMan》在2006年中央电视台《对话》栏目的某期节目中,主持人问过我一个的问题:“学物理的人,如果日后不...
-
- 你不知道的关于这只眯眼兔的6个小秘密
-
在你们忙着给熊本君做表情包的时候,要知道,最先在网络上引起轰动的可是这只脸上只有两条缝的兔子——兔斯基。今年,它更是迎来了自己的10岁生日。①关于德艺双馨“老艺...
-
2025-02-21 16:00 yuyutoo
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)