前言
复习zabbix
|NODE|IP|ROLE|
|-|-|-|
|T1|192.168.179.191|zabbix-agent|
|T3|192.168.179.193|zabbix-server|
实践
搭建zabbix集群 (6.0LTS)
环境搭建
参考官方文档2 安装要求
php 7.4
选择安装php7.4
方法1,源码安装
安装环境
yum -y install gcc gcc-c++ libxml2-devel libicu-devel sqlite-devel oniguruma oniguruma-devel autoconf zip unzip openssl-devel libtool libpng-devel libjpeg-turbo-devel freetype-devel libzip libzip-devel下载解压
#由于官网太慢,选择其他网站 cd /root wget http://be2.php.net/get/php-7.4.15.tar.gz/from/this/mirror -O php-7.4.15.tar.gz tar -zxvf php-7.4.15.tar.gz cd php-7.4.15/编译安装
./configure \ --prefix=/app/tools/php7 \ --with-config-file-path=/app/tools/php7/etc \ --with-config-file-scan-dir=/usr/local/php7/etc/php.d \ --enable-mysqlnd \ --with-mysqli \ --with-pdo-mysql \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --enable-gd \ --with-freetype \ --with-png \ --with-jpeg \ --with-iconv \ --with-zlib \ --enable-xml \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --enable-mbregex \ --enable-mbstring \ --enable-ftp \ --with-openssl \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --with-zip \ --enable-soap \ --without-pear \ --with-gettext \ --enable-session \ --with-curl \ --enable-opcache \ --enable-bcmath make && make install #如果编译错误或重新编译,需要make clean一定要注意
make install后出现的未识别选项,因为对于不同的php版本,选项可能出现变化,如果没有使用php7.4.15进行编译,可能需要修改选项普通配置
#这是通用配置,所有php编译安装都需要 ln -s /app/tools/php7 /app/tools/php ln -s /app/tools/php/sbin/php-fpm /usr/bin/php cp php.ini-production /app/tools/php/etc/php.ini cp /app/tools/php/etc/php-fpm.conf.default /app/tools/php/etc/php-fpm.conf cp /app/tools/php/etc/php-fpm.d/www.conf.default /app/tools/php/etc/php-fpm.d/www.conf验证
php -v修改配置
#适应zabbix使用的配置 sed -ri '/^(user|group)/s#apache#nginx#g' /app/tools/php/etc/php-fpm.d/www.conf #检查 grep -E '^(user|group)' /app/tools/php/etc/php-fpm.d/www.conf #修改php配置符合zabbix的要求 vim /app/tools/php/etc/php.ini post_max_size = 16M max_execution_time = 300 max_input_time = 300启动
php #以下方法好像不行 cp /app/tools/php/sbin/php-fpm /etc/init.d/php-fpm #可以选择配置systemd,但是一般不会关闭或重启php,所以直接使用service启动 service php-fpm start ps aux | grep php-fpm
方法2(懒人rpm包版)
该方法使用便捷,php部分不可能出问题,也不用等待编译php 7.4
yum -y install epel-release yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum -y install yum-utils yum -y install php74-php php74-php-fpm php74-php-bcmath php74-php-ctype php74-php-curl php74-php-dom php74-php-gd php74-php-hash php74-php-iconv php74-php-intl php74-php-mbstring php74-php-pdo_mysql php74-php-simplexml php74-php-soap php74-php-xsl php74-php-zip php74-php-xml php74-php-sockets php74-php-session php74-php-snmp php74-php-mysql php74-php-cli php74-php-json php74-php-mcrypt php74-php-mysqlnd php74-php-pecl-crypto php74-php-pecl-mcrypt php74-php-pecl-geoip php74-php-recode php74-php-xmll php74-php-ldap systemctl start php74-php-fpm systemctl enable php74-php-fpm rpm -qa | grep php find /etc/opt/remi/php74 -name php.ini vim /etc/opt/remi/php74/php.ini cgi.fix_pathinfo=0 post_max_size = 16M max_execution_time = 300 max_input_time = 300 systemctl restart php74-php-fpm ln -s /opt/remi/php74/root/usr/bin/php /usr/bin/php vim ~/.bashrc export PATH=/opt/remi/php74/root/usr/bin:$PATH source ~/.bashrc vim /etc/profile export PATH=/opt/remi/php74/root/usr/bin:$PATH php -v #注意此yum使用php74-php-fpm启动
maridb 10.6

