源码部署zabbix-4.4.7(详细)

本文详细介绍了Zabbix监控系统的基础安装、环境配置,包括LNMP环境搭建、源码安装、数据库设置、PHP配置、Nginx配置以及zabbix_server和zabbix_agent的部署。还涵盖了数据库用户权限管理、依赖软件安装、错误排查与解决过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部署zabbix
一、zabbix介绍

zabbix官网:https://www.zabbix.com/

zabbix下载页面:https://www.zabbix.com/download

zabbix rpm包下载页面:http://repo.zabbix.com/zabbix/

一、 zabbix简介

  • zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  • zabbix能监视各种网络参数,保证服务器系统的安全运行;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
    zabbix由2部分构成,zabbix server与可选组件zabbix agent。 zabbix
    server可以通过SNMP,zabbix
    agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free
    BSD,Open BSD,OS X等平台上。

1.2 zabbix的组件

zabbix由以下几个组件部分构成:

Zabbix Server

:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行。

Database Storage

:专用于存储所有配置信息,以及由zabbix收集的数据。

Web interface

:zabbix的GUI接口,通常与Server运行在同一台主机上。

Proxy

:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端(实现分布式监控专用组件非必要组件,被监控服务器过多或者跨机房可以使用此组件。)

Agent

:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端。 注:zabbix node也是 zabbix server的一种
。不过现在已经基本弃用了

二、zabbix的安装

搭建zabbix监控服务器

**1. 部署运行环境LNMP

  • 安装源码zabbix软件
  • 创建存储数据的 库、表、连接数据库服务用户
  • 初始化准备
  • 初始化配置(登录web管理页面)
  • 登录web管理页面
  • 启动zabbix监控服务**

1、部署lnmp

1.0安装nginx及依赖包

nginx源码包获取网址:www.nginx.org
nginx源码包可以提前从官网上拉取,也可以通过wget这个命令来直接拉取;

#部署nginx依赖环境
yum -y install gcc gcc-c++ pcre-devel openssl-devel zlib-devel
注:openssl-devel 功能:支持数据加密传输 zlib-devel:数据压缩
#获取nginx源码包
yum -y install wget ;//拉取文件的一个软件
wget http://www.nginx.org/download/nginx-1.18.0.tar.gz
#解压nginx源码包

tar zxf nginx-1.18.0.tar.gz
cd nginx-1.18.0

./configure (默认安装位置为/usr/local)**

./configure --with-http_ssl_module && make && make install

编译时候添加with-http_ssl_module对应openssl-devel 功能,需要支持数据加密传输则添加上

1.1安装php

yum -y install php php-mysql php-fpm
   php-mysql:  php用来连接mysql服务的软件
   php:解释php代码
   php-fpm:用来管理php程序

1.2安装数据库mariadb

yum -y install mariadb mariadb-devel mariadb-server

验证安装包:

rpm -q php php-mysql php-fpm mariadb mariadb-server mariadb-devel

在这里插入图片描述

1.3修改nginx配置

sed -i '65s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '66s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '67s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '68s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '70s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '71s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '70s/fastcgi_params/fastcgi.conf/' /usr/local/nginx/conf/nginx.conf 

在这里插入图片描述

也可以手动进入路径来修改,这边使用的sed命令替换功能,取消注释, 将#替换为空,源码编译的nginx 主配置文件行号不会改变,直接使用上述sed命令即可

检查下nginx

[root@zabbix conf]# /usr/local/nginx/sbin/nginx -t

在这里插入图片描述
启动nginx

/usr/local/nginx/sbin/nginx
[root@zabbix conf]# netstat -lnpt | grep nginx

在这里插入图片描述

设置nginx为系统服务,并开机启动
vim /lib/systemd/system/nginx.service
添加如下内容:

[Unit]
 
Description=nginx service
 
After=network.target
 
   
 
[Service]
 
Type=forking
 
ExecStart=/usr/local/nginx/sbin/nginx
 
ExecReload=/usr/local/nginx/sbin/nginx -s reload
 
ExecStop=/usr/local/nginx/sbin/nginx -s quit
 
PrivateTmp=true
 
   
 
[Install]
 
WantedBy=multi-user.target

Description:描述服务

After:描述服务类别

[Service]服务运行参数的设置

Type=forking是后台运行的形式

ExecStart为服务的具体运行命令

ExecReload为重启命令

ExecStop为停止命令

PrivateTmp=True表示给服务分配独立的临时空间

注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

配置完文件后 可以将nignx设置为开机自动启动了

systemctl enable nginx

在这里插入图片描述

1.4修改mysql配置

systemctl start mariadb         //启动数据库
systemctl enable mariadb        //开机自启
systemctl start php-fpm         //启动php
systemctl enable php-fpm        //开机自启
[root@zabbix ~]# netstat -lnpt | netstat -lnpt | grep php 
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      3036/php-fpm: maste 
[root@zabbix ~]# netstat -lnpt | netstat -lnpt | grep mysql
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2917/mysqld 

1.5验证php环境

