安装要求 硬件选型 内存和磁盘:
Zabbix 运行需要物理内存和磁盘空间。如果刚接触 Zabbix,128 MB 的物理内存和 256 MB 的可用磁盘空间可能是一个很好的起点。 然而,所需的内存和磁盘空间显然取决于被监控的主机数量和配置参数。 如果您计划调整参数以保留较长的历史数据,那么您应该考虑至少有几 GB 磁盘空间,以便有足够的磁盘空间将历史数据存储在数据库中。
每个 Zabbix 守护程序进程都需要与数据库服务器建立多个连接。 为连接分配的内存量取决于数据库引擎的配置。
CPU Zabbix,尤其是 Zabbix 数据库可能需要大量 CPU 资源,该具体取决于被监控参数的数量和所选的数据库引擎。
其他硬件 如果需要启用短信(SMS)通知功能,需要串行通讯口(serial communication port)和串行GSM调制解调器(serial GSM modem)。USB转串行转接器也同样可以工作。
硬件资源配置参考 下表提供了几个硬件配置参考:
规模
平台
CPU/内存
数据库
受监控的主机数量
小型
CentOS
Virtual Appliance
MySQL InnoDB
100
中型
CentOS
2 CPU cores/2GB
MySQL
InnoDB
大型
RedHat Enterprise Linux
4 CPU cores/8GB
RAID10 MySQL InnoDB 或 PostgreSQL
>1000
极大型
RedHat Enterprise Linux
8 CPU cores/16GB
Fast RAID10 MySQL InnoDB 或 PostgreSQL
>10000
环境准备:
服务
版本
安装方法
zabbix
4.4.1
源码编译安装
MySQL
5.7
二进制安装
PHP
7.3.5
源码编译安装
Nginx
1.16.1
编译安装
MySQL二进制安装 参见: https://cakepanit.com/forward/a7fae6f0.html
配置文件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 vim /data/mysql_3306/my.cnf [mysqld] basedir=/application/mysql datadir=/data/mysql_3306/data socket=/tmp/mysql.sock log-error=/data/mysql_3306/mysql.log log_bin=/data/binlog/mysql-bin binlog_format=row skip-name-resolve server-id=52 gtid-mode=on enforce-gtid-consistency=true log-slave-updates=1 relay_log_purge=0 max_connections=1024 back_log=128 wait_timeout=60 interactive_timeout=7200 key_buffer_size=16M query_cache_size=64M query_cache_type=1 query_cache_limit=50M max_connect_errors=20 sort_buffer_size=2M max_allowed_packet=32M join_buffer_size=2M thread_cache_size=200 innodb_buffer_pool_size=1024M innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=32M innodb_log_file_size=128M innodb_log_files_in_group=3 binlog_cache_size=2M max_binlog_cache_size=8M max_binlog_size=512M expire_logs_days=7 read_buffer_size=2M read_rnd_buffer_size=2M bulk_insert_buffer_size=8M [client] socket=/tmp/mysql.sock
加载MySQL数据库函数库/etc/ld.so.conf 1 2 3 4 5 6 7 8 9 echo "/application/mysql-5.7.26-linux-glibc2.12-x86_64/lib/" >> /etc/ld.so.conf.d/mariadb-x86_64.confldconfig //重建动态链接库缓存 [root@db01 ~] [root@db01 ~] [root@db01 ~] [root@db01 ~] libmysqlclient.so.20 (libc6,x86-64) => /application/mysql-5.7.26-linux-glibc2.12-x86_64/lib/libmysqlclient.so.20
创建zabbix库,并授权 1 2 3 create database zabbix default charset utf8mb4; grant all on zabbix.* to 'zabbix' @'127.0.0.1' identified by '123123a' ; FLUSH PRIVILEGES;
Nginx编译安装 参见 https://cakepanit.com/forward/bac240f7.html#10-编译安装nginx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 systemd启动: [root@db01 ~] cat >/lib/systemd/system/nginx.service<<'EOF' [Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/application/nginx/logs/nginx.pid ExecStartPre=/application/nginx/sbin/nginx -t ExecStart=/application/nginx/sbin/nginx ExecReload=/application/nginx/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target EOF
配置nginx 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 vim /application/nginx/conf/nginx.conf http{ include conf.d/*.conf; 加入 } mkdir -p /application/nginx/conf/conf.d/cat > /application/nginx/conf/conf.d/zabbix.conf <<'EOF' server { listen 80; server_name 10.0.0.51; location / { root html/zabbix; index index.html index.htm index.php; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html/zabbix; } location ~ \.php$ { root html/zabbix; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ; include /application/nginx/conf/fastcgi_params; } } EOF chown -R www.www /application/nginx/
PHP7.3编译安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 安装php依赖: yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel -y 检查: rpm -qa zlib-devel libxml2-devel libjpeg-turbo-devel libiconv-devel rpm -qa freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel id wwwuid=1001(www) gid=1001(www) 组=1001(www) 补充依赖: cd /server/tools/wget http://www.mirrorservice.org/pub/gnu/libiconv/libiconv-1.16.tar.gz tar -xf libiconv-1.16.tar.gz cd libiconv-1.16/./configure --prefix=/application/libiconv make && make install yum install libmcrypt-devel -y yum install mhash -y yum install mcrypt -y 编译php73 //用户为www cd /server/toolswget http://mirrors.sohu.com/php/php-7.3.5.tar.gz tar -xf php-7.3.5.tar.gz cd php-7.3.5/./configure \ --prefix=/application/php-7.3.5 \ --enable-mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-iconv-dir=/application/libiconv \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --with-gettext \ --enable-xml \ --disable-rpath \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --with-curl \ --enable-mbregex \ --enable-fpm \ --enable-mbstring \ --with-gd \ --with-openssl \ --with-mhash \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-soap \ --enable-short-tags \ --enable-static \ --with-xsl \ --with-fpm-user=www \ --with-fpm-group=www \ --enable-ftp \ --enable-opcache=no [root@db01 /server/tools/php-7.3.5] 0 [root@db01 /server/tools/php-7.3.5] [root@db01 /server/tools/php-7.3.5] 0
配置php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [root@db01 /application] lrwxrwxrwx 1 root root 23 5月 19 14:13 php -> /application/php-7.3.5/ 配置php.ini(php解析器配置文件): [root@db01 /server/tools/php-7.3.5] 配置PHP FPM: [root@db01 /application/php/etc] [root@db01 /application/php/etc] [root@db01 /application/php/etc/php-fpm.d] sed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' /application/php/etc/php-fpm.conf 启动测试: [root@db01 ~] [root@db01 ~] Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 29265/php-fpm: mast [root@db01 ~]
systemd启动php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 cat > /etc/systemd/system/php-fpm.service<<'EOF' [Unit] Description=The PHP FastCGI Process Manager After=syslog.target network.target [Service] Type=forking User=www Group=www PermissionsStartOnly=true ExecStartPre=/usr/bin/chown www.www -R /application/php/ ExecStart=/application/php/sbin/php-fpm --fpm-config /application/php/etc/php-fpm.conf ExecStop=/bin/kill -INT $MAINPID [Install] WantedBy=multi-user.target EOF [root@db01 ~] [root@db01 ~] [root@db01 ~] PHP 7.3.5 (cli) (built: May 19 2020 14:08:45) ( NTS )
编译安装zabbix 创建zabbix用户并安装依赖 1 2 3 4 5 6 useradd -s /sbin/nologin zabbix -M yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI libevent-devel cd /server/toolswget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.4.1/zabbix-4.4.1.tar.gz
编译安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 tar -xf zabbix-4.4.1.tar.gz cd cd zabbix-4.4.1/./configure \ --prefix=/application/zabbix \ --enable-server \ --enable-agent \ --with-mysql=/application/mysql/bin/mysql_config \ --with-net-snmp \ --with-libxml2 \ --with-libcurl 出现这个代表预编译成功: *********************************************************** * Now run 'make install' * * * * Thank you for using Zabbix! * * <http://www.zabbix.com> * *********************************************************** 预编译说明: --prefix= //安装到指定位置 --enable-server //安装zabbix server --enable-agent //安装zabbix agent --with-mysql= //指定mysql配置路径 make && make install 官方给的解释:对于虚拟机监视--with-libcurl和--with-libxml2配置选项是必需的; --with-libcurlSMTP身份验证和web.page.*Zabbix代理项也是必需的。
配置zabbix_server 1 2 3 4 5 6 7 8 9 10 11 echo "export PATH=$PATH :/application/zabbix/sbin/:/application/zabbix/bin/" >>/etc/bashrc[root@db01 ~] [root@db01 ~] zabbix_agentd zabbix_get zabbix_sender zabbix_server chown -R zabbix.zabbix /application/zabbix/[root@db01 ~] zabbix_server (Zabbix) 4.4.1 Revision 8870606e6a 28 October 2019, compilation time: May 19 2020 16:00:18
导入zabbix的sql脚本 1 2 3 mysql -uzabbix -p123123a -h127.0.0.1 zabbix < /server/tools/zabbix-4.4.1/database/mysql/schema.sql mysql -uzabbix -p123123a -h127.0.0.1 zabbix < /server/tools/zabbix-4.4.1/database/mysql/images.sql mysql -uzabbix -p123123a -h127.0.0.1 zabbix < /server/tools/zabbix-4.4.1/database/mysql/data.sql
配置zabbix_server 1 2 3 4 5 6 7 8 9 10 11 12 echo ' LogFile=/application/zabbix/zabbix_server.log //zabbix日志文件 DBHost=127.0.0.1 DBName=zabbix DBUser=zabbix DBPassword=123123a DBPort=3306 Timeout=30 AlertScriptsPath=/application/zabbix/alertscripts //邮件微信告警 ExternalScripts=/application/zabbix/externalscripts LogSlowQueries=3000 //慢查询相关 ' > /application/zabbix/etc/zabbix_server.conf
启动zabbix_server 1 2 3 4 5 6 [root@db01 ~] [root@db01 ~] [root@db01 ~] tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 27647/zabbix_agentd tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 7221/zabbix_server [root@db01 ~]
配置zabbix_web 1 2 3 [root@db01 ~] [root@db01 ~] [root@db01 ~]
访问zabbix_web http://10.0.0.51/
根据提示优化告警: 1 2 3 4 5 sed -i 's#post_max_size = 8M#post_max_size = 32M#g' /application/php/lib/php.ini sed -i 's#max_execution_time = 30#max_execution_time = 300#g' /application/php/lib/php.ini sed -i 's#max_input_time = 60#max_input_time = 300#g' /application/php/lib/php.ini sed -i 's#;date.timezone =#date.timezone = Asia/Shanghai#g' /application/php/lib/php.ini systemctl restart php-fpm
继续安装:
登陆zabbix_web: **默认账号:**Admin **默认密码:**zabbix
Zabbix-LNMP环境下zabbix4.4的编译安装
转载前请阅读本站 版权协议 ,文章著作权归 饼铛 所有,转载请注明出处。