文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Zabbix 6 系列学习 :编译方式安装

2024-12-13 16:05

关注

接着​上篇​的 Zabbix Appliance 安装,今天带来的是源码编译的安装方式,本文并不是全源码方式,仅仅是 Zabbix 部分源码安装。

本文环境

关闭 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

其实有很多参数,大家可以通过 ./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_passunix:/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

post_max_size改为16M(默认8M)

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用户密码

数据库界面填写数据库密码即可(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 查看服务。

那么到这里基本就完成了前端的配置,下一步。

登录界面。

Admin/zabbix

进入首页。

此时会发现前端啥也没有,但是依然能进入到前端里,这也就是为什么能够把各组件分开部署。

Zabbix 部分

制作 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 配置文件。

最后

本文篇幅较长,如果是完全编译的话更费劲,当然针对一些完全没有外网的朋友相对来说更加的麻烦,有空我会出一个完全离线编译的版本。

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