zabbix源码安装
[TOC]
1、基础配置
- 软件版本
软件名称 | 推荐版本 | 备注 |
---|---|---|
os | centos 7.9 x64 | 示例ip为192.168.4.193 |
zabbix | zabbix 6.0.6 | |
php | php 8.0.20 | |
nginx | nginx 1.20.1 | |
mysql | mysql 8.0.20 | zabbix-6.x不支持mysql-5.7 |
- 配置 iso.sqlfans.cn 本地下载,加快下载速度
cat /etc/resolv.conf | grep 114 || echo "nameserver 114.114.114.114" >> /etc/resolv.conf
#cat /etc/hosts | grep iso.sqlfans.cn || echo "192.168.20.165 iso.sqlfans.cn" >> /etc/hosts
curl http://iso.sqlfans.cn/123.html
- 安装基础依赖包
yum install -y lrzsz wget telnet net-tools ntpdate
- 修改时区
sudo timedatectl set-timezone Asia/Shanghai
ll /etc/localtime
- iptables设置
iptables -A INPUT -p tcp --dport 10050:10051 -j ACCEPT
iptables -A INPUT -p udp --dport 10050:10051 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
- 关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
2、安装mysql
- 安装mysql
cd /opt
wget -c http://iso.sqlfans.cn/mysql/percona-server-8.0.32-24.tar.gz
wget -c http://iso.sqlfans.cn/mysql/config/8.0/my_innodb.cnf
wget -c http://iso.sqlfans.cn/mysql/install_percona_8032.sh
bash install_percona_8032.sh /opt /data 3306
- 创建zabbix数据库(注意zabbix字符集)
#mysql -uroot -p -S /tmp/mysql_3306.sock -e"drop database if exists zabbix;"
mysql -uroot -p -S /tmp/mysql_3306.sock -e"create database if not exists zabbix charset utf8 collate utf8_bin;"
mysql -uroot -p -S /tmp/mysql_3306.sock -e"create user 'user_zabbix'@'%' identified with mysql_native_password by 'VuLdP4Jt@9X3waGv';"
mysql -uroot -p -S /tmp/mysql_3306.sock -e"grant all privileges on zabbix.* to 'user_zabbix'@'%';"
mysql -uroot -p -S /tmp/mysql_3306.sock -e"flush privileges;"
mysql -uroot -p -S /tmp/mysql_3306.sock -e"select host,user,plugin,account_locked from mysql.user;"
- 导入数据库表(一定要按顺序导入)
cd /opt/
wget -c http://iso.sqlfans.cn/linux/zabbix/zabbix-6.0.6.tar.gz
tar xvf zabbix-6.0.6.tar.gz
time mysql -uroot -p -S /tmp/mysql_3306.sock zabbix < /opt/zabbix-6.0.6/database/mysql/schema.sql
time mysql -uroot -p -S /tmp/mysql_3306.sock zabbix < /opt/zabbix-6.0.6/database/mysql/images.sql
time mysql -uroot -p -S /tmp/mysql_3306.sock zabbix < /opt/zabbix-6.0.6/database/mysql/data.sql
3、安装nginx
- nginx安装
cd /opt
wget -c http://iso.sqlfans.cn/linux/zlib-1.2.11.tar.gz
wget -c http://iso.sqlfans.cn/linux/pcre-8.44.tar.gz
wget -c http://iso.sqlfans.cn/linux/openssl-1.1.1g.tar.gz
wget -c http://iso.sqlfans.cn/linux/nginx-1.20.1.tar.gz
wget -c http://iso.sqlfans.cn/linux/nginx_openssl_conf.conf
wget -c http://iso.sqlfans.cn/linux/install_nginx_1250.sh
bash /opt/install_nginx_1250.sh
4、安装php
- 安装php
yum install -y curl curl-devel bzip2 bzip2-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel pcre-devel sqlite-devel openssl openssl-devel
yum install -y http://iso.sqlfans.cn/php/oniguruma-6.8.2-2.el7.x86_64.rpm
yum install -y http://iso.sqlfans.cn/php/oniguruma-devel-6.8.2-2.el7.x86_64.rpm
cd /opt/
wget -c http://iso.sqlfans.cn/php/php-8.0.20.tar.gz
tar -zxf php-8.0.20.tar.gz
cd /opt/php-8.0.20/
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --enable-gd --enable-mbstring --enable-calendar \
--with-jpeg --with-freetype --with-libdir=lib64 --with-openssl --with-gettext --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --enable-mysqlnd --enable-dom --enable-xml --enable-fpm --enable-bcmath
[ $? -eq 0 ] && make -j 4 && make install
- 配置环境变量
echo 'export PATH=$PATH:/usr/local/php/bin' >> /etc/bashrc
source /etc/bashrc
php --version
- 查看插件是否支持(1表示支持)
/usr/local/php/bin/php -r 'print_r(gd_info());'
/usr/local/php/bin/php -r 'phpinfo();' | grep enabled | egrep "(^GD|^OpenSSL|^JPEG|^PNG|^FreeType|^mysql)"
- 修改php配置并启动fastcgi,确认9000端口已启用
\cp /opt/php-8.0.20/php.ini-production /usr/local/php/etc/php.ini
\cp /opt/php-8.0.20/sapi/fpm/php-fpm.conf /usr/local/php/etc/
\cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
sed -i '/^max_execution_time/c max_execution_time=300' /usr/local/php/etc/php.ini
sed -i '/^max_input_time/c max_input_time=300' /usr/local/php/etc/php.ini
sed -i '/^memory_limit/c memory_limit=128M' /usr/local/php/etc/php.ini
sed -i '/^post_max_size/c post_max_size=32M' /usr/local/php/etc/php.ini
sed -i '/^upload_max_filesize/c upload_max_filesize=2M' /usr/local/php/etc/php.ini
sed -i "s/;date.timezone/date.timezone/" /usr/local/php/etc/php.ini
sed -i '/^date.timezone/c date.timezone=Asia/Shanghai' /usr/local/php/etc/php.ini
sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/" /usr/local/php/etc/php.ini
cat /usr/local/php/etc/php.ini | egrep "(max_execution_time|^max_input_time|memory_limit|post_max_size|upload_max_filesize|^date.timezone|mbstring.func_overload|^cgi.fix_pathinfo)"
- 配置php-fpm服务
cp /opt/php-8.0.20/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
/etc/init.d/php-fpm start
chkconfig --add php-fpm
chkconfig --list php-fpm
service php-fpm restart
netstat -lnpt | grep 9000
5、安装zabbix
安装zabbix
- 安装zabbix依赖程序
yum install -y gcc automake autoconf libtool make curl curl-devel libssh2 libssh2-devel net-snmp net-snmp-devel mysql-devel
yum install -y openldap openldap-devel OpenIPMI OpenIPMI-devel unixODBC unixODBC-devel libevent-devel
- 增加zabbix用户和组
groupadd zabbix
useradd -g zabbix -m zabbix -s /usr/sbin/nologin
- 安装zabbix服务端
cd /opt
wget -c http://iso.sqlfans.cn/linux/zabbix/zabbix-6.0.6.tar.gz
tar -zxf zabbix-6.0.6.tar.gz
cd zabbix-6.0.6
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --with-openipmi --with-ldap --with-ssh2 --enable-ipv6
[ $? -eq 0 ] && make -j 4 && make install
- 检查版本安装
/usr/local/zabbix/sbin/zabbix_server --version | grep zabbix_server
/usr/local/zabbix/sbin/zabbix_agentd --version | grep zabbix_agentd
配置zabbix
- 设置软件环境变量
cd /opt
wget -c http://iso.sqlfans.cn/linux/zabbix/func_gcc_program_set_env.sh
source func_gcc_program_set_env.sh
func_gcc_program_set_env /usr/local/zabbix "zabbix"
- 修改zabbix配置文件
mkdir -p /data/logs/zabbix
chown -R zabbix.zabbix /usr/local/zabbix
chown -R zabbix.zabbix /data/logs/zabbix
mv /usr/local/zabbix/etc/zabbix_server.conf /usr/local/zabbix/etc/zabbix_server.conf.$(date +%Y%m%d%H%M%S)
cat > /usr/local/zabbix/etc/zabbix_server.conf <<EOF
ListenPort=10051
LogFile=/data/logs/zabbix/zabbix_server.log
LogFileSize=100
PidFile=/tmp/zabbix_server.pid
DBHost=192.168.4.193
DBName=zabbix
DBUser=user_zabbix
DBPassword=VuLdP4Jt@9X3waGv
DBPort=3306
StartPollers=20
StartTrappers=20
StartPingers=4
StartDiscoverers=4
CacheSize=256M
StartDBSyncers=16
HistoryCacheSize=64M
TrendCacheSize=8M
ValueCacheSize=16M
Timeout=10
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
ExternalScripts=/usr/local/zabbix/share/zabbix/externalscripts
LogSlowQueries=3000
EOF
- 确认一下配置
cat /usr/local/zabbix/etc/zabbix_server.conf | grep -n ^[^#]
cat /usr/local/zabbix/etc/zabbix_agentd.conf | grep -n ^[^#]
cat /usr/local/zabbix/etc/zabbix_proxy.conf | grep -n ^[^#]
- 拷贝启动脚本
mkdir -p /usr/local/sbin
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
\cp -r /opt/zabbix-6.0.6/misc/init.d/fedora/core5/* /etc/init.d/
chmod +x /etc/init.d/zabbix_*
- 配置zabbix server服务,默认端口10051
chkconfig --add zabbix_server
chkconfig --list zabbix_server
chkconfig zabbix_server on
chkconfig --list zabbix_server
service zabbix_server start
service zabbix_server restart
#tail -n20 /data/logs/zabbix/zabbix_server.log
- 配置zabbix agent服务,默认端口10050
chkconfig --add zabbix_agentd
chkconfig --list zabbix_agentd
chkconfig zabbix_agentd on
chkconfig --list zabbix_agentd
service zabbix_agentd start
service zabbix_agentd restart
#tail -n20 /tmp/zabbix_agentd.log
netstat -nltp | grep 'zabbix' #.检查端口
- 拷贝web站点,修改nginx配置,并启动进程(以nobody用户启动)
mkdir -p /data/logs/nginx
mkdir -p /data/wwwroot/zabbix
\cp -r /opt/zabbix-6.0.6/ui/* /data/wwwroot/zabbix/
mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.$(date +%Y%m%d%H%M%S)
curl http://iso.sqlfans.cn/linux/zabbix/nginx.conf > /usr/local/nginx/conf/nginx.conf
chown -R zabbix.zabbix /data/wwwroot/zabbix
chmod 777 /data/wwwroot/zabbix/conf
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
#tail -n20 /data/logs/nginx/error.log
netstat -nltp | grep 'zabbix' #.检查端口
在线配置zabbix
- 浏览器打开
http://192.168.4.193/zabbix
Step1:欢迎界面,下一步;
Step2:php需求检查,必须全部通过;
Step3:mysql配置:输入mysql的连接信息;★不要勾选 Database TLS encryption
Step4:settings信息:Zabbix server name输入:Zabbix
Step5:zabbix安装前信息列表,下一步;
Step6:安装完成。默认用户名:Admin,密码:zabbix
x.重来一遍
- 清理nginx
/usr/local/nginx/sbin/nginx -s stop
rm -rf /usr/local/nginx
userdel -r nginx 2> /dev/null
sed -i '/nginx/d' /etc/rc.local
- 清理mysql
ps -ef | grep mysql | grep -v grep | awk '{print $2}' | xargs kill -9 2> /dev/null
userdel -r mysql 2> /dev/null
rm -f /opt/install_percona*.sh
rm -f /opt/my_innodb.cnf
rm -rf /opt/mysql
rm -rf /data/mysql_*
sed -i '/mysql/d' /etc/rc.local
- 清理zabbix
ps aux | grep zabbix | grep -v grep | awk '{print $2}' | xargs kill -9 2> /dev/null
rm -rf /data/{logs,zabbix}
rm -rf /usr/local/zabbix
rm -f /usr/local/bin/zabbix*
rm -f /usr/local/sbin/zabbix*
rm -f /etc/init.d/zabbix*
rm -f /tmp/zabbix*
userdel -r zabbix 2> /dev/null
sed -i '/zabbix/d' /etc/rc.local