[root@zabbix ~]# vim /usr/local/nginx/html/test.php
<?php
$i=helloworld;
echo $i
?>

在这里插入图片描述
在这里插入图片描述
返回helloworld则成功

2、安装源码zabbix软件

1.0安装依赖包

1.1编译zabbix

安装依赖包
yum -y install net-snmp-devel
yum -y install curl-devel
yum -y install libevent-devel
yum install libxml2 libxml2-devel -y	
[root@zabbix ~]# wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.4.7/zabbix-4.4.7.tar.gz 
    //安装zabbix4.4.7稳定版

[root@zabbix ~]# tar zxf zabbix-4.4.7.tar.gz 
[root@zabbix ~]# cd zabbix-4.4.7/
[root@zabbix zabbix-4.4.7]# ./configure --prefix=/usr/local/zabbix-4.4.7 --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 && make && make install
 //如果要配置 Zabbix server 和 Zabbix proxy 的源代码,可以运行以上内容

3、创建存储数据的 库、表、连接数据库服务用户

1.0创建数据库用户授权登录

[root@zabbix zabbix-4.4.7]# mysql -u root -p    //yum安装mariadb默认没有密码 直接回车登录
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
#create database创建数据库为zabbix
#character set utf8 可以往库里存中文

MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
#grant all on zabbix授权用户为zabbix
#zabbix@'localhost'客户端为服务器本机   //zabbix将数据存放在本机数据库里密码也为zabbix

1.1导入源码sql文件到mysql

zabbix源码目录下导入sql文件,可以恢复存储数据的表
在这里插入图片描述

