zabbix原生linux命令部署和docker部署

背景

1.通过Zabbix手动安装实验,深入理解其架构、系统级配置及故障排查能力

2.借助Docker安装实践,快速掌握容器化部署、环境一致性与扩展性。

3.对比二者在安装效率、运维复杂度、定制化能力及生产适配性上的差异,验证手动部署对底层控制的灵活性,以及容器化在标准化、快速交付中的优势。

4.实验旨在培养根据需求选择部署方案的能力,同时强化监控系统的全生命周期管理技能,为后续复杂场景下的监控方案设计奠定基础。

原生linux命令部署

IP为10.1.1.23

zabbix-server+页面(前端)

1、nginx

1.1关闭Slinux和防火墙

#关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
#永久禁用SELinux​
vi /etc/sysconfig/selinux ​
SELinux=enforcing改为SELinux=disabled
reboot  #重启

 1.2 安装nginx

防止出错,将yum.repos.d目录下文件打包压缩

配置yum源

编辑vim /etc/yum.repos.d/nginx.repo,安装测试


[nginx-stable] 
name=nginx stable repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=1 
enabled=0 
gpgkey=https://nginx.org/keys/nginx_signing.key 
module_hotfixes=true

yum install -y nginx --enablerepo=nginx-stable #安装

#测试
rpm -qa | grep nginx

2.安装php

 2.1 php安装

#nginx 1.20.1 php7.2 
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 

yum install epel-release.noarch -y #webtatic 要求 

curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #webtatic源 

yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-process


#检查环境
rpm -qa |egrep 'nginx|php72w'

2.2 nginx+php配置

#加入启动项
systemctl enable nginx php-fpm.service
systemctl start nginx php-fpm.service

#nginx配置
vim /etc/nginx/conf.d/zbx.oldboylinux.cn.conf

server { 
    listen 80; 
    server_name 10.1.1.23; 
    root /app/code/zbx; 
    location / { 
        index index.php; 
    } 
    location ~ \.php$ { 
        fastcgi_pass 127.0.0.1:9000; 
        fastcgi_index index.php; 
        fastcgi_param SCRIPT_FILENAME /app/code/zbx$fastcgi_script_name; 
        include fastcgi_params; 
    } 
}

2.3 重启nginx

2.4 php 配置​

修改php用户

准备 php会话保持目录

sed -ri '/^(user|group)/s#apache#nginx#g' /etc/php-fpm.d/www.conf

egrep '^(user|group)' /etc/php-fpm.d/www.conf

user = nginx 
group = nginx

配置nginx session

grep 'var/lib/php/session' /etc/php-fpm.d/www.conf

php_value[session.save_path] = /var/lib/php/session 

[root@xxx ~]# mkdir -p /var/lib/php/session 
[root@xxx ~]# chown nginx:nginx /var/lib/php/session

php-fpm -t

systemctl reload php-fpm.service

# php+nginx测试 (给php创建资源目录)
[root@xxx ~]# mkdir -p /app/code/zbx
[root@xxx ~]# chown nginx:nginx /app/code/zbx
[root@xxx ~]# vim /app/code/zbx/info.php 
[root@xxx ~]#

 

#编写代码

<?php 
phpinfo(); 
?> 

查看

 
 # 查看文件权限
 ls -l /app/code/zbx/info.php

# 递归修改目录权限(示例以用户 www-data 为例)
chown -R nginx:nginx /app/code/zbx
find /app/code/zbx -type d -exec chmod 755 {} \;  # 目录权限:755
find /app/code/zbx -type f -exec chmod 644 {} \;  # 文件权限:644
 
cat /app/code/zbx/info.php 

测试完成 

3.数据库安装

3.1 安装数据库

yum install -y mariadb-server
#启动mariadb 并加入自启动
systemctl start mariadb
systemctl enable mariadb

 

免密登录mysql

mysql -u root

# 删除多余用户
delete from user where user='root' and host='127.0.0.1';
delete from user where user='root' and host='::1';

# 给mysql root设置密码
mysql_secure_installation

#查看数据库
select user,host from mysql.user ;

#显示数据库
show databases;

# 修改root远程连接
use mysql;

update user set host='%' where user='root';
FLUSH PRIVILEGES;

3.2 测试数据库

4. 安装zbbix server

4.1 zbbix server安装

#安装zabbix yum源
rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 

sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g' 

vim /etc/yum.repos.d/zabbix.repo

[zabbix] 
name=Zabbix Official Repository - $basearch 
baseurl=https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/ 
enabled=1 
gpgcheck=0
[zabbix-frontend] 
name=Zabbix Official Repository frontend - $basearch 
baseurl=https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/frontend 
enabled=0 
gpgcheck=0
[zabbix-debuginfo] 
name=Zabbix Official Repository debuginfo - $basearch 
baseurl=https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/ 
enabled=0 
gpgcheck=0
[zabbix-non-supported] 
name=Zabbix Official Repository non-supported - $basearch 
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/ 
enabled=1 
gpgcheck=0

安装server

yum install -y zabbix-server-mysql zabbix-agent2

#zabbix导入数据库
zcat /usr/share/doc/zabbix-server-mysql-5.0.46/create.sql.gz |mysql -uzabbix -p1 zabbix

配置连接数据库

vim /etc/zabbix/zabbix_server.conf
grep ^DB /etc/zabbix/zabbix_server.conf

:91

91:DBHost=localhost 
100:DBName=zabbix 
116:DBUser=zabbix 
124:DBPassword=1

