📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
文章目录
前言
最近客户项目要求,本文基于Linux系统RHEL7源码编译安装Zabbix6,详细的部署分享给大家
📢 1.环境准备
1.源码包下载
下载地址:https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.2.tar.gz
2.关闭防火墙和 selinux 并重启
如果selinux没有关闭执行:
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config[root@localhost ~]# systemctl disable --now firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# systemctl status firewalld3.hostname设置
[root@localhost ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.4(Maipo)[root@localhost ~]# hostnamectl set-hostname jeames4.HOST解析
[root@jeames ~]# vi /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
## 添加以下内容192.168.1.30 jeames
📢 2 配置本地yum
本次我们运用挂载本地光盘镜像的方法
1.创建挂载目录
[root@jeames ~]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/rhel-root xfs 19G 4.0G 15G 22% /
devtmpfs devtmpfs 2.0G 02.0G 0% /dev
tmpfs tmpfs 2.0G 02.0G 0% /dev/shm
tmpfs tmpfs 2.0G 9.6M 2.0G 1% /run
tmpfs tmpfs 2.0G 02.0G 0% /sys/fs/cgroup
/dev/sda1 xfs 1.1G 187M 877M 18% /boot
tmpfs tmpfs 396M 25k 396M 1% /run/user/0
tmpfs tmpfs 396M 8.2k 396M 1% /run/user/42
/dev/sr0 iso9660 4.1G 4.1G 0100% /run/media/root/RHEL-7.4 Server.x86_64
[root@jeames ~]# mkdir -p /mnt/dvd/2.挂载光盘到目录
[root@rhel76 ~]# mount /dev/sr0 /mnt/dvd
mount: /dev/sr0 is write-protected, mounting read-only
3.将RHEL7的yum替换为Centos的源
## 查询原有rpm包[root@jeames ~]# rpm -qa | grep yum
PackageKit-yum-1.1.5-1.el7.x86_64
yum-3.4.3-154.el7.noarch
yum-rhn-plugin-2.0.1-9.el7.noarch
yum-utils-1.1.31-42.el7.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-langpacks-0.4.2-7.el7.noarch
## 删除原有的yum源[root@jeames ~]# rpm -qa|grep yum|xargs rpm -e --nodeps## CentOS yum源配置[root@jeames /]# cp /etc/yum.repos.d/redhat.repo /etc/yum.repos.d/redhat.repo.bakcat>> /etc/yum.repos.d/CentOS.repo <<"EOF"
[rhel7]
name=jemrepo
baseurl=file:///mnt/dvd/
gpgcheck=0
EOF[root@jeames /]# yum repolist## 安装Centos7 yum所需的所有rpm包[root@jeames ~]# rpm -ivh yum-3.4.3-168.el7.centos.noarch.rpm --nodeps[root@jeames ~]# rpm -ivh yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm --nodeps[root@jeames ~]# rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm[root@jeames /]# rpm -qa | grep yum
yum-3.4.3-168.el7.centos.noarch
yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
📢 3 源码编译Server
1.安装依赖
[root@jeames /]# yum install -y libevent-devel net-snmp-devel[root@jeames /]# yum install libxml2 libxml2-devel -y[root@jeames /]# yum -y install unixODBC unixODBC-devel[root@jeames /]# yum -y install curl-devel[root@jeames ~]# yum install openssl-devel pcre-devel libssh2-devel OpenIPMI-devel openldap-devel[root@jeames /]# yum -y install gcc gcc-c++[root@jeames /]# gcc -v[root@jeames ~]# yum -y install mysql-devel2.创建用户组等,授权
[root@jeames /]# groupadd --system zabbix[root@jeames /]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix3.解压源码包
[root@jeames ~]# tar -zxvf zabbix-6.2.2.tar.gz4.编译安装
注意以下都是在zabbix的安装目录下执行
[root@jeames /]# cd zabbix-6.2.2[root@jeames /]# ./configure --enable-server --enable-agent --with-mysql \
--enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc
最后编译
[zabbix@jeames zabbix-6.2.2]# make install
📢 4 编译安装PHP
# 官网地址
https://www.php.net/downloads
# 安装简单依赖
yum remove php* -y
yum install autoconf automake libtool sqlite-devel libjpeg-devel libpng-devel freetype-devel -y
[root@jeames ~]# tar xf php-7.4.9.tar.gz[root@jeames ~]# useradd -s /sbin/nologin -M php[root@jeames ~]# cd php-7.4.9## 记得导入环境变量exportPKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"
./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-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 --with-jpeg
## 编译,这个时间比较长make -j4 &&makeinstall
#配置文件改名cd /usr/local/php7/etc/
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf
#php命令设置软链接ln -s /usr/local/php7/bin/* /usr/local/bin
ln -s /usr/local/php7/sbin/* /usr/local/sbin
#查看php的版本[root@jeames etc]# php -v
PHP 7.4.9 (cli)(built: Sep 17202223:51:00)( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
#杀死当前php进程,重启killall php-fpm
php-fpm
netstat -antp |grep php-fpm
tail -f /usr/local/php7/var/log/php-fpm.log
netstat -tln |grep9000netstat -tln |grep80#安装ldap扩展模块[root@jeames ~]# cd /root/php-7.4.9/ext/ldap[root@jeames ldap]# find / -name phpize
/root/php-7.4.9/scripts/phpize
/usr/local/bin/phpize
#运行phpize[root@jeames ldap]# /usr/local/php7/bin/phpize
Configuring for:
PHP Api Version: 20190902
Zend Module Api No: 20190902
Zend Extension Api No: 320190902#复制库文件cp -frp /usr/lib64/libldap* /usr/lib/
#安装至/usr/local/php7/bin/php-config[root@jeames ldap]# ./configure --with-php-config=/usr/local/php7/bin/php-config#编译安装[root@jeames ldap]# make && make install#修改参数cd /root/php-7.4.9
cp php.ini-production /usr/local/php7/etc/php.ini
vim /usr/local/php7/etc/php.ini
extension_dir ="/usr/local/php7/lib/php/extensions/no-debug-non-zts-20190902/"extension=ldap.so
max_execution_time =300
post_max_size = 16M
max_input_time =300
date.timezone = Asia/Shanghai
📢 5 创建初始数据库
MySQL数据库用来给 Zabbix Server,提供数据存储,本次采用二进制包安装MySQL8.0
✨ 5.1 安裝MySQL8
1. 卸载MariaDB,避免mariadb和mysql数据库冲突
[root@jeames zabbix-6.2.2]# rpm -qa |grep mariadb
mariadb-devel-5.5.56-2.el7.x86_64
mariadb-libs-5.5.56-2.el7.x86_64
[root@jeames zabbix-6.2.2]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64[root@jeames zabbix-6.2.2]# rpm -e --nodeps mariadb-devel-5.5.56-2.el7.x86_642.用户及目录创建
root 用户操作:
mkdir -p /mysql/data/mysql3306
mkdir -p /mysql/app/
mkdir -p /mysql/conf/
mkdir -p /mysql/data/mysql3306/pid/
mkdir -p /mysql/data/mysql3306/socket/
mkdir -p /mysql/data/mysql3306/log/
mkdir -p /mysql/data/mysql3306/binlog/
mkdir -p /mysql/data/mysql3306/errlog
mkdir -p /mysql/data/mysql3306/relaylog/
mkdir -p /mysql/data/mysql3306/slowlog/
mkdir -p /mysql/data/mysql3306/tmp/
3.用户及组
[root@jeames ~]# groupadd mysql[root@jeames ~]# useradd -g mysql mysql[root@jeames ~]# chown -R mysql:mysql /mysql[root@jeames ~]# chmod 775 -R /mysqluserdel -r mysql --删除 lamp 用户
groupdel mysql --删除组users
#上传软件包并解压[root@jeames ~]# cp mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz /mysql/app[root@jeames ~]# chown -R mysql:mysql /mysql[root@jeames ~]# chmod 775 -R /mysql4.mysql用户操作
[root@jeames ~]# su - mysql[mysql@jeames ~]$ cd /mysql/app
## 解压软件包并重命名[mysql@jeames app]$ tar xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
[mysql@jeames app]$ mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8.0.27
##环境变量配置cat>> /home/mysql/.bash_profile <<"EOF"
MYSQL_HOME=/mysql/app/mysql8.0.27
PATH=$PATH:$MYSQL_HOME/bin
EOF[mysql@jeames app]$ source ~/.bash_profile
[mysql@jeames app]$ which mysql
/mysql/app/mysql8.0.27/bin/mysql
## 创建参数文件cat>> /mysql/conf/my3306.cnf <<"EOF"
[mysqld]
server_id = 80273306
default-storage-engine= InnoDB
basedir=/mysql/app/mysql8.0.27
datadir=/mysql/data/mysql3306/data/
socket=/tmp/mysql.sock
log-error=/mysql/data/mysql3306/log/mysqld.log
pid-file=/mysql/data/mysql3306/pid/mysqld.pid
port=3306
default-time_zone='+8:00'
default_authentication_plugin=mysql_native_password # 加此参数可远程登陆
transaction_isolation=READ-COMMITTED
max_connections=1500
back_log=500
wait_timeout=1800
max_user_connections=800
innodb_buffer_pool_size=1024M
innodb_log_file_size=512M
innodb_log_buffer_size=40M
slow_query_log=ON
long_query_time=5
# log settings #
slow_query_log = ON
slow_query_log_file = /mysql/data/mysql3306/slowlog/slow3306.log
log_error = /mysql/data/mysql3306/errlog/err3306.log
log_error_verbosity = 3
log_bin = /mysql/data/mysql3306/binlog/mysql_bin
log_bin_index = /mysql/data/mysql3306/binlog/mysql_binlog.index
general_log_file = /data/mysql/mysql3306/generallog/general.log
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
expire_logs_days = 90
binlog_expire_logs_seconds = 2592000 #30d
long_query_time = 2
min_examined_row_limit = 100
log_throttle_queries_not_using_indexes = 1000
innodb_flush_log_at_trx_commit=1
log_bin_trust_function_creators=1
EOF5.数据库初始化
mysql用户操作:
mysqld --defaults-file=/mysql/conf/my3306.cnf --initialize --user=mysql --basedir=/mysql/app/mysql8.0.27 \
--datadir=/mysql/data/mysql3306/data/
## 启动Mysql[mysql@jeames ~]$ mysqld_safe --defaults-file=/mysql/conf/my3306.cnf --user=mysql &[1]46477[mysql@jeames ~]$ 2022-09-17T11:34:40.938667Z mysqld_safe Logging to '/mysql/data/mysql3306/errlog/err3306.log'.2022-09-17T11:34:40.974295Z mysqld_safe Starting mysqld daemon with databases from /mysql/data/mysql3306/data
✨ 5.2 创建用户配置参数
1.登陆MySQL
第一次登录 MySQL 时,需要到错误日志下找初始化密码
[mysql@jeames ~]$ cat /mysql/data/mysql3306/errlog/err3306.log |grep password
此处通过sock登陆
[mysql@jeames ~]$ mysql -uroot -p -P 3306 -S /tmp/mysql.sock
mysql> alter user root@'localhost' identified by 'root';
mysql> flush privileges
mysql> status
--------------
mysql Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 8
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.27
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /mysql/data/mysql3306/socket/mysql.sock
Binary data as: Hexadecimal
Uptime: 3 min 56 sec
Threads: 2 Questions: 8 Slow queries: 0 Opens: 399 Flush tables: 3 Open tables: 37 Queries per second avg: 0.0332.新增用戶
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'Jeames@007';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql>set global log_bin_trust_function_creators =1;
mysql> flush privileges;
mysql> quit;
✨ 5.3 导入初始架构和数据
[root@jeames ~]# chmod -R 777 zabbix-6.0.8[root@jeames ~]# chown -R mysql:mysql zabbix-6.0.8[root@jeames mysql]# cp data.sql images.sql schema.sql /home/mysql[root@jeames mysql]# pwd
/root/zabbix-6.0.8/database/mysql
[mysql@jeames ~]$ mysql -uroot -p
mysql> show databases;
mysql> use zabbix;
mysql>source schema.sql
mysql>source images.sql
mysql>source data.sql
mysql> SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES
-> WHERE table_schema ='zabbix';
+--------+--------------+
| TABLES | TABLE_SCHEMA |
+--------+--------------+
|173| zabbix |
+--------+--------------+
1 row inset(0.00 sec)
✨ 5.4 Zabbix server配置数据库
编辑配置文件,默认目录在/usr/local/etc
#这个要输入的密码就是在MySQL中创建zabbix数据配置的密码DBPassword=Jeames@007
快捷的方法用以下命令
[root@jeames ~]# sed -ri.bak '/# DBPassword=/cDBPassword=Jeames@007' /usr/local/etc/zabbix_server.conf[root@jeames ~]# more /usr/local/etc/zabbix_server.conf | grep DBPassword### Option: DBPasswordDBPassword=Jeames@007
# This option can only be used if DBUser and DBPassword are not specified.
配置文件说明:
DBHost=192.168.1.30 #你安装数据库的机器ipDBName=zabbix #你安装数据库的zabbix库DBUser=zabbix #你安装数据库的zabbix用户DBPassword=zabbix #你安装数据库的zabbix用户密码[root@jeames ~]# vi /usr/local/etc/zabbix_server.conf##以下是socket路径,需要注意SocketDir=/tmp
DBSocket=/tmp/mysql.sock
📢 6 安装Web interface
1.首先要安装服务
yum -y install httpd
配置文件是
/etc/httpd/conf/httpd.conf
/var/www/html
2.设置开机自启动
systemctl daemon-reload
systemctl enable httpd.service
systemctl start httpd.service
## 复制[root@jeames ~]# cd /var/www/html[root@jeames html]# mkdir zabbix[root@jeames ~]# cd zabbix-6.2.2/ui[root@jeames ~]# cp * -r /var/www/html/zabbix[root@jeames ~]# systemctl restart httpd.service#访问授权zabbixchmod -R 755 /var/www/html/zabbix/
浏览器:http://192.168.1.30/zabbix/setup.php
3 重启PHP
killall php-fpm
php-fpm
netstat -antp |grep php-fpm
tail -f /usr/local/php7/var/log/php-fpm.log
netstat -tln |grep9000netstat -tln |grep804.配置Apache解析PHP文件
#配置Apache解析PHPvim /etc/httpd/conf.d/php-fpm.conf
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"</FilesMatch>5.UI界面(图形化加载)
[root@jeames php-fpm.d]# chown apache:apache /var/www/html -R[root@jeames php-fpm.d]# service httpd restart
http://192.168.1.30/zabbix/setup.php
📢 7 启动Zabbix相关进程
[root@jeames ~]# which zabbix_server
/usr/local/sbin/zabbix_server
[root@jeames ~]# which zabbix_agentd
/usr/local/sbin/zabbix_agentd
1.启动Zabbix server和agent进程
[root@jeames ~]# zabbix_server[root@jeames ~]# ps -ef |grep zabbix
zabbix 486581020:54 ? 00:00:00 zabbix_server
zabbix 486631020:55 ? 00:00:00 zabbix_agentd
zabbix 4866448663020:55 ? 00:00:00 zabbix_agentd: collector [idle 1 sec]
zabbix 4866548663020:55 ? 00:00:00 zabbix_agentd: listener #1 [waiting for connection]
zabbix 4866648663020:55 ? 00:00:00 zabbix_agentd: listener #2 [waiting for connection]
zabbix 4866748663020:55 ? 00:00:00 zabbix_agentd: listener #3 [waiting for connection]
zabbix 4866848663020:55 ? 00:00:00 zabbix_agentd: active checks #1 [idle 1 sec]
root 4868246377020:56 pts/1 00:00:00 grep --color=auto zabbix
[root@jeames ~]# zabbix_agentd[root@jeames ~]# ps -ef | grep zabbix_agentd
zabbix 486631020:55 ? 00:00:00 zabbix_agentd
zabbix 4866448663020:55 ? 00:00:00 zabbix_agentd: collector [idle 1 sec]
zabbix 4866548663020:55 ? 00:00:00 zabbix_agentd: listener #1 [waiting for connection]
zabbix 4866648663020:55 ? 00:00:00 zabbix_agentd: listener #2 [waiting for connection]
zabbix 4866748663020:55 ? 00:00:00 zabbix_agentd: listener #3 [waiting for connection]
zabbix 4866848663020:55 ? 00:00:00 zabbix_agentd: active checks #1 [idle 1 sec]
root 4869246377020:57 pts/1 00:00:00 grep --color=auto zabbix_agentd
[root@jeames ~]# netstat -antp | grep zabbix
tcp 000.0.0.0:10050 0.0.0.0:* LISTEN 48663/zabbix_agentd
tcp6 00 :::10050 :::* LISTEN 48663/zabbix_agentd
#查看运行日记find / -name zabbix_server.log
tail -f /tmp/zabbix_server.log
版权归原作者 IT邦德 所有, 如有侵权,请联系我们删除。