一、环境准备
zabbix服务器端:192.168.245.204
二、软件包准备
本实例安装方式:源码安装nginx、php,zabbix,yum安装mysql
软件包都是官网下的,可能不是最新版但一定是稳定版
nginx官网:http://nginx.org/en/download.html
php官网:https://www.php.net/
nginx:nginx-1.20.1.tar.gz
php:php-7.4.21.tar.gz
三、安装LNMP
因为zabbix的web页面是用php写的,所以我们需要安装LNMP架构,当然你也可以用LAMP
1、安装nginx
安装所需依赖包
[root@zabbix-server ~]# yum -y install pcre pcre-devel zlib openssl openssl-devel
解压源码包
[root@zabbix-server ~]# cd /opt
[root@zabbix-server opt]# tar xf nginx-1.20.1.tar.gz
新建nginx程序用户
[root@zabbix-server opt]# useradd -s /sbin/nologin -M nginx
configure配置,加上所需模块,安装目录在/usr/local/nginx
[root@zabbix-server nginx-1.20.1]# cd nginx-1.20.1/
[root@zabbix-server nginx-1.20.1]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre
编译安装
[root@zabbix-server nginx-1.20.1]# make && make install
把nginx命令制作软链接方便使用
[root@zabbix-server nginx-1.20.1]# ln -s /usr/local/nginx/sbin/* /usr/local/bin/
nginx的安装还是比较简单的,就用最简单的方式装就好了
2、安装mysql
这里安装mysql5.7版本,先下载安装mysql5.7的yum源
[root@zabbix-server ~]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
--2021-07-06 08:58:20-- http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
正在解析主机 repo.mysql.com (repo.mysql.com)... 184.26.157.95
正在连接 repo.mysql.com (repo.mysql.com)|184.26.157.95|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:9116 (8.9K) [application/x-redhat-package-manager]
正在保存至: “mysql57-community-release-el7-8.noarch.rpm”
100%[================================================================>] 9,116 --.-K/s 用时 0.001s
2021-07-06 08:58:20 (9.55 MB/s) - 已保存 “mysql57-community-release-el7-8.noarch.rpm” [9116/9116])
[root@zabbix-server ~]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
警告:mysql57-community-release-el7-8.noarch.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql57-community-release-el7-8 ################################# [100%]
然后yum安装mysql,中间要按两次y
[root@zabbix-server ~]# yum install mysql-server mysql mysql-devel
启动mysql
[root@zabbix-server ~]# systemctl start mysqld
mysql5.7会预设root账号密码,把初始密码找出来
[root@zabbix-server ~]# grep password /var/log/mysqld.log
2021-07-06T01:03:38.427563Z 1 [Note] A temporary password is generated for root@localhost: G!jf%xJ5Ayse
G!jf%xJ5Ayse 这一坨就是初始密码
然后进入mysql修改密码
[root@zabbix-server ~]# mysql -uroot -p
Enter password:
mysql> set global validate_password_policy=0; //修改默认密码策略否则会检查密码长度和复杂度,设定密码策略为只检查密码长度为8位
Query OK, 0 rows affected (0.00 sec)
mysql> set password = password('12345678'); //重设密码
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges; //刷新
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
因为yum安装mysql比较快也不容易出错,也相对简单
3、安装php
php由于使用的是比较新的版本,所以安装方式跟之前的版本有不少差别!
首先安装php7.4所需依赖包
[root@zabbix-server ~]# yum -y install libxml2 libxml2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel openldap openldap-devel sqlite-devel oniguruma-devel
这里还需要手工编译安装libzip依赖包否则configure的时候会报以下错误:意思是 libzip的版本必须大于0.11 且 不能等于1.3.1或者1.7.0
configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:
No package 'libzip' found
No package 'libzip' found
No package 'libzip' found
安装libzip-1.3.2解决
[root@zabbix-server ~]# wget https://libzip.org/download/libzip-1.3.2.tar.gz
[root@zabbix-server ~]# tar xf libzip-1.3.2.tar.gz
[root@zabbix-server ~]# cd libzip-1.3.2
[root@zabbix-server libzip-1.3.2]# ./configure && make && make install
[root@zabbix-server libzip-1.3.2]# export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"
解压php的tar包,添加php用户和组
[root@zabbix-server libzip-1.3.2]# cd /opt
[root@zabbix-server opt]# tar xf php-7.4.21.tar.gz
[root@zabbix-server opt]# cd php-7.4.21/
[root@zabbix-server php-7.4.21]# useradd php -s /sbin/nologin
配置所需模块,安装目录在/usr/local/php7
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-mhash --with-openssl --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib --enable-bcmath --enable-gd --with-jpeg --with-freetype --enable-mbstring --enable-ftp --enable-sockets --with-gettext --enable-session --with-curl --enable-fpm --with-fpm-user=php --with-fpm-group=php --enable-pdo -enable-tokenizer --with-zip
编译安装
[root@zabbix-server php-7.4.21]# make && make install
安装ldap扩展模块(可选)
[root@zabbix-server php-7.4.21]# find / -name phpize
/usr/local/php7/bin/phpize //找出这个可执行文件
/opt/php-7.4.21/scripts/phpize
[root@zabbix-server php-7.4.21]# cd ext/ldap/
[root@zabbix-server ldap]# /usr/local/php7/bin/phpize //到ldap的目录下执行该命令
Configuring for:
PHP Api Version: 20190902
Zend Module Api No: 20190902
Zend Extension Api No: 320190902
[root@zabbix-server ldap]# cp -frp /usr/lib64/libldap* /usr/lib/ //拷贝库文件,软链接也行
[root@zabbix-server ldap]# ./configure --with-php-config=/usr/local/php7/bin/php-config //配置
[root@zabbix-server ldap]# make && make install //编译安装
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20190902/ //记住这个路径一会需要写在配置文件里
解压目录下的php.ini-production就是配置文件,但是需要移动和改名才能识别,放到/usr/local/php7/etc/php.ini
[root@zabbix-server ldap]# cd -
/opt/php-7.4.21
[root@zabbix-server php-7.4.21]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@zabbix-server php-7.4.21]# vim /usr/local/php7/etc/php.ini
extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20190902/"
extension=ldap.so //增加一行添加ldap模块
配置其他参数
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
date.timezone = Asia/Shanghai
到安装目录下把两个配置文件改名(必须)
[root@zabbix-server php-7.4.21]# cd /usr/local/php7/etc/
[root@zabbix-server etc]# cp php-fpm.conf.default php-fpm.conf
[root@zabbix-server etc]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf
给php命令设置软链接方便使用
[root@zabbix-server php-7.4.21]# ln -s /usr/local/php7/bin/* /usr/local/bin
[root@zabbix-server php-7.4.21]# ln -s /usr/local/php7/sbin/* /usr/local/sbin
顺便查看下php的版本
[root@zabbix-server php-7.4.21]# php -v
PHP 7.4.21 (cli) (built: Jul 6 2021 23:53:29) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
启动php,php-fpm是php的管理工具,默认9000端口
[root@zabbix-server etc]# php-fpm
[root@zabbix-server etc]# netstat -antp | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 21573/php-fpm: mast
查看是否加载了ldap模块
[root@zabbix-server php-7.4.21]# php -m | grep ldap
ldap
配置nginx可以支持php网页
[root@zabbix-server php-7.4.21]# vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
启动nginx
[root@zabbix-server etc]# nginx
[root@zabbix-server etc]# netstat -antp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 21592/nginx: master
在nginx网页目录下编写一个简单的php网页,验证访问nginx的php网页成功
[root@zabbix-server php-7.4.21]# vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
最后可以修改下内容测试一下php与mysql的连接
[root@zabbix-server html]# vim index.php
<?php
$mysqli = new mysqli("localhost", "root", "12345678");
if(!$mysqli) {
echo"database error";
}else{
echo"php env successful";
}
$mysqli->close();
?>
验证连接mysql也成功
四、安装zabbix5.0
首先到zabbix的官网去下载源码包
zabbix官网:https://www.zabbix.com/download_sources#tab:50LTS
接着就可以照着官方文档来进行安装,但还是有些地方不能全部照抄,往下看
官方安装文档
下载源码包,放到/opt目录下
[root@zabbix-server opt]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.13.tar.gz
解压源码包
[root@zabbix-server opt]# tar -xf zabbix-5.0.13.tar.gz
为zabbix新建用户和组
[root@zabbix-server opt]# groupadd --system zabbix
[root@zabbix-server opt]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
为zabbix家目录修改权限
[root@zabbix-server opt]# mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
[root@zabbix-server opt]# chown zabbix:zabbix /usr/lib/zabbix
好了,现在来设置数据库了
字符集utf8和utf8_bin排序规则是Zabbix Server/Proxy与MySQL数据库一起正常工作所必需的。
还有就是新建一个授权账户叫做zabbix,密码是zabbix123,用他专门来访问数据库的,授权他只能从本地访问zabbix数据库
[root@zabbix-server opt]# mysql -uroot -p
Enter password:
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> create user 'zabbix'@'localhost' identified by 'zabbix123';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> quit;
Bye
SQL 脚本 用于创建数据库 schema 和插入 dataset。Zabbix proxy 数据库只需要数据库 schema,而 Zabbix server 数据库在建立数据库 schema 后,还需要 dataset。
如果要从源代码安装Zabbix,请继续将数据导入数据库。对于Zabbix代理数据库,应仅导入schema.sql( 不是images.sql或data.sql)
我们这里没有单独说要做zabbix代理服务器,所以3个sql都导入数据库
[root@zabbix-server opt]# cd zabbix-5.0.13/
[root@zabbix-server zabbix-5.0.13]# cd database/mysql
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix123 zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix123 zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix123 zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
接下来就可以configure配置了,带上所需参数,这些几乎都是必需的
[root@zabbix-server mysql]# cd -
/opt/zabbix-5.0.13
[root@zabbix-server zabbix-5.0.13]# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
但是按照官网的configure会报错,缺少net-snmp-devel和libevent-devel依赖包,yum装一下就好
configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
[root@zabbix-server zabbix-5.0.13]# yum -y install net-snmp-devel
configure: error: Unable to use libevent (libevent check failed)
[root@zabbix-server zabbix-5.0.13]# yum install -y libevent-devel
整个过程没报错应该是以下这样的,中间省略一些不重要的信息,这里告诉你相关配置文件路径以及启用了哪些模块等等
Configuration:
Configuration file: /usr/local/etc/zabbix_server.conf
External scripts: /usr/local/share/zabbix/externalscripts
Alert scripts: /usr/local/share/zabbix/alertscripts
Modules: /usr/local/lib/modules
Enable proxy: no
Enable agent: yes
Agent details:
Configuration file: /usr/local/etc/zabbix_agentd.conf
Modules: /usr/local/lib/modules
Enable Java gateway: no
LDAP support: no
IPv6 support: yes
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
接着直接安装就好,你没看错直接make install!
[root@zabbix-server zabbix-5.0.13]# make install
安装完成之后需要对服务器端配置文件进行修改
服务器端配置文件是zabbix_server.conf
[root@zabbix-server zabbix-5.0.13]# vim /usr/local/etc/zabbix_server.conf
DBPassword=zabbix123 //添加mysql数据库zabbix用户的登陆密码
DBSocket=/var/lib/mysql/mysql.sock //指定mysql的socket文件路径
启动zabbix服务端,zabbix_agentd是zabbix客户端需要运行的程序,这服务器上启动是因为可以让他自己监控自己
[root@zabbix-server zabbix-5.0.13]# zabbix_server
[root@zabbix-server zabbix-5.0.13]# zabbix_agentd
安装前端web页面
Zabbix 前端是 PHP 编写的,所以必须运行在支持 PHP 的 Web 服务器上。只需要从ui路径下复制 PHP 文件到 Web 服务器的 HTML 文档目录,即可完成安装,我把整个ui目录都拷贝过去命名为zabbix
[root@zabbix-server zabbix-5.0.13]# cp -r ui /usr/local/nginx/html/zabbix/
检查下端口是否正常,服务器端监听10051,客户端监听10050
[root@zabbix-server zabbix-5.0.13]# netstat -antp | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 106069/zabbix_agent
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 105972/zabbix_serve
tcp6 0 0 :::10050 :::* LISTEN 106069/zabbix_agent
tcp6 0 0 :::10051 :::* LISTEN 105972/zabbix_serve
五、初始化配置
验证访问*http://192.168.245.204/zabbix/*就出现zabbix主页了,但是还没有完全装好,需要做一些设置,直接下一步
zabbix5.0在数据库这里新增加了加密认证的功能,这里就暂时不勾选了
没有问题直接下一步
这个需要你先下载到宿主机然后拖进虚拟机里
步骤如下:
[root@zabbix-server zabbix-5.0.13]# cd /opt
[root@zabbix-server opt]#
[root@zabbix-server opt]# cp zabbix.conf.php /usr/local/nginx/html/zabbix/conf/zabbix.conf.php
全部完成之后就重新跳转到登陆界面了,就可以用默认的管理员用户登陆了
能顺利进到这个页面就表示安装成功了
六、认识zabbix
但是默认页面是英文的,现在来改一下把语言改成中文
因为本机上开启了agent进程,所以默认在监控本机的数据