#启动zabbix-server

systemctl enable zabbix-server.service 
systemctl start zabbix-server.service 

ss -lntup|grep zabbix

4.2 zabbix前端页面准备

源码包下载

https://cdn.zabbix.com/zabbix/sources/stable/5.0/

#使用源码包 
tar xf zabbix-5.0.18.tar.gz 
cd zabbix-5.0.18/ 
cp -a ui/* /app/code/zbx/ 
chown -R nginx.nginx /app/code/zbx/ 

4.3 安装zabbix(zabbix 前端页面连接数据库与zabbix-server)

http://192.168.157.138/setup.php

出现问题

#php最后的配置 
Minimum required size of PHP post is 16M (configuration option "post_max_size"). 
Minimum required limit on execution time of PHP scripts is 300 (configuration 
option "max_execution_time"). 
Minimum required limit on input parse time for PHP scripts is 300 (configuration 
option "max_input_time"). 
Time zone for PHP is not set (configuration parameter "date.timezone"). 
post_max_size 16M 
max_execution_time 300 
max_input_time 300 
date.timezone 

[root@xxx ~]# egrep -n '^(max_|date.timezone|post_max)' /etc/php.ini 
368:max_execution_time = 300 
378:max_input_time = 600 
656:post_max_size = 80M 
802:max_file_uploads = 20 
877:date.timezone = Asia/Shanghai 


[root@xxx ~]# systemctl reload php-fpm.service

如果出现:

界面报错 PHP bcmath extension missing (PHP configuration…
yum install php72w-bcmath
#重启php
systemctl reload php-fpm.service

 

web连接数据库

zabbix页面连接 zabbxi 服务端

 

#zabbix前端页面安装完成

chown -R nginx:nginx /app/code/zbx/

 

 登录zabbix

 效果

Zabbix docker 部署

IP为10.1.1.24

zabbix版本和源代码:

https://cdn.zabbix.com/zabbix/sources/stable/5.0/

1. 创建目录

mkdir -p /data2/zabbix/zabbix-server    用于存储 Zabbix 服务器容器的配置文件等相关数据
mkdir -p /data2/zabbix/alertscripts     用于存储 Zabbix 服务器容器中的告警脚本
mkdir -p /data2/zabbix/fonts            用于存储 Zabbix Web 容器中的字体文件
mkdir -p /data2/zabbix/db               用于存储 MySQL 数据库容器的数据文件  


mkdir -p /data2/zabbix/zabbix-server    
mkdir -p /data2/zabbix/alertscripts     
mkdir -p /data2/zabbix/fonts           
mkdir -p /data2/zabbix/db              

 2.编辑文件

# zabbix_server.conf

LogType=console
DBHost=zabbix-mysql
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
User=zabbix

 

# 编写docker-compose.yml 文件

services:
  zabbix-web-nginx-mysql:
    image: zabbix/zabbix-web-nginx-mysql:centos-5.2-latest
    restart: always
    environment:
      - DB_SERVER_HOST=zabbix-mysql
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - MYSQL_ROOT_PASSWORD=root
      - ZBX_SERVER_HOST=zabbix-server-mysql
    ports:
      - 8080:8080
    volumes:
      - /etc/localtime:/etc/localtime
      - /data2/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
    networks:
      - zbx_net
    depends_on:
      - zabbix-server-mysql
      - zabbix-mysql

  zabbix-mysql:
    image: mysql:8.0.23
    restart: always
    ports:
      - 3306:3306
    environment:
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - MYSQL_ROOT_PASSWORD=root
    command:
      - mysqld
      - --default-authentication-plugin=mysql_native_password
      - --character-set-server=utf8
      - --collation-server=utf8_bin
    volumes:
      - /etc/localtime:/etc/localtime
      - /data2/zabbix/db:/var/lib/mysql
    networks:
      - zbx_net

  zabbix-java-gateway:
    image: zabbix/zabbix-java-gateway:centos-5.2-latest
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime
    networks:
      - zbx_net
  zabbix-server-mysql:
    image: zabbix/zabbix-server-mysql:centos-5.2-latest
    restart: always
    volumes:
      - /data2/zabbix/zabbix-server:/etc/zabbix
      - /data2/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
      - /etc/localtime:/etc/localtime
    ports:
      - 10052:10051
    environment:
      - DB_SERVER_HOST=zabbix-mysql
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - MYSQL_ROOT_PASSWORD=root
      - ZBX_JAVAGATEWAY=zabbix-java-gateway
      - ZBX_JAVAGATEWAY_ENABLE=true
      - ZBX_JAVAGATEWAYPORT=10051
    depends_on:
      - zabbix-mysql
    networks:
      - zbx_net

  zabbix-agent:
    image: zabbix/zabbix-agent:centos-5.2-latest
    restart: always
    ports:
      - 10050:10050
    environment:
      - ZBX_HOSTNAME=Zabbix server  
      - ZBX_SERVER_HOST=zabbix-server-mysql
      - ZBX_SERVER_PORT=10051
    networks:
      - zbx_net

networks:
  zbx_net:
    driver: bridge

 

3.中文简体文件添加

从主机(C:\Windows\Fonts)上传一个.ttf的字体文件到/data2/zabbix/fonts目录

可使用rz命令,或者ftp,或远程传输工具(如:xftp)

并将文件名称改成DejaVuSans.ttf(yml文件中有指明)

 开启docker-compose

登录成功

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值