指定阿里云mariadb 的10.6安装源删除可能的mysql数据库
#危险操作,谨慎 rpm -qa|grep mysql|xargs yum remove -y rpm -qa|grep mariadb |xargs yum remove rpm -qa|grep mysql|xargs rpm -e #删库操作#rm -rf /var/lib/mysql/*## #删日志#rm -f /var/log/mysqld.log##如果/var/lib/mysql/不删,可能导致留有部分数据!包括登录密码
配置mariadb源
vim /etc/yum.repos.d/MariaDB.repo [mariadb] name = MariaDB baseurl = http://mirrors.aliyun.com/mariadb/yum/10.6/centos7-amd64/ gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck = 1下载
yum clean all yum repolist yum install MariaDB-server MariaDB-client -y systemctl start mariadb systemctl enable mariadb systemctl status mariadb检查
mysqld --version配置
#zabbix需要创建数据库(没有配置密码) mysql -u root -p create database zabbix charset utf8 collate utf8_bin; grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix'; show databases; select user,host from mysql.user;#需要使用zabbix软件包的sql文件,先下载 cd /root/ mysql zabbix < schema.sql mysql zabbix < images.sql mysql zabbix < data.sql
nginx
安装启动
yum install -y nginx systemctl enable --now nginx #nginx也可以编译安装,但是zabbix对nginx没有要求,yum下载就行配置server
#浏览器访问zabbix vim /etc/nginx/conf.d/www.zabbix.cn.conf server { listen 80; server_name www.zabbix.cn; root /app/tools/zabbix; location / { index index.php; } 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; } }重启
systemctl restart nginx systemctl status nginx
zabbix客户端
对于linux,有agent与agent2,推荐使用agent2,比较新
需要注意的是,服务端本身也需要安装agent,直接使用默认配置启动就行
下载
#centos7的6.0LTS版的zabbix_agent2 rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-latest-6.0.el7.noarch.rpm yum clean all yum install zabbix-agent2 -y yum install zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql -y systemctl restart zabbix-agent2 systemctl enable zabbix-agent2 systemctl status zabbix-agent2配置
vim /etc/zabbix/zabbix_agent2.conf #服务端IP #Server=<zabbix_server_IP> Server=192.168.179.193 #配置客户端主动推送,否则被动工作,需要服务端请求(服务端压力大) #ServerActive=<zabbix_agent_IP> ServerActive=192.168.179.193 #主机名,建议与linux主机名一致 Hostname=T1重启
systemctl restart zabbix-agent2
zabbix服务端
安装依赖
yum install -y 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下载解压
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.39.tar.gz tar xf zabbix-6.0.39.tar.gz cd zabbix-6.0.39编译安装
./configure --sysconfdir=/app/tools/zabbix/ --enable-server --with-service --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcremake && make install echo $?配置
vim /app/tools/zabbix/zabbix_server.conf ListenPort=10051 #日志 (需要创建) LogFile=/var/log/zabbix/zabbix_server.log #数据库位置 DBHost=localhost #数据库名 DBName=zabbix #数据库用户名 DBUser=zabbix #用户密码 DBPassword=zabbix #检查 grep -n '^[a-Z]' /app/tools/zabbix/zabbix_server.conf#创建日志文件 mkdir -p /var/log/zabbix touch /var/log/zabbix/zabbix_server.log #创建启动用户 useradd -s /sbin/nologin -M zabbix chown -R zabbix.zabbix /var/log/zabbix/#前端配置(在下载解压包里) cp /root/zabbix-6.0.39/ui/* /app/tools/zabbix -r #更换属主 chown -R nginx.nginx /app/tools/zabbix如果/app/tools/zabbix不更换属主,会导致zabbix启动后的配置文件需要自己一个一个添加
#systemd启动 vim /usr/lib/systemd/system/zabbix-server.service [Unit] Description=Zabbix Server After=syslog.target network.target [Service] Type=simple ExecStart=/usr/local/sbin/zabbix_server -f User=zabbix [Install] WantedBy=multi-user.target启动
systemctl daemon-reload systemctl start zabbix-server.service systemctl status zabbix-server.service访问
http://www.zabbix.cn/如果配置正常,应该都是绿色的的
#需要手动下载上传到/app/tools/zabbix/conf,除非你愿意修改模板zabbix.conf.php.example登录
用户Admin 密码zabbix进入zabbix
解决中文乱码
C:\Windows\Fonts #随便复制一个到/app/tools/zabbix/assets/fonts 这里选择SIMSUN.TTC(新宋体) mv /app/tools/zabbix/assets/fonts/SIMSUN.TTC /app/tools/zabbix/assets/fonts/DejaVuSans.ttf #一定不要修改 zabbix/include/defines.inc.php,修改这个文件的字体键值会莫名出现未知错误添加客户端
回到主界面查看结果
如果是绿的,就是成功了;如果是灰的,就是正在连接,需要等一会,如果是红的,就是没有连上,配错了
错误
1.mysql与mariadb冲突
- 报错

- 原因
mariadb与mysql抢夺安装路径,安装mariadb时mysql没删干净 解决
rpm -qa|grep mysql|xargs yum remove -y >&/dev/null rpm -qa|grep mariadb |xargs yum remove -y >&/dev/null rpm -qa|grep mysql|xargs rpm -e >&/dev/null #建议删除数据,自己判断 #rm -rf /var/lib/mysql/*# rm -f /var/log/mysqld.log
rpm -qa|grep mysql|xargs yum remove -y 2.zabbix检查php缺失必要条件
3.php编译后仍错误
- 报错

- 原因
PHP 版本(7.4+)需要使用--enable-gd而不是--with-gd,并且需要明确启用各种图像格式支持:
将--with-gd改为--enable-gd,指定--with-freetype --with-png --with-jpeg - 解决
修改编译模块,注意make install后提示的未知模块信息



















