一、环境准备
zabbix server :centos7 node2 192.168.58.136
zabbix agent: centos7 node1 192.168.58.135
centos7 node3 192.168.58.137
二、LNMP环境搭建(编译安装)
编译环境安装:yum install gcc gcc-c++ make
1、安装Mysql
#下载二进制包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
#解压二进制包
tar -xf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
#配置环境变量
mv mysql-8.0.28-linux-glibc2.12-x86_64 mysql
vi /etc/profile
# 添加以下内容
PATH=/usr/local/mysql/bin:$PATH
#创建mysql用户
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql
#创建日志文件
touch /var/log/mysql/mysql-error.log
touch /var/log/mysql/mysql.log
touch /var/log/mysql/slow-query.log
#给予对应的权限
chown mysql.mysql /data/mysql -R
chown mysql.mysql /var/log/mysql -R
#初始化mysql
mysqld --defaults-file=/etc/my.cnf --initialize #需要先配置好my.cnf
或者
MySQL_Data_Dir=/data/mysql
mysqld --initialize-insecure --basedir=/app/mysql --datadir=${MySQL_Data_Dir} --user=mysql
#启动mysql
cp mysql/support-files/mysql.server /etc/init.d/
/etc/init.d/mysql.server start
mysql -uroot -p #初始密码在mysql-error.log 文件里
ALTER USER 'root'@'localhost' identified by 'password';
flush privileges;
#创建Zabbix库
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@'127.0.0.1' identified by 'password';
grant all privileges on zabbix.* to zabbix@'127.0.0.1';
flush privileges;
2、安装PHP
添加源
yum install epel-release
#安装依赖
yum install openssl-devel bzip2-devel libffi-devel sqlite-devel gpm-libs oniguruma oniguruma-devel libsodium libsodium-devel xz-devel libxml2-devel libcurl-devel
yum install bash-completion bash-completion-extras libicu-devel libjpeg libjpeg-devel nss_ldap cmake boost-devel libevent libevent-devel gd gd-devel openjpeg-devel
yum install libgcrypt-devel libpng-devel libgpg-error-devel libxslt-devel cmake libmcrypt-devel libmcrypt recode-devel recode
#下载安装包
#wget https://www.php.net/distributions/php-8.2.7.tar.gz
wget https://www.php.net/distributions/php-7.4.28.tar.gz
#编译安装
./configure --prefix=/usr/local/php --with-config-file-path=//usr/local/php/etc --with-fpm-user=nginx --with-fpm-group=nginx --with-curl --enable-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-mysqli --with-openssl --with-pdo-mysql --with-pdo-sqlite --with-pear --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-fpm --with-freetype --with-jpeg --with-xpm
#make -j4 没涉及到
make install
#配置环境变量
vim /etc/profile
PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH
source /etc/profile
# 输入 php -v 检查是否安装成功,环境变量并生效
#配置PHP
cp php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
vim /usr/local/php/etc/php.ini
max_execution_time = 300 改为 300
max_input_time = 300 改为300
post_max_size = 16M
date.timezone = Asia/Shanghai
#创建运行用户
groupadd nginx
useradd -r -g nginx -s /sbin/nologin nginx
#启动
/etc/init.d/php-fpm start
vim /usr/lib/systemd/system/php-fpm.service
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
3、安装NGINX
#下载源包
wget https://nginx.org/download/nginx-1.20.2.tar.gz
#安装ngx_brotli
yum install git
cd /usr/local/
git clone https://github.com/google/ngx_brotli
cd ngx_brotli
git submodule update --init
#编译安装nginx
tar -zxf nginx-1.20.2.tar.gz
cd nginx-1.20.2/
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-openssl-opt=enable-tlsext --with-stream --with-http_gzip_static_module --with-http_realip_module --with-http_image_filter_module --with-http_sub_module --add-module=/usr/local/ngx_brotli
make install
#配置nginx, zabbix web的路径,本文放在/var/local/www
#配置过于简单,度娘太多,可自行抄
关健配置如下:
##########zabbix web server###############
root /var/local/www/zabbix;
location / {
index index.html index.htm index.php;
#stub_status on;
access_log off;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/local/www/zabbix$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
}
#####nginx.conf#####
brotli on;
brotli_comp_level 6;
brotli_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/javascript font/ttf;
#启动Nginx
/usr/local/nginx/sbin/nginx
vim /usr/lib/systemd/system/nginx.service
Nginx
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
4、JDK安装
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
tar -zxf jdk-17_linux-x64_bin.tar.gz
配置环境变量
vim /etc/profile #加入以下内容
JAVA_HOME=/usr/local/jdk-17.0.2
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile #马上生效
5、Golang安装
#下载源包
https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz
#解压包
tar -zxf go1.18.linux-amd64.tar.gz
#配置环境变量
vim /etc/profile
PATH=/usr/local/go/bin:$PATH
三、zabbix server环境搭建
1、zabbix server源码编译安装
升级GCC
#安装scl源:
yum install centos-release-scl scl-utils-build
#升级GCC
yum install -y devtoolset-8-toolchain
scl enable devtoolset-8 bash
gcc --version
安装依赖
yum install openssl-devel pcre-devel zlib-devel unixODBC-devel net-snmp-devel libssh2-devel OpenIPMI-devel openldap-devel
#下载源码包
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.2.tar.gz
#解压
tar -zxf zabbix-6.0.2.tar.gz
#编译安装
groupadd zabbix
useradd -M -s /sbin/nologin -g zabbix zabbix
./configure --prefix=/usr/local/zabbix --enable-java --enable-server -enable-proxy --with-mysql --with-ssh2 --with-net-snmp --with-libcurl --with-libxml2 --with-iconv --with-unixodbc --with-openipmi --with-openssl --enable-agent2 --enable-webservice --with-ldap
2、zabbix server配置
#配置Zabbix Server
vi /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=password
DBPort=3306
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
StartReportWriters=2
WebServiceURL=http://localhost:10053/report
#启动
/usr/local/zabbix/sbin/zabbix_server
#停止
ps -ef|grep zabbix|awk '{cmd="kill -9 "$2;system(cmd)}'
cat /usr/local/zabbix/etc/zabbix_server.conf| grep -v "^#"|grep -v "^$"
#启动Zabbix server可能会因为缺少连接mysql的lib库,导致启动失败,根据提示,从mysql的二进包复制进到/lib64
cp mysql-8.0.28-linux-glibc2.12/lib/libmysqlclient.so.21 /lib64/
cp mysql-8.0.28-linux-glibc2.12/lib/libcrypto.so.1.1 /lib64/
cp mysql-8.0.28-linux-glibc2.12/lib/libssl.so.1.1 /lib64/
#开启端口
firewall-cmd --permanent --zone=public --add-port=10051/tcp
firewall-cmd --reload
3、zabbix agentd配置
客户端安装:
#客户端安装
tar zxvf zabbix-6.0.9.tar.gz
cd zabbix-6.0.9/
./configure --prefix=/usr/local/zabbix/ --enable-agent
make install
cd /usr/local/zabbix/etc/
vim zabbix_agentd.conf
[root@node1 etc]# cat zabbix_agentd.conf|grep -v '^#'|grep -v '^$'
LogFile=/tmp/zabbix_agentd.log
Server=192.168.58.136
StartAgents=3
ServerActive=192.168.58.136
Hostname=192.168.58.135
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1
[root@node1 etc]# cat zabbix_agentd.conf.d/memory.conf |grep -v '^#'|grep -v '^$'
UserParameter=memory.usage[*],/usr/bin/cat /proc/meminfo|awk 'BEGIN{IGNORECASE=1}/^$1/{print $$2}'
#开启端口
firewall-cmd --permanent --zone=public --add-port=10050/tcp
firewall-cmd --reload
#开启服务
/usr/local/zabbix/sbin/zabbix_agent -c /usr/local/zabbix/etc/zabbix_agent.conf
停止:
ps -ef|grep zabbix|awk '{cmd="kill -9 "$2;system(cmd)}'