Zabbix 6.0 图文安装部署讲解---LNMP环境
- 简介
- 环境需求
- 部署环境
-
- 二、nginx 部署
- 三、PHP 部署
- 四、zabbix-server 部署
- 五、Web端初始化
- 六、解决zabbix 6.0 中文乱码问题
简介
Zabbix 主要有以下几个组件组成:
Zabbix Server:Zabbix 服务端,是 Zabbix 的核心组件。它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中。
Zabbix Agent:Zabbix 客户端,部署在被监控设备上,负责采集监控数据,采集后的数据发送给 Zabbix Server 处理。Zabbix Agent 目前有两个版本:Zabbix agent 和 Zabbix agent 2。前者是 C 语言开发的,几乎支持所有的主流平台。而后者是 Go 开发的,优点包括:能有效降低 TCP 连接的数量;支持更高的并发;易于扩展。目标是替代 Zabbix agent ,目前只支持 Linux 和Windows 两个平台。
Zabbix Proxy:代替 Zabbix Server 接收监控数据并进行预处理,预处理后的数据批量发送给 Zabbix Server,这样可减轻 Zabbix Server 的压力。
Web 页面:可通过 Web 页面来管理和维护被监控设备的配置信息、查看监控数据、配置告警等。
数据库:负责存储被监控设备的配置信息和监控数据。支持的数据库有:MySQL(Percona,MariaDB),Oracle,PostgreSQL,TimescaleDB for PostgreSQL,SQLite
环境需求
数据库Mysql需要是8.0.x以上的版本,PHP不支持PHP8.0版本 ,详细信息可看–>官方文档
本文安装环境:Centos 7.4、 Nginx 1.20 、 Mysql 8.0.30、 PHP 7.2、 Zabbix-Server 6.0.1
部署环境
关闭系统防火墙
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
SELINUX=disabled
一、Mysql8.0.30 部署
下载安装捆绑包,解决依赖相关问题,避免麻烦,CentOS7可以选择红帽企业版7的包–>下载地址
[root@zabbix-40 ~]
[root@zabbix-40 /usr/local/src]
[root@zabbix-40 /usr/local/src]
[root@zabbix-40 /usr/local/src]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
port=3306
lower_case_table_names=1
max_connections=500
启动数据库
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
获取密码登录Mysql
[root@zabbix-40 /data]
2022-12-15T09:31:52.061965Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: z-Tp1q+/8J.7
[root@zabbix-40 /data]
mysql> alter user 'root'@'localhost' identified by 'Oyst@655';
mysql> flush privileges;
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=6;
mysql> set global validate_password.mixed_case_count=0;
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified with mysql_native_password by '123123';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> flush privileges;
二、nginx 部署
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 /etc/nginx]
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
root /data/web;
location / {
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2507/nginx: master
三、PHP 部署
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
368:max_execution_time = 300
378:max_input_time = 300
656:post_max_size = 16M
[root@zabbix-40 ~]
[root@zabbix-40 ~]
<?php
phpinfo();
?>
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 8450/php-fpm: maste
这里可以使用浏览器验证一下Nginx和PHP(内网中直接输入IP)
#到这里能访问到这个PHP的页面的话就代表你的nginx和php配置都是正常的,离胜利只差一丢丢了
nginx的配置我是直接配在 nginx.conf 中,需要配置在conf.d中的话可以自行研究哈
四、zabbix-server 部署
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 /usr/local/src]
[root@zabbix-40 /usr/local/src]
[root@zabbix-40 /usr/local/src]
[root@zabbix-40 /usr/local/src/zabbix-6.0.1]
[root@zabbix-40 /usr/local/src/zabbix-6.0.1]
[root@zabbix-40 /usr/local/src/zabbix-6.0.1]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
12:ListenPort=10051
38:LogFile=/tmp/zabbix_server.log
87:DBHost=localhost
99:DBName=zabbix
115:DBUser=zabbix
123:DBPassword=123123
507:Timeout=4
593:LogSlowQueries=3000
708:StatsAllowedIP=127.0.0.1
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
cp:是否覆盖"/data/web/index.php"? y
[root@zabbix-40 ~]
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service
[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
[Install]
WantedBy=multi-user.target
[root@Zabbix mysql]
[root@Zabbix mysql]
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix.service.
[root@Zabbix mysql]
五、Web端初始化
- 输入IP直接跳转至zabbix网页端
1.1 这一步如果无法跳转到zabbix的ui界面可以去查看 /etc/nginx/ 和 /etc/nginx/conf.d/ 目录下 .conf 结尾的配置文件配置的转发地址以及端口80是否启动与被占用 - 这里已经调整过PHP的配置文件,如果还有问题的可以编辑/etc/php.ini ,调整对应字段的值即可
- 配置DB连接
3.1 服务器请求客户端未知的身份验证方法。
原因:因为Mysql 8 默认创建用户的身份验证插件是 caching_sha2_password,所以我我们在创建zabbix用户时需要指定身份验证插件为mysql_native_password。
mysql> drop user zabbix@localhost;
mysql> create user 'zabbix'@'localhost' identified with mysql_native_password by '123123';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> flush privileges;
3.2 无法确定当前 Zabbix 数据库版本: 找不到表“ dbversion”。
原因:没有将zabbix需要的表导入到mysql中
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
3.3 不支持表的字符集或排序规则
原因:创建zabbix库的时候需要指定编码方式(和第一个问题相似)
mysql> drop database zabbix;
mysql> create database zabbix character set utf8 collate utf8_bin;
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
- 这里自定义Zabbix主机名称即可
- 安装
要么就下载配置文件然后上传然后授权给zabbix即可
要么就是如下操作:
[root@zabbix-40 ~]
[root@zabbix-40 ~]
[root@zabbix-40 ~]
$DB['PASSWORD'] = '123123';
默认账号密码:Admin zabbix
六、解决zabbix 6.0 中文乱码问题
将windows的 C:\Windows\Fonts 路径下将楷体的ttf文件复制到linux的 /data/web/assets/fonts 目录下,
[root@zabbix-40 ~]
总用量 12252
-rw-r--r-- 1 zabbix zabbix 756072 2月 28 2022 DejaVuSans.ttf
-rw-r--r-- 1 root root 11787328 12月 19 16:57 simkai.ttf
[root@zabbix-40 ~]
记录一下还有一个可能发送的乱码问题(主机重命名时带有中文的时候无法生效)
Zabbix不支持主机名中存在中文字符的,要让zabbix主机名支持中文,需要修改zabbix的php配置文件
[root@zabbix-40 ~]
define('ZBX_PREG_INTERNAL_NAMES', '([0-9a-zA-Z_\. \-]+)');
改成
define('ZBX_PREG_INTERNAL_NAMES', '([0-9a-zA-Z_\. \-\x{80}-\x{ff}]+)');
[root@zabbix-40 ~]
阿里云的源可以查看个人主页中的zabbix-agent 快速部署文章–>链接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)