在线安装zabbix6.0.9 _超详细
简介
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.9、 Nginx 1.20 、 Mysql 8.0.30、 PHP 7.2、 Zabbix-Server 6.0.9
部署环境
关闭系统防火墙
[root@zabbix-40 ~]# systemctl stop firewalld [root@zabbix-40 ~]# systemctl disable firewalld [root@zabbix-40 ~]# vim /etc/selinux/config SELINUX=disabled
一、Mysql8.0.30 部署
下载安装捆绑包,解决依赖相关问题,避免麻烦,CentOS7可以选择红帽企业版7的包–>下载地址 [root@zabbix-40 ~]# cd /usr/local [root@zabbix-40 /usr/local]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar 解压 [root@zabbix-40 /usr/local]# tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar 忽略依赖检查强制安装,因为捆绑包里已经带依赖了,所以只要全部安装就可以,检查的话分先后顺序很麻烦的 [root@zabbix-40 /usr/local]# sudo rpm -ivh mysql-community-* --force --nodeps #创建数据存储目录 [root@zabbix-40 ~]# mkdir -p /usr/local/mysql [root@zabbix-40 ~]# chown mysql:mysql /usr/local/mysql #修改配置文件 [root@zabbix-40 ~]# vim /etc/my.cnf [root@zabbix-40 ~]# cat /etc/my.cnf [mysqld] datadir=/usr/local/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 启动数据库 #先查看libaio包是否有安装(安装了则不用管,未安装可能出现启动失败缺包的情况) #我这里使用的是aliyun的yum源(需要的可以在文档最底部查看) [root@zabbix-40 ~]# yum install libaio [root@zabbix-40 ~]# systemctl enable mysqld [root@zabbix-40 ~]# systemctl start mysqld #启动失败的话可以查看日志 /var/log/mysqld.log 获取密码登录Mysql [root@zabbix-40 /data]# cat /var/log/mysqld.log | grep password 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 -uroot -pz-Tp1q+/8J.7 mysql> alter user 'root'@'localhost' identified by 'Zabbix@1234'; mysql> flush privileges; #由于MySQL8.0 有密码验证组件,若希望设置简单的密码,需要修改服务验证条件 密码检查等级,0/LOW、1/MEDIUM、2/STRONG mysql> set global validate_password.policy=0; 密码的最短长度 mysql> set global validate_password.length=6; 密码至少要包含的小写字母个数和大写字母个数 mysql> set global validate_password.mixed_case_count=0; #创建zabbix库(这里zabbix对库的编码格式有需求) mysql> create database zabbix character set utf8 collate utf8_bin; #创建用户(指定使用的身份验证插件) mysql> create user 'zabbix'@'localhost' identified with mysql_native_password by 'Zabbix@1234'; mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost'; mysql> flush privileges;
二、nginx 部署
[root@zabbix-40 ~]# rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm [root@zabbix-40 ~]# mkdir /data/web [root@zabbix-40 ~]# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak [root@zabbix-40 ~]# vim /etc/nginx/conf.d/zabbix.conf server { listen 20002; server_name localhost; root /data/web; location / { index index.php index.html index.htm; } location ~ \.php$ { #root /data/web; 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 ~]# systemctl enable nginx [root@zabbix-40 ~]# systemctl start nginx
三、PHP 部署
[root@zabbix-40 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@zabbix-40 ~]# yum -y install epel-release [root@zabbix-40 ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo [root@zabbix-40 ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #webtatic源,一个web服务的源 #安装php7及其它依赖软件 [root@zabbix-40 ~]# yum -y install gcc gcc-c++ php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xml php72w-ldap php72w-mysqlnd [root@zabbix-40 ~]# vim /etc/php.ini 368:max_execution_time = 300 378:max_input_time = 300 656:post_max_size = 16M [root@zabbix-40 ~]# cd /data/web/ [root@zabbix-40 ~]# vim test.php #创建php测试页 <?php phpinfo(); ?> [root@zabbix-40 ~]# systemctl enable php-fpm [root@zabbix-40 ~]# systemctl start php-fpm
这里可以使用浏览器验证一下Nginx和PHP(内网中直接输入IP+port/test.php)
四、zabbix-server 部署
#创建用户 [root@zabbix-40 ~]# groupadd zabbix [root@zabbix-40 ~]# useradd -g zabbix -M -s /sbin/nologin zabbix #下载安装 [root@zabbix-40 ~]# cd /usr/local/ [root@zabbix-40 /usr/local]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.9.tar.gz [root@zabbix-40 /usr/local]# tar -xf zabbix-6.0.9.tar.gz [root@zabbix-40 /usr/local]# cd zabbix-6.0.9/ #安装依赖 [root@zabbix-40 /usr/local/zabbix-6.0.9]# yum -y install mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel #编译安装 [root@zabbix-40 /usr/local/zabbix-6.0.9]# ./configure --sysconfdir=/etc/zabbix --enable-server --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcre [root@zabbix-40 /usr/local/zabbix-6.0.9]# make install #修改配置文件 [root@zabbix-40 ~]# vim /etc/zabbix/zabbix_server.conf [root@zabbix-40 ~]# grep -n '^[a-Z]' /etc/zabbix/zabbix_server.conf 12:ListenPort=10051 38:LogFile=/tmp/zabbix_server.log 87:DBHost=localhost 99:DBName=zabbix 115:DBUser=zabbix 123:DBPassword=Zabbix@1234 507:Timeout=4 593:LogSlowQueries=3000 708:StatsAllowedIP=127.0.0.1 #向数据库中导入zabbix的库表及数据(注意导入的顺序) [root@zabbix-40 ~]# mysql -uzabbix -pZabbix@1234 zabbix < /usr/local/zabbix-6.0.9/database/mysql/schema.sql [root@zabbix-40 ~]# mysql -uzabbix -pZabbix@1234 zabbix < /usr/local/zabbix-6.0.9/database/mysql/images.sql [root@zabbix-40 ~]# mysql -uzabbix -pZabbix@1234 zabbix < /usr/local/zabbix-6.0.9/database/mysql/data.sql #移动zabbix前端页面到网站根目录 [root@zabbix-40 ~]# cp -rp /usr/local/zabbix-6.0.9/ui/* /data/web/ #配置zabbix系统启停命令(注意这个文件是新增的) [root@zabbix-40 ~]# vim /usr/lib/systemd/system/zabbix-server.service [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 #加载system文件 [root@Zabbix mysql]# systemctl daemon-reload [root@Zabbix mysql]# systemctl enable zabbix-server Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service. [root@Zabbix mysql]# systemctl start zabbix-server
五、Web端初始化
1.输入IP+port直接跳转至zabbix网页端
1.1 这一步如果无法跳转到zabbix的ui界面可以去查看 /etc/nginx/ 和 /etc/nginx/conf.d/activateFramex fail! 目录下的配置文件配置的转发地址以及端口20002是否启动与被占用 2.这里已经调整过PHP的配置文件,如果还有问题的可以编辑/etc/php.ini ,调整对应字段的值即可
3.配置DB连接
4.这里自定义Zabbix主机名称即可
5.安装
要么就下载配置文件然后上传然后授权给zabbix即可 要么就是如下操作:
[root@zabbix-40 ~]# cp /data/web/conf/zabbix.conf.php.example /data/web/conf/zabbix.conf.php [root@zabbix-40 ~]# chown zabbix:zabbix /data/web/conf/zabbix.conf.php [root@zabbix-40 ~]# vim /data/web/conf/zabbix.conf.php #只修改PASSWORD的密码 $DB['PASSWORD'] = 'Zabbix@1234';
默认账号密码:Admin zabbix
六、解决中文乱码问题
将windows的 C:\Windows\Fonts 路径下将楷体的ttf文件复制到linux的 /data/web/assets/fonts 目录下,
#目录下有simkai.ttf这个新上传的文件
[root@zabbix-40 ~]# ll /data/web/assets/fonts 总用量 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 ~]# sed -i 's/DejaVuSans/simkai/g' /data/web/include/defines.inc.php #如果这里之前是修改了网页路径的话,到自己的路径下找include/defines.inc.php即可