Zabbix 6.2.1 安装

目录

1、监控介绍

监控的重要性

网站的可用性

监控范畴

如何监控

2、Zabbix 介绍

zabbix 简介

zabbix 主要功能

zabbix 监控范畴

Zabbix 监控组件

zabbix 常见进程

zabbix agentd 工作模式

zabbix 环境监控中概念

3、搭建LNMP

拓扑规划

安装MySQL

安装 Nginx

安装 PHP

4、安装 Zabbix

安装配置

创建导入zabbix数据库

配置本机 zabbix-agent

启动服务

添加zabbix 启动脚本

配置 zabbix web 页面

监控本机

解决zabbix中文乱码问题


1、监控介绍
监控的重要性

对于运维人员来说,监控是非常重要的,因此如果想要保证线上业务整体能够稳定运行,那么我们则需要实时关注与其相关的各项指标是否正常,而一个业务系统的背后,往往存在着很多的服务器、网络设备等硬件资源,如果我们想要能够更加方便的、集中的监控他们,我们则需要依靠一些外部的工具,而zabbix就是一个被广泛使用的,可以实现集中监控管理的应用程序。

我们监控的初衷就是当某些指标不符合我们的需求时,我们能够在第一时间发现异常,所以,监控工具需要定期的对被监控主机进行检查、信息收集等操作,当被监控主机出现异常时,能够及时报警、通知管理员,并且需要记录这些异常,以便我们分析这些数据,查漏补缺,那么,一个监控工具就应该具备采集信息、存储信息、展示信息、报警通知等功能。而zabbix就可以做到这些。

总结来说,监控可以给我们带来:

  • 在需要的时刻,提前提醒我们服务器出问题了
  • 当出问题之后,可以找到问题的根源
  • 网站/服务器的可用性
网站的可用性