[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
#建议一行一行执行,导入恢复数据时间较长

1.2导入完成恢复数据后,验证下

[root@zabbix mysql]# mysql -uzabbix -pzabbix 
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zabbix             |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> use zabbix;

MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| application_discovery      |
| application_prototype      |
| application_template       |
| applications               |
| auditlog                   |
| auditlog_details           |
| autoreg_host               |
| conditions                 |
| config                     |
| config_autoreg_tls         |
| corr_condition             |
| corr_condition_group       |
| corr_condition_tag         |
| corr_condition_tagpair     |
| corr_condition_tagvalue    |
| corr_operation             |
| correlation                |
| dashboard                  |
| dashboard_user             |
| dashboard_usrgrp           |
| dbversion                  |
| dchecks                    |
| dhosts                     |
| drules                     |
-----------------------------

显示新增加了149行则导入成功

4、初始化准备部署zabbix服务端

1.0拷贝源码目录下php所有文件

[root@zabbix ~]# cd zabbix-4.4.7/
[root@zabbix zabbix-4.4.7]# ls
aclocal.m4  conf           configure.ac  INSTALL      man      src
AUTHORS     config.guess   COPYING       install-sh   misc
bin         config.log     database      m4           missing
build       config.status  depcomp       Makefile     NEWS
ChangeLog   config.sub     frontends     Makefile.am  README
compile     configure      include       Makefile.in  sass

#找到frontends 文件夹,里面为zabbix的前端php代码
在这里插入图片描述

将/root/zabbix-4.4.7/frontends/php内所有文件拷贝到/usr/local/nginx/html下

[root@zabbix ]# rm -rf /usr/local/nginx/html/*
[root@zabbix php]# cp -a * /usr/local/nginx/html/
验证:
[root@zabbix php]# ls /usr/local/nginx/html/
50x.html                       hosts.php
actionconf.php                 httpconf.php
adm.gui.php                    httpdetails.php
adm.housekeeper.php            image.php
adm.iconmapping.php            imgstore.php
adm.images.php                 index.html
adm.macros.php                 index_http.php
adm.other.php                  index.php
adm.regexps.php                items.php
adm.triggerdisplayoptions.php  jsLoader.php
adm.triggerseverities.php      jsrpc.php
adm.valuemapping.php           latest.php
adm.workingtime.php            maintenance.php

1.1nginx配置文件添加php参数

vim /usr/local/nginx/conf/nginx.conf
在http模块内容添加
http {
}
添加内容如下:
fastcgi_buffers 8 16k; #缓存php生成的页面类容,8个16k
fastcgi_buffer_size 32k; #缓存php生成的头部信息
fastcgi_connect_timeout 300; #连接php超时时间
fastcgi_send_timeout 300; #发送请求超时时间
fastcgi_read_timeout 300; #读取请求超时时间
:wq


[root@zabbix ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

1.2测试访问启动zabbix server界面

输入本机ip/index.php:
http://119.91.83.220/index.php
在这里插入图片描述点击下一步时候发现报错。file字样则是有问题
在这里插入图片描述
在这里插入图片描述

1.3解决依赖报错

安装依赖软件:
yum -y install php-gd php-xml php-ldap
yum -y install php-bcmath php-mbstring

修改php配置文件
[root@zabbix ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai     #设置时区
max_execution_time = 300  #最大执行时间300s
post_max_size = 32M #post数据最大容量
max_input_time = 300 #394--服务器接收数据时间
重启php
[root@zabbix ~]# systemctl restart php-fpm.service

在这里插入图片描述现在无报错,可下一步
在这里插入图片描述在这里插入图片描述下一步发现报错(Cannot create the configuration file. Unable to create the configuration file.)没有权限写入
解决方法:

[root@zabbix php]# chmod -R 777 /usr/local/nginx/html/

在这里插入图片描述
默认用户名为:Admin
密码:zabbix
#Remember me for 30 days(记住密码30天,可选操作,为了安全可以不记住)

1.3.10解决初始化密码登陆报错

ps:如果遇到第一次登陆zabbix,用户名密码没错的情况显示密码或者用户错误,则可通过修改后台数据库密码登陆

1、登陆zabbix的服务器,查看zabbix的登陆密码:
[root ~]# mysql -uroot -p -e "select * from zabbix.users\G"
Enter password: 
*************************** 1. row ***************************
            userid: 1
             alias: Admin
              name: Zabbix
           surname: Administrator
            passwd: d41d8cd98f00b204e9800998ecf8427e 
            //上面的passwd就是zabbix的md5加密后的字符串
               url: 
         autologin: 1
        autologout: 0
              lang: en_GB
           refresh: 30
              type: 3
             theme: default
    attempt_failed: 0
        attempt_ip: 192.168.1.10
     attempt_clock: 1596006287
     rows_per_page: 50
*************************** *************************** 
2、重新开个终端,生成一个MD5加密的密码,这里密码设置的是redhat
[root@zabbix ~]# echo -n redhat|openssl md5   
 #-n就表示不输入回车符,不加-n,否则就不是这个结果了。
(stdin)= e2798af12a7a0f4f70b4d69efbc25f4d     

3、登陆数据库进入zabbix库,修改密码
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> update users set passwd='e2798af12a7a0f4f70b4d69efbc25f4d' where userid = '1';
//passwd=的md5代码需和上面生成的md5代码相同
#或者直接使用update  users set passwd=md5("redhat") where userid='1';
Query OK, 1 row affected (0.01 sec)

mysql> flush privileges;      
//刷新下配置
Query OK, 0 rows affected (0.01 sec)

4、此时zabbix账号密码为:
账号:Admin
密码:redhat

在这里插入图片描述

1.4修改默认密码,修改语言

在这里插入图片描述为了安全可以在控制台修改新的密码,修改为中文
在这里插入图片描述
在这里插入图片描述

1.5报错zabbix server服务未运行

报错:Zabbix server is not running: the information displayed may not be current.

解决如下:
1、修改zabbix server服务配置文件
2、创建进程所有者用户
3、启动服务
4、查看状态

[root@zabbix ~]# vim /usr/local/zabbix-4.4.7/etc/zabbix_server.conf
#进入配置文件添加修改以下内容

DBHost=localhost  //数据主机
DBName=zabbix     //设置数据库名称
DBUser=zabbix     //设置数据库用户
DBPassword=zabbix  //设置数据库密码
LogFile=/tmp/zabbix_server.log  //设置日志位置

启动服务

创建用户
[root@zabbix ~]# useradd zabbix
[root@zabbix ~]# cd /usr/local/zabbix-4.4.7/sbin/
[root@zabbix sbin]# ls
zabbix_agentd  zabbix_server

[root@zabbix sbin]# /usr/local/zabbix-4.4.7/sbin/zabbix_server 
#启动服务

验证,查看状态

[root@zabbix sbin]# netstat -lnpt | grep zabbix
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      11257/zabbix_server 
tcp6       0      0 :::10051                :::*                    LISTEN      11257/zabbix_server 

关闭zabbix
[root@zabbix sbin]# killall -9 zabbix_server

现在已经解决报错
在这里插入图片描述

1.6监控zabbix服务器自身

[root@zabbix ~]# vim /usr/local/zabbix-4.4.7/etc/zabbix_agentd.conf
#进入zabbix_agent主配置文件中,编译时候添加了agent模块 所以是有生成的

EnableRemoteCommands=1    允许远程命令
LogRemoteCommands=1    记录远程命令
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=zabbix-server
#修改并确认如上内容:

[root@zabbix ~]# /usr/local/zabbix-4.4.7/sbin/zabbix_agentd 
#启动agent

测试端口
[root@zabbix ~]# netstat -lnpt |grep zabbix_agentd
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      14784/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      14784/zabbix_agentd 


在这里插入图片描述

1.7解决Zabbix 图形中文乱码

在这里插入图片描述

字体文件目录 /root/zabbix-4.4.7/frontends/php/assets/fonts

下载字体,需要一些时间 耐心等待
[root@zabbix ~]#wget https://raw.githubusercontent.com/chenqing/ng-mini/master/font/msyh.ttf


下载完成后。进入**/usr/local/nginx/html/assets/fonts** 将字体包msyh.ttf拖进去

mv /root/msyh.ttf /usr/local/nginx/html/assets/fonts

修改php配置文件

vim /usr/local/nginx/html/include/defines.inc.php

在这里插入图片描述:%s/DejaVuSans/simfang/g

配置完成后,重启nginx

[root@zabbix fonts]# systemctl reload nginx

验证:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值