在软件系统的高可靠性(也称为高可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比

1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天。

2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天。

3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。

4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。

5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。

6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒。

监控范畴

如何监控

远程管理服务器:如果想远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM

监控硬件

  • 查看硬件的温度/风扇转速,电脑有鲁大师,服务器就有ipmitool。
  • 使用ipmitool实现对服务器的命令行远程管理。
  • yum -y install OpenIPMI ipmitool # IPMI在物理机可以成功,虚拟机不行

查看cpu相关:lscpu、uptime、top、vmstat、mpstat

查看内存相关:free

查看磁盘相关的:df、dd、iotop

查看网络相关的:ifconfig、iftop

除了使用系统命令查看计算机状态数据,还可以使用监控工具,如zabbix监控系统。

2、Zabbix 介绍
zabbix 简介

Zabbix是一个高度集成的企业级开源网络监控解决方案,提供分布式监控以及集中的web管理界面。

zabbix具备常见商业监控软件所具备的功能,例如主机性能监控,网络设备性能监控,数据库性能监控,ftp、http等通用协议的监控,能够灵活利用可定制告警机制,允许用户对事件发送基于E-mail的告警,保证相关人员可以快速解决。

zabbix提供杰出的报表及实时的图形化数据处理,实现对监控主机7x24小时集中监控。

Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置,而被监控对象只需要支持SNMP协议或者运行Zabbix agents代理程序即可。服务端监听端口为10051,而被监控端Zabbix-agents代理程序监控10050端口。

zabbix 主要功能

Zabbix是一个高度集成的网络监控套件,可实现如下功能:

数据收集:自定义间隔收集数据。

灵活的阀值定义:灵活地自定义故障阀值,Zabbix中称为触发器(trigger), 存储在后端数据库中;

高级告警配置:自定义告警升级(escalation)、接收者及告警方式;通过远程命令实行自动化动作;

实时绘图:通过内置的绘图引擎实现监控数据实时绘图;

具备应对复杂环境情况:通过Zabbix proxy可以非常容易的创建远程监控

zabbix 监控范畴

硬件监控:Zabbix IPMI Interface ,通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压、温度、风扇状态、电源状态等。

系统监控:Zabbix Agent Interface ,通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的agent,推荐首选这种方式。

Java监控:Zabbix JMX Interface ,通过JMX进行监控,JMX(java management extensions,即java管理扩展),监控JVM虚拟机时,使用这种方法是非常不错的选择。

网络设备监控:Zabbix SNMP Interface ,通过SNMP协议与被监控对象进行通信,SNMP协议的全称为simple network management protocol,被译为简单网络管理协议,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件都支持SNMP协议。

应用服务监控:Zabbix Agent UserParameter

MySQL数据库监控:percona-monitoring-plulgins

URL监控:Zabbix Web 监控

Zabbix 监控组件

主要包括:Zabbix Server、Zabbix Proxy、Zabbix Agent

Zabbix Server:Zabbix Server为核心组件,用来获取agent存活状况及监控数据。所有的配置、统计、操作数据均通过Server进行存取到database;

Zabbix Database:用户存储所有zabbix的配置信息、监控数据的数据库;

Zabbix Web:Zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,通常与zabbix Server运行在同一台主机上,也可以单独部署在独立的服务器上;

Zabbix Proxy:常用于分布监控环境中,代理zabbix Server收集部分被监控的监控数据并统一发往Server端;(通常大于500台主机需要使用)。

Zabbix Agent:部署在被监控主机上,负责收集被监控主机的数据,并发往Server端或Proxy端;

另外,zabbix server、proxy、agent都有自己的配置文件以及log文件,重要的参数需要在这里配置,后面会详细说明。

zabbix 常见进程

默认情况下zabbix包含5个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另外一个zabbix_java_gateway是可选,这个需要另外安装。

zabbix_agentd

客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。

zabbix_get

zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用来排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

zabbix_sender

zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。

zabbix_server

zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java的数据最终都是提交到server

备注,当然数据不都是主动提交给zabbix_server,有的是server主动去取数据。

zabbix_proxy

zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交到server里。

zabbix_java_gateway

zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。

zabbix agentd 工作模式

被动模式

主动模式

被动模式一定要记得设置Server = ServerIP。被动模式工作流程:

  • Server 打开一个TCP连接
  • Server发送一个key 到zabbix agent,key的名字为agent.ping
  • Agent接受这个请求,然后响应< HEADER >< DATALEN >
  • Server对接受到的数据进行处理
  • TCP连接关闭

主动模式一定要记得设置ServerActive=ServerIP主动模式工作流程:

  • Agent向Server建立一个TCP连接
  • Agent请求需要检测的数据列表
  • Server响应Agent,发送一个Items列表
  • Agent允许响应
  • TCP连接完成本次会话关闭
  • Agent开始周期性地收集数据
zabbix 环境监控中概念

主机

要监控的网络设备或主机,可由IP或DNS名称指定;

主机群组

主机的逻辑容器,可以包含主机和模板;

监控项

一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"标识;

触发 trigger

一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";

事件 event

触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等;

动作 action

指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;

报警升级

escalation

发送警报或者执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;

媒介 media

发送通知的手段或者通道,如Email、Jabber或者SMS等;

通知notification

通过选定的媒介向用户发送的有关某事件的信息;

远程命令remote command

预定义的命令,可在被监控主机处于某特定条件下时自动执行;

模板

template

用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、appication以及low-level discovery rule;模板可以直接链接至某个主机;

应用

application

一组item的集合

web场景

web scennario

用于检测web站点可用性的一个或多个HTTP请求;

前端

frontend

Zabbix的web接口;

3、搭建LNMP
拓扑规划

主机名

IP地址

角色

软件版本

node_01

192.168.137.101

zabbix_server

zabbix-6.2.1、LNP

node_02

192.168.137.102

zabbix_agent

zabbix-6.2.1、mysql

安装MySQL

MySQL8.0安装:MySQL Linux安装 · 语雀

① 创建Zabbix 数据库

# 设置root用户密码为admin
mysqladmin -uroot password admin
# 登录MySQL
mysql -uroot -padmin

#创建数据库,名称为zabbix,并将其字符集设置为UTF-8
mysql>create database zabbix charset utf8 collate utf8_bin;

#设置zabbix数据库的所有权限,允许用户zabbix的IP地址127.0.0.1和localhost访问,
#并将zabbix账号的密码设置为zabbix
mysql> grant all privileges  on zabbix.*  to  zabbix@'localhost' identified  by  'zabbix';
mysql> grant all privileges  on zabbix.*  to  zabbix@'127.0.0.1' identified  by  'zabbix';

#刷新权限,使其立即生效
mysql> flush  privileges;
安装 Nginx
# 软件包下载
wget http://nginx.org/download/nginx-1.22.0.tar.gz
tar -zxvf nginx-1.22.0.tar.gz -C /usr/local/src/

# 安装nginx依赖包
yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel \
openssl openssl-devel  pcre pcre-devel 

# 预编译
cd /usr/local/src/nginx-1.22.0/
./configure --prefix=/usr/local/nginx --with-http_dav_module \
--with-http_stub_status_module --with-http_addition_module \
--with-http_sub_module --with-http_flv_module --with-http_mp4_module \
--with-pcre --with-http_ssl_module --with-http_gzip_static_module

# 编译
make -j 2

# 安装
make install

# 添加path变量
ln -s /usr/local/nginx/sbin/* /usr/local/bin/


# 编写nginx服务启动脚本
vim /usr/lib/systemd/system/nginx.service
#----------------服务启动脚本 start-------------------------------
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
#----------------服务启动脚本 end-------------------------------


# 创建nginx程序账号
useradd -M -s /sbin/nologin nginx

# 修改nginx运行账号
vim /usr/local/nginx/conf/nginx.conf
user nginx;

# 启动服务
systemctl start nginx
systemctl enable nginx
安装 PHP

安装依赖环境

# 安装libmcrypt
wget https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz --no-check-certificate
tar -zxvf libmcrypt-2.5.8.tar.gz -C /usr/local/src

cd /usr/local/src/libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt && make && make install

# 安装oniguruma
wget https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-6.9.7.1-1.el7.remi.x86_64.rpm --no-check-certificate
wget https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-devel-6.9.7.1-1.el7.remi.x86_64.rpm --no-check-certificate
yum install -y oniguruma5php-*


# 安装libzip
yum -y remove libzip
wget https://nih.at/libzip/libzip-1.2.0.tar.gz --no-check-certificate
tar -zxvf libzip-1.2.0.tar.gz -C /usr/local/src
cd /usr/local/src/libzip-1.2.0
./configure
make && make install
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"

安装php

# 安装依赖包
yum -y install make apr* autoconf automake curl-devel gcc gcc-c++  \
openssl openssl-devel gd kernel keyutils patch perl kernel-headers \
compat* mpfr cpp glibc libgomp libstdc++-devel keyutils-libs-devel \
libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel \
libXpm* freetype libjpeg* libpng*  libtool* libxml2 libxml2-devel \
patch libcurl-devel bzip2-devel freetype-devel php-xmlreader \
php-xmlwriter php-session libjpeg-devel sqlite-devel libwebp 

# 下载php并解压
wget https://www.php.net/distributions/php-7.4.30.tar.gz
tar -zxvf php-7.4.30.tar.gz -C /usr/local/src/
cd /usr/local/src/php-7.4.30/
# 编译安装
./configure --prefix=/usr/local/php7.4.30 --with-config-file-path=/etc --enable-mysqlnd  --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-gd --with-iconv -enable-gd --with-iconv --with-expat --with-mhash  --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib   --with-jpeg --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp  --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --with-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-freetype  --enable-bcmath --enable-ctype --with-config-file-scan-dir=/usr/local/php7.4.30/etc/
make && make install

生成fpm配置

cd /usr/local/php7.4.30/etc/
cp php-fpm.conf.default php-fpm.conf
cp /usr/local/php7.4.30/etc/php-fpm.d/www.conf.default /usr/local/php7.4.30/etc/php-fpm.d/www.conf


# 修改默认运行账号:修改默认运行用户,组为nginx
vim /usr/local/php7.4.30/etc/php-fpm.d/www.conf
#--------------------------www.conf------------------
user = nginx
group = nginx
;listen.owner = nginx
;listen.group = nginx
#--------------------------www.conf------------------

# 生成php.ini配置文件
cp /usr/local/src/php-7.4.30/php.ini-production /usr/local/php7.4.30/etc/php.ini
vim /usr/local/php7.4.30/etc/php.ini
#--------------------------php.ini------------------
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
#--------------------------php.ini------------------


# 复制php-fpm启动脚本到init.d
cp /usr/local/src/php-7.4.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm


# 添加开机启动
chkconfig --add php-fpm
chkconfig php-fpm on
# 启动服务
/etc/init.d/php-fpm start

# 查看端口监听状态
netstat -antpu | grep php-fpm

配置 Nginx 支持 index.php

# 修改配置文件
vim /usr/local/nginx/conf/nginx.conf
server {
  listen       80;
  server_name  www.test.com;
  #charset koi8-r;
  #access_log  logs/host.access.log  main;
  location / {
    root   html;
    index  index.php index.html index.htm; #添加index.php
  }
  
  location ~ .*\.(php|php5)?$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
    # fastcgi_cache ngx_fcgi_cache;
    # fastcgi_cache_valid 200 302 1h;
    # fastcgi_cache_valid 301 1d;
    # fastcgi_cache_valid any 1m;
    # fastcgi_cache_min_uses 1;
    # fastcgi_cache_use_stale error timeout invalid_header http_500;
    # fastcgi_cache_key http://$host$request_uri;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

注意:测试阶段注释缓存调用。 :set paste 粘贴模式

# 重载nginx
nginx -s reload

# 创建index.php文件
vim /usr/local/nginx/html/index.php
<?php
        phpinfo();
?>

# 创建测试mysql文件
vim /usr/local/nginx/html/test.php
<?php
        $link= new mysqli('192.168.137.101','zabbix','zabbix');
        if ($link)echo "connection success......";
?>

4、安装 Zabbix
安装配置
# 软件包下载
wget https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.1.tar.gz

# 安装依赖
yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel  OpenIPMI-devel  libssh2-devel libevent libevent-devel mysql-devel

注意:如果是本地yum源安装依赖包,需要安装zabbix_rpm.tar.gz包里的rmp包。

tar -zxvf zabbix_rpm.tar.gz
yum install -y zabbix_rpm/* --skip-broken

# 创建用户
useradd -s /sbin/nologin zabbix


# 预编译
tar -zxvf zabbix-6.2.1.tar.gz -C /usr/local/src/
cd /usr/local/src/zabbix-6.2.1/
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --enable-ipv6 --with-ldap

预编译参数

参数说明

--prefix=

指定路径

--enable-server

zabbix Server 支持

--enable-agent

支持 Zabbix agent

--with-mysql

指定 MySql 库,可以选择自定路径mysql_config,mysql_config 是命令,用于编译 mysql 客户端程序,如果没有请安装mysql-devel

--with-net-snmp

支持 snmp 协议,需要安装 net-snmp-devel 包

--with-libcurl

支持 CURL 功能,libcurl 主要功能就是用不同的协议连接不同的服务器,libcurl当前支持的协议有 http,https,ftp,gopher,telent,dict,file,和 ldap 协议

--enable-java

支持java应用监控,编译时最好带上--enable-java这个参数,方便后续监控tomcat程序所用。

--with-openipmi

用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应等

--enable-proxy

指的是支持zabbix 代理服务器,zabbix proxy 是一个监控代理服务器,它收集到监控数据,选存放在缓冲区,保存的时间可以通过配置文件设定,然后再传送的 zabbix server。监控代理服务需要一个独立的数据库。

用zabbix proxy 的好处:进程监控,当监控文遏制通讯不方便的时候,当通讯上千台设备的时候,使用 zabbix_proxy 可以简化维护分布式监控,降低 zabbix server 的负载,

# 按上面的提示,没有 make 步骤,直接 make install
make install

# 添加系统软连接
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/

chown -R zabbix:zabbix /usr/local/zabbix

# 配置 zabbix Server
vim /usr/local/zabbix/etc/zabbix_server.conf
DBHost= 192.168.137.112
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBPort=3306
AllowUnsupportedDBVersions=1 #zabbix6.0版本默认使用mysql8版本,这边开启低版本支持
创建导入zabbix数据库

Zabbix 需要数据库的支持(mysql,oracle,PostgreSQL,SQLite, DB2),而且Zabbix 源码包中已经自带了数据库结构

cd /usr/local/src/zabbix-6.2.1/
ls database/mysql/


yum install -y mariadb
mysql -uzabbix -pzabbix zabbix -h192.168.137.112< database/mysql/schema.sql
mysql -uzabbix -pzabbix zabbix -h192.168.137.112< database/mysql/images.sql
mysql -uzabbix -pzabbix zabbix -h192.168.137.112< database/mysql/data.sql
mysql -uzabbix -pzabbix zabbix -h192.168.137.112< database/mysql/double.sql

如果在做分布式的环境中,Proxy服务器只需要导入schema.sql,agent不需要导入。Server必须4个都要导入。

配置本机 zabbix-agent
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.1.11
ListenPort=10050
ServerActive=127.0.0.1,192.168.1.11
Hostname=Zabbix server
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 
UnsafeUserParameters=1
LogFile=/tmp/zabbix_agent.log

mkdir /usr/local/etc/zabbix_agentd.conf.d
  • 其中 Server 和 ServerActive 都指定 Zabbix server 的 IP 地址,不同的是,前者是被动后者是主动。也就是说前者允许 127.0.0.1 这个 ip 来我这取数据。
  • 而 serverActive 的 127.0.0.1 的意思是,客户端主动提交数据给它。
  • Hostname=XXX,这个定义的名字必须和web页面里面host的名字一样。
  • UnsafeUserParameters=1 #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本
启动服务
# 启动服务:如果 zabbix 用户不存在, 将以 root 运行,新建之后,
# 如果 zabbix 存在,那么直接可以用 zabbix 运行
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

# 查看端口
netstat -anplt | grep 10051
添加zabbix 启动脚本

Zabbix默认有部分启动脚本,如果需要通过脚本的方式来实现,可以使用他的模板来实现,脚本在源码目录的 misc/init.d/下面(使用 fedora 下面的 core 即可,也可以使用 fedroa core5 的脚本均可)

cp /usr/local/src/zabbix-6.2.1/misc/init.d/fedora/core/* /etc/init.d/
vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix      #修改zabbix安装目录

vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix      #修改zabbix安装目录

chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig zabbix_server on
chkconfig zabbix_agentd on
配置 zabbix web 页面

拷贝php文件到nginx网站目录

cp -r /usr/local/src/zabbix-6.2.1/ui/* /usr/local/nginx/html/
chown -R nginx:nginx /usr/local/nginx/html/


# 查看是否包括了下面所提到的扩展模块
# gd,bcmath,ctype,libXML,xmlreader,xmlwriter,session,sockets,mbstring,gettext,mysql
/usr/local/php7.4.30/bin/php -m

# 重启nginx服务和php-fpm服务
nginx -s reload
/etc/init.d/php-fpm restart

② 访问页面:http://192.168.137.111/setup.php

设置主机名和时区

登录:账户admin,密码zabbix

监控本机
# 启动客户端
/etc/init.d/zabbix_agentd start 
netstat -antup | grep zabbix_agentd

解决zabbix中文乱码问题

从 windows 的控制面板->字体->选择一种中文字库例如“楷体”

把它拷贝到 web 端的 fonts 目录下:/usr/local/nginx/html/assets/fonts/,并确保后缀名为 ttf

cd /usr/local/nginx/html/assets/fonts/
cp DejaVuSans.ttf DejaVuSans.ttf.bak 
mv simkai.ttf DejaVuSans.ttf #替换字体

# 刷新页面查看

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

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

相关文章

libpng编译-android端(libpng官网下载是没有android编译脚本)

libpng编译-android端&#xff08;libpng官网下载是没有android编译脚本&#xff09; 环境配置&#xff08;mac的原理一样可以自己配置&#xff0c;我在linux编译&#xff09; 配置ubuntu的ndk环境 1、执行 sudo vim /etc/profile&#xff0c;对Path的路径文件进行更改&…

python(23)——while循环

前言 在Python中&#xff0c;while 循环用于重复执行一段代码块&#xff0c;只要指定的条件保持为真&#xff08;True&#xff09;。一旦条件变为假&#xff08;False&#xff09;&#xff0c;循环就会终止。while 循环通常用于在不知道循环将执行多少次的情况下进行迭代。 w…

linux下开发,stm32和arduino,我该何去何从?

linux下开发&#xff0c;stm32和arduino&#xff0c;我该何去何从&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「stm3的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共…

React 模态框的设计(一)拖动组件的设计

春节终结束了&#xff0c;忙得我头疼。终于有时间弄自己的东西了。今天来写一个关于拖动的实例讲解。先看效果&#xff1a; 这是一个简单的组件设计&#xff0c;如果用原生的js设计就很简单&#xff0c;但在React中有些事件必须要多考虑一些。这是一个系列的文章&#xff0c;…

Megalinter 初体验

简介 MegaLinter 是一个多语言、多工具的集成代码检查工具&#xff0c;它能够通过一个统一的工作流来运行多个静态代码分析工具&#xff0c;从而提供全面的代码质量检查。 官网&#xff1a;https://megalinter.io/latest/ MegaLinter 的特点&#xff1a; 多语言支持&#x…

深入理解指针(c语言)

目录 一、使用指针访问数组二、数组名的理解1、数组首元素的地址2、整个数组 三、一维数组传参的本质四、冒泡排序五、二级指针六、指针数组 一、使用指针访问数组 可以使用指针来访问数组元素。例如&#xff0c;可以声明一个指针变量并将其指向数组的第一个元素&#xff0c;然…

QT-模拟电梯上下楼

QT-模拟电梯上下楼 一、演示效果二、核心程序三、下载链接 一、演示效果 二、核心程序 #include "ElevatorController.h" #include <QGridLayout> #include <QLabel> #include <QGroupBox> #include <QGridLayout> #include <QPushButto…

2024「诺奖风向标」斯隆奖出炉:杨笛一、杜少雷、清华校友姜楠、北大校友金驰等入选​

今天&#xff0c;斯隆基金会公布了 2024年度斯隆研究奖&#xff08;Sloan Research Fellowship&#xff09;获得者名单&#xff0c;本次斯隆研究奖共颁发给了126 人&#xff0c;其中计算机科学领域 共有 7名华人学者当选。 包括斯坦福大学杨笛一&#xff08;上海交大ACM班校友…

2.5《Python3 网络爬虫开发实战》学习之实例实战1

目录 1 实战内容 2 确定思路 3 代码实操 3.1 实现一个个网页的爬取 3.2 爬取每一个网页的电影详情页url ​编辑 3.3 连接链接&#xff0c;针对每个详情页链接进行爬取、汇总内容 3.4 存储在txt文件中 4 结尾&#xff1a;整体代码 1 实战内容 爬取Scrape | Movie中所有…

24款奔驰S400L升级原厂360全景影像 效果分享

今天给大家分享一款 接近百万豪车 奔驰S400L商务版 连360 小柏林都没有&#xff0c;奔驰果然是不坑穷人的&#xff0c;所以很多车主一提到车就升级成豪华型的配置&#xff0c;你说五米多才的车 没有原厂360全景影像 是多么的难受 倒车和狭窄路段很麻烦&#xff0c;所以车主找到…

基于EasyCVR视频汇聚系统的公安网视频联网共享视频云平台建设思路分析(一)

随着社会的发展和科技的进步&#xff0c;视频监控系统在各个领域的应用越来越广泛&#xff0c;视频云平台建设已经成为了行业数字化转型的重要一环。公安网视频汇聚联网共享云的建设需要充分考虑技术、架构、安全、存储、计算等多方面因素&#xff0c;以确保平台的稳定性和可用…

基于ExtendSim的半导体制造工厂仿真

这是一个离散事件模型&#xff0c;使用ExtendeSim “高级资源管理&#xff08;ARM&#xff09;”功能来组织和分配资源。 此模型使用离散事件仿真和高级资源管理&#xff08;ARM&#xff09;功能。ARM是一个集成系统&#xff0c;用于组织资源、区分资源并在整个模型中分配资源。…

PHP实现分离金额和其他内容便于统计计算

得到的结果可以粘贴到excel计算 <?php if($_GET["x"] "cha"){ $tips isset($_POST[tips]) ? $_POST[tips] : ; $pattern /(\d\.\d|\d)/; $result preg_replace($pattern, "\t\${1}\t", $tips); echo "<h2><strong>数…

Linux离线安装插件

当公司Linux环境无外网情况下&#xff0c;需要先下载好离线安装包&#xff0c;然后上传到服务器&#xff0c;进行安装。 这里介绍一个下载插件安装包的网站&#xff0c;可以搜索到lrzsz、lsof、telnet、unzip、zip等安装包 搜索到想要的插件安装包后&#xff0c;下载并上传到服…

门控时钟基础知识

什么是门控时钟 RTL中的门控时钟 通常情况下&#xff0c;时钟树由大量的缓冲器和反相器组成&#xff0c;时钟信号为设计中翻转率最高的信号&#xff0c;时钟树的功耗可能高达整个设计功耗40%。 加入门控时钟电路后&#xff0c;由于减少了时钟树的翻转&#xff0c;节省了翻转功…

#LLM入门|Prompt#1.7_文本拓展_Expanding

输入简短文本&#xff0c;生成更加丰富的长文。 “温度”&#xff08;temperature&#xff09;&#xff1a;控制文本生成的多样性。 一、定制客户邮件 根据客户的评价和其中的情感倾向&#xff0c;使用大语言模型针对性地生成回复邮件。将大大提升客户满意度。 # 我们可以在…

分享6个当下最受欢迎的 Vue UI 库

在本文中&#xff0c;我列出了前 6个最受欢迎的&#xff08;根据 NPM 下载量和 Github stars&#xff0c;从上到下排名&#xff09;UI 库&#xff0c;供您启动您梦想中的 Vue 项目。 Vue.js 作为一个 JavaScript 框架&#xff0c;由于其简单、易用和学习曲线&#xff0c;是 Rea…

Facebook的未来蓝图:数字社交的下一个篇章

在数字化时代&#xff0c;社交媒体已经成为人们日常生活中不可或缺的一部分。而在众多的社交媒体平台中&#xff0c;Facebook一直处于领先地位&#xff0c;不断探索着数字社交的新领域和新形式。随着科技的不断发展和社会的不断变革&#xff0c;Facebook正在谱写着数字社交的未…

工业边缘网关的主要功能与应用价值分享-天拓四方

工业边缘网关&#xff0c;也称为工业物联网边缘计算网关&#xff0c;是一种部署在工业生产现场&#xff0c;具备数据采集、处理、存储和传输功能的智能设备。它能够将各种传感器、执行器、控制器等工业设备连接到网络&#xff0c;实现设备间的互联互通&#xff0c;同时提供边缘…

shapely 笔记 voronoi图

Voronoi 图是一种将平面分割成区域的方法&#xff0c;每个区域包含一个输入点&#xff0c;任何在该区域内的点都比其他输入点更接近该区域的输入点 1 基本使用方法 shapely.ops.voronoi_diagram(geom, envelopeNone, tolerance0.0, edgesFalse) 2 参数说明 geom任何几何类型…