Linux搭建Zabbix监控平台

Zabbix是一款专业的开源网络监控平台,轻松监控各种应用服务、硬件资源使用率、网络设备等等状态,并提供灵活的通知机制以让系统管理员快速定位解决存在的各种问题。

实验环境

操作系统:CentOS 7.7

主机地址:10.0.0.21

主机名称:node1

Zabbix:4.4.4

Nginx:1.16.1

MySQL:5.7.28

PHP:7.4.1

Zlib:1.2.11

Pcre:8.43

OpenSSL:1.0.2u

Ngx_lua_waf:1.0.3

Ngx_devel_kit:0.3.1

Luajit:2.1

Lua-resty-core:0.1.17

Lua-resty-lrucache:0.09

Lua-nginx-module:0.10.15

安装篇

第一步 安装依赖包

  1. [root@wanghualang ~]# yum -y install epel-release       
  2. [root@wanghualang ~]# yum -y install gcc gcc-c++ autoconf automake wget vim make cmake openssl-devel bison-devel ncurses-devel libsqlite3x-devel oniguruma-devel curl-devel libxml2-devel libjpeg-devel libpng-devel freetype-devel libicu-devel libsodium-devel unixODBC-devel net-snmp-devel libssh2-devel libevent-devel OpenIPMI-devel openldap-devel java-11-openjdk-devel

第二步 下载、解压源码包

  1. [root@wanghualang ~]# cd /usr/local/src/      
  2. [root@wanghualang src]# wget --no-check-certificate http://zlib.net/zlib-1.2.11.tar.gz    
  3. [root@wanghualang src]# wget --no-check-certificate https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz    
  4. [root@wanghualang src]# wget --no-check-certificate http://nginx.org/download/nginx-1.16.1.tar.gz    
  5. [root@wanghualang src]# wget --no-check-certificate https://www.php.net/distributions/php-7.4.1.tar.gz    
  6. [root@wanghualang src]# wget --no-check-certificate https://www.openssl.org/source/openssl-1.0.2u.tar.gz    
  7. [root@wanghualang src]# wget --no-check-certificate https://github.com/whsir/ngx_lua_waf/archive/v1.0.3.tar.gz      
  8. [root@wanghualang src]# wget --no-check-certificate https://github.com/simplresty/ngx_devel_kit/archive/v0.3.1.tar.gz      
  9. [root@wanghualang src]# wget --no-check-certificate https://github.com/openresty/luajit2/archive/v2.1-20190912.tar.gz      
  10. [root@wanghualang src]# wget --no-check-certificate https://github.com/openresty/lua-resty-core/archive/v0.1.17.tar.gz      
  11. [root@wanghualang src]# wget --no-check-certificate https://github.com/openresty/lua-resty-lrucache/archive/v0.09.tar.gz      
  12. [root@wanghualang src]# wget --no-check-certificate https://github.com/openresty/lua-nginx-module/archive/v0.10.15.tar.gz      
  13. [root@wanghualang src]# wget --no-check-certificate https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz    
  14. [root@wanghualang src]# wget --no-check-certificate -O zabbix-4.4.4.tar.gz https://github.com/zabbix/zabbix/archive/4.4.4.tar.gz
  15. [root@wanghualang src]# tar xzf pcre-8.43.tar.gz    
  16. [root@wanghualang src]# tar xzf php-7.4.1.tar.gz    
  17. [root@wanghualang src]# tar xzf zlib-1.2.11.tar.gz   
  18. [root@wanghualang src]# tar xzf zabbix-4.4.4.tar.gz  
  19. [root@wanghualang src]# tar xzf nginx-1.16.1.tar.gz    
  20. [root@wanghualang src]# tar xzf openssl-1.0.2u.tar.gz    
  21. [root@wanghualang src]# tar xzf ngx_lua_waf-1.0.3.tar.gz      
  22. [root@wanghualang src]# tar xzf ngx_devel_kit-0.3.1.tar.gz      
  23. [root@wanghualang src]# tar xzf mysql-boost-5.7.28.tar.gz    
  24. [root@wanghualang src]# tar xzf luajit2-2.1-20190912.tar.gz      
  25. [root@wanghualang src]# tar xzf lua-resty-core-0.1.17.tar.gz      
  26. [root@wanghualang src]# tar xzf lua-resty-lrucache-0.09.tar.gz    
  27. [root@wanghualang src]# tar xzf lua-nginx-module-0.10.15.tar.gz  

第三步 编译安装luajit2、Lua-resty-core、Lua-resty-lrucache

  1. [root@wanghualang ~]# cd /usr/local/src/luajit2-2.1-20190912    
  2. [root@wanghualang luajit2-2.1-20190912]# make    
  3. [root@wanghualang luajit2-2.1-20190912]# make install  

  1. [root@wanghualang ~]# cd /usr/local/src/lua-resty-core-0.1.17    
  2. [root@wanghualang lua-resty-core-0.1.17]# make install  

  1. [root@wanghualang ~]# cd /usr/local/src/lua-resty-lrucache-0.09    
  2. [root@wanghualang lua-resty-lrucache-0.09]# make install  

第四步 配置luajit2环境变量

  1. [root@wanghualang ~]# export LUAJIT_LIB=/usr/local/lib    
  2. [root@wanghualang ~]# export LUAJIT_INC=/usr/local/include/luajit-2.1   

第五步 新建用户组、用户

  1. [root@wanghualang ~]# groupadd nginx          
  2. [root@wanghualang ~]# groupadd mysql    
  3. [root@wanghualang ~]# groupadd zabbix      
  4. [root@wanghualang ~]# useradd nginx -M -g nginx -s /sbin/nologin        
  5. [root@wanghualang ~]# useradd mysql -M -g mysql -s /sbin/nologin  
  6. [root@wanghualang ~]# useradd zabbix -M -g zabbix -s /sbin/nologin  

第六步 编译安装Nginx

  1. [root@wanghualang ~]# cd /usr/local/src/nginx-1.16.1            
  2. [root@wanghualang nginx-1.16.1]# ./configure \
  3. --user=nginx \
  4. --group=nginx \
  5. --prefix=/usr/local/nginx \
  6. --with-pcre=/usr/local/src/pcre-8.43 \
  7. --with-openssl=/usr/local/src/openssl-1.0.2u \
  8. --with-zlib=/usr/local/src/zlib-1.2.11 \
  9. --with-http_gzip_static_module \
  10. --with-http_dav_module \
  11. --with-http_stub_status_module \
  12. --with-http_addition_module \
  13. --with-http_sub_module \
  14. --with-http_flv_module \
  15. --with-http_mp4_module \
  16. --with-http_ssl_module  \
  17. --with-http_v2_module  \
  18. --with-ld-opt=-Wl,-rpath,$LUAJIT_LIB  \
  19. --add-module=/usr/local/src/ngx_devel_kit-0.3.1  \
  20. --add-module=/usr/local/src/lua-nginx-module-0.10.15
  21. [root@wanghualang nginx-1.16.1]# make    
  22. [root@wanghualang nginx-1.16.1]# make install  

第七步 配置启动服务脚本、开机启动

  1. [root@wanghualang ~]# vim /etc/init.d/nginx      
  2.     
  3. #!/bin/bash        
  4. #chkconfig: 2345 55 25        
  5.         
  6. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin        
  7. NAME=nginx        
  8. NGINX_BIN=/usr/local/nginx/sbin/$NAME        
  9. CONFIGFILE=/usr/local/nginx/conf/$NAME.conf        
  10. PIDFILE=/usr/local/nginx/logs/$NAME.pid      
  11.       
  12. if [ -s /bin/ss ]; then        
  13.     StatBin=/bin/ss        
  14. else        
  15.     StatBin=/bin/netstat        
  16. fi        
  17.         
  18.         
  19. case "$1" in        
  20.     start)        
  21.         echo -n "Starting $NAME... "        
  22.         
  23.         if $StatBin -tnpl | grep -q nginx;then        
  24.             echo "$NAME (pid `pidof $NAME`) already running."        
  25.             exit 1        
  26.         fi        
  27.         
  28.         $NGINX_BIN -c $CONFIGFILE        
  29.         
  30.         if [ "$?" != 0 ] ; then        
  31.             echo " failed"        
  32.             exit 1        
  33.         else        
  34.             echo " done"        
  35.         fi        
  36.         ;;        
  37.         
  38.     stop)        
  39.         echo -n "Stoping $NAME... "        
  40.         
  41.         if ! $StatBin -tnpl | grep -q nginx; then        
  42.             echo "$NAME is not running."        
  43.             exit 1        
  44.         fi        
  45.         
  46.         $NGINX_BIN -s stop        
  47.         
  48.         if [ "$?" != 0 ] ; then        
  49.             echo " failed. Use force-quit"        
  50.             exit 1        
  51.         else        
  52.             echo " done"        
  53.         fi        
  54.         ;;        
  55.         
  56.     status)        
  57.         if $StatBin -tnpl | grep -q nginx; then        
  58.             PID=`pidof nginx`        
  59.             echo "$NAME (pid $PID) is running..."        
  60.         else        
  61.             echo "$NAME is stopped."        
  62.             exit 0        
  63.         fi        
  64.         ;;        
  65.         
  66.     force-quit|kill)        
  67.         echo -n "Terminating $NAME... "        
  68.         
  69.         if ! $StatBin -tnpl | grep -q nginx; then        
  70.             echo "$NAME is is stopped."        
  71.             exit 1        
  72.         fi        
  73.         
  74.         kill `pidof $NAME`        
  75.         
  76.         if [ "$?" != 0 ] ; then        
  77.             echo " failed"        
  78.             exit 1        
  79.         else        
  80.             echo " done"        
  81.         fi        
  82.         ;;        
  83.         
  84.     restart)        
  85.         $0 stop        
  86.         sleep 1        
  87.         $0 start        
  88.         ;;        
  89.         
  90.     reload)        
  91.         echo -n "Reload service $NAME... "        
  92.         
  93.         if $StatBin -tnpl | grep -q nginx; then        
  94.             $NGINX_BIN -s reload        
  95.             echo " done"        
  96.         else        
  97.             echo "$NAME is not running, can't reload."        
  98.             exit 1        
  99.         fi        
  100.         ;;        
  101.         
  102.     configtest)        
  103.         echo -n "Test $NAME configure files... "        
  104.         
  105.         $NGINX_BIN -t        
  106.         ;;        
  107.         
  108.     *)        
  109.         echo "Usage: $0 {start|stop|restart|reload|status|configtest|force-quit|kill}"        
  110.         exit 1        
  111.         ;;        
  112.         
  113. esac  

  1. [root@wanghualang ~]# chmod +x /etc/init.d/nginx        
  2. [root@wanghualang ~]# chkconfig --add nginx        
  3. [root@wanghualang ~]# chkconfig nginx on  

第八步 编译安装MySQL(按需添加更多功能模块)

  1. [root@wanghualang ~]# cd /usr/local/src/mysql-5.7.28    
  2. [root@wanghualang mysql-5.7.28]# cmake  \
  3. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \
  4. -DSYSCONFDIR=/etc  \
  5. -DMYSQL_TCP_PORT=3306  \
  6. -DEXTRA_CHARSETS=all  \
  7. -DDEFAULT_CHARSET=utf8mb4  \
  8. -DDEFAULT_COLLATION=utf8mb4_general_ci  \
  9. -DWITH_MYISAM_STORAGE_ENGINE=1  \
  10. -DWITH_INNOBASE_STORAGE_ENGINE=1  \
  11. -DWITH_PARTITION_STORAGE_ENGINE=1  \
  12. -DWITH_FEDERATED_STORAGE_ENGINE=1  \
  13. -DWITH_EMBEDDED_SERVER=1  \
  14. -DENABLED_LOCAL_INFILE=1  \
  15. -DWITH_BOOST=/usr/local/src/mysql-5.7.28/boost/boost_1_59_0
  16. [root@wanghualang mysql-5.7.28]# make    
  17. [root@wanghualang mysql-5.7.28]# make install  

第九步 优化数据库配置(4G内存优化方案,仅供参考)

  1. [root@wanghualang ~]# mv /etc/my.cnf /etc/my.cnf.bak       
  2. [root@wanghualang ~]# vim /etc/my.cnf          
  3.           
  4. [client]         
  5. port=3306          
  6. socket=/tmp/mysql.sock          
  7.         
  8. [mysql]          
  9. no-auto-rehash          
  10.           
  11. [mysqld]          
  12. port=3306          
  13. bind_address=127.0.0.1          
  14. binlog_cache_size=128K          
  15. thread_stack=256K          
  16. join_buffer_size=2048K          
  17. query_cache_type=1          
  18. max_heap_table_size=512M          
  19. pid-file=/tmp/mysql.pid          
  20. socket=/tmp/mysql.sock          
  21. datadir=/usr/local/mysql/data          
  22. skip-external-locking          
  23. performance_schema_max_table_instances=400          
  24. table_definition_cache=400          
  25. key_buffer_size=384M          
  26. max_allowed_packet=100G          
  27. table_open_cache=384          
  28. sort_buffer_size=1024K          
  29. net_buffer_length=8K          
  30. read_buffer_size=1024K          
  31. read_rnd_buffer_size=768K          
  32. myisam_sort_buffer_size=16M          
  33. thread_cache_size=128          
  34. query_cache_size=192M          
  35. tmp_table_size=512M          
  36. sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES          
  37. explicit_defaults_for_timestamp=true          
  38. #skip-networking          
  39. max_connections=300          
  40. max_connect_errors=100          
  41. open_files_limit=65535          
  42. #log-bin=mysql-bin          
  43. #binlog_format=mixed          
  44. server-id=1          
  45. expire_logs_days=10          
  46. slow_query_log=1          
  47. slow-query-log-file=/usr/local/mysql/data/mysql-slow.log          
  48. long_query_time=3          
  49. #log_queries_not_using_indexes=on          
  50. early-plugin-load=""          
  51. default_storage_engine=InnoDB          
  52. innodb_data_home_dir=/usr/local/mysql/data          
  53. innodb_data_file_path=ibdata1:10M:autoextend          
  54. innodb_log_group_home_dir=/usr/local/mysql/data          
  55. innodb_buffer_pool_size=512M          
  56. innodb_log_file_size=128M          
  57. innodb_log_buffer_size=32M          
  58. innodb_flush_log_at_trx_commit=1          
  59. innodb_lock_wait_timeout=120          
  60. innodb_max_dirty_pages_pct=90          
  61. innodb_read_io_threads=2          
  62. innodb_write_io_threads=2          
  63.           
  64. [mysqldump]          
  65. quick          
  66. max_allowed_packet=16M          
  67.           
  68. [myisamchk]          
  69. key_buffer_size=64M          
  70. sort_buffer_size=1M          
  71. read_buffer=2M          
  72. write_buffer=2M          
  73.           
  74. [mysqlhotcopy]          
  75. interactive-timeout  

第十步 修改MySQL数据库目录、配置文件权限

  1. [root@wanghualang ~]# chown mysql:mysql /etc/my.cnf        
  2. [root@wanghualang ~]# chown -R mysql:mysql /usr/local/mysql  

第十一步 配置MySQL数据库环境变量

  1. [root@wanghualang ~]# echo "export PATH="/usr/local/mysql/bin:$PATH">> /etc/profile          
  2. [root@wanghualang ~]# source /etc/profile  

第十二步 配置MySQL启动服务脚本、开机启动

  1. [root@wanghualang ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld        
  2. [root@wanghualang ~]# chmod +x /etc/init.d/mysqld          
  3. [root@wanghualang ~]# chkconfig --add mysqld          
  4. [root@wanghualang ~]# chkconfig mysqld on    

第十三步 初始化MySQL数据库

  1. [root@wanghualang ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

第十四步 编译安装PHP(按需添加更多功能模块)

  1. [root@wanghualang ~]# ln -s /usr/lib64/libldap* /usr/lib/
  2. [root@wanghualang ~]# cd /usr/local/src/php-7.4.1   
  3. [root@wanghualang php-7.4.1]# ./configure \
  4. --prefix=/usr/local/php \
  5. --with-config-file-path=/usr/local/php/etc  \
  6. --enable-mysqlnd  \
  7. --enable-xml  \
  8. --enable-bcmath  \
  9. --enable-shmop  \
  10. --enable-sysvsem  \
  11. --enable-inline-optimization  \
  12. --enable-mbregex  \
  13. --enable-mbstring  \
  14. --enable-intl  \
  15. --enable-ftp  \
  16. --enable-pcntl  \
  17. --enable-sockets  \
  18. --enable-soap  \
  19. --enable-opcache  \
  20. --enable-fpm  \
  21. --enable-gd  \
  22. --with-fpm-user=nginx  \
  23. --with-fpm-group=nginx  \
  24. --with-mysqli=mysqlnd  \
  25. --with-pdo-mysql=mysqlnd  \
  26. --with-iconv-dir  \
  27. --with-freetype  \
  28. --with-jpeg  \
  29. --with-zlib  \
  30. --with-libxml  \
  31. --with-curl  \
  32. --with-ldap  \
  33. --with-openssl  \
  34. --with-mhash  \
  35. --with-xmlrpc  \
  36. --with-gettext  \
  37. --with-sodium  \
  38. --disable-fileinfo  \
  39. --disable-rpath  \
  40. --disable-debug
  41. [root@wanghualang php-7.4.1]# sed -i '/^EXTRA_LIBS/s/$/ -llber/' /usr/local/src/php-7.4.1/Makefile
  42. [root@wanghualang php-7.4.1]# make
  43. [root@wanghualang php-7.4.1]# make install

第十五步 创建PHP配置文件、修改PHP配置文件(为Zabbix前端部署做必要的准备)

  1. [root@wanghualang ~]# cp /usr/local/src/php-7.4.1/php.ini-production /usr/local/php/etc/php.ini        
  2. [root@wanghualang ~]# cp /usr/local/src/php-7.4.1/sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf        
  3. [root@wanghualang ~]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf    
  4. [root@wanghualang ~]# sed -i 's/post_max_size = 8M/post_max_size = 16M/' /usr/local/php/etc/php.ini  
  5. [root@wanghualang ~]# sed -i 's/max_execution_time = 30/max_execution_time = 300/' /usr/local/php/etc/php.ini  
  6. [root@wanghualang ~]# sed -i 's/max_input_time = 60/max_input_time = 300/' /usr/local/php/etc/php.ini  
  7. [root@wanghualang ~]# sed -i 's/\;date\.timezone =/date\.timezone = \"Asia\/Shanghai\"/' /usr/local/php/etc/php.ini  

第十六步 配置PHP启动服务脚本、开机启动

  1. [root@wanghualang ~]# cp /usr/local/src/php-7.4.1/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm        
  2. [root@wanghualang ~]# chmod +x /etc/init.d/php-fpm        
  3. [root@wanghualang ~]# chkconfig --add php-fpm        
  4. [root@wanghualang ~]# chkconfig php-fpm on   

第十七步 编译安装Zabbix

  1. [root@wanghualang ~]# cd /usr/local/src/zabbix-4.4.4  
  2. [root@wanghualang zabbix-4.4.4]# ./configure  \
  3. --prefix=/usr/local/zabbix  \
  4. --enable-server  \
  5. --enable-agent  \
  6. --enable-java  \
  7. --with-ssh2  \
  8. --with-ldap  \
  9. --with-iconv  \
  10. --with-mysql  \
  11. --with-libcurl  \
  12. --with-libpcre  \
  13. --with-libxml2  \
  14. --with-openssl  \
  15. --with-unixodbc  \
  16. --with-net-snmp  \
  17. --with-openipmi
  18. [root@wanghualang zabbix-4.4.4]# make  
  19. [root@wanghualang zabbix-4.4.4]# make install  

第十八步 安装ngx_lua_waf防火墙

  1. [root@wanghualang ~]# mv /usr/local/src/ngx_lua_waf-1.0.3 /usr/local/nginx/conf/waf  

第十九步 创建Zabbix网站目录

  1. [root@wanghualang ~]# mv /usr/local/src/zabbix-4.4.4/frontends/php /usr/local/nginx/html/zabbix  
  2. [root@wanghualang ~]# chown -R nginx:nginx /usr/local/nginx/html/zabbix  

第二十步 配置Nginx

  1. [root@wanghualang ~]# mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak      
  2. [root@wanghualang ~]# vim /usr/local/nginx/conf/nginx.conf  
  3.     
  4. #运行用户        
  5. user nginx nginx;        
  6.         
  7. #工作进程        
  8. worker_processes auto;        
  9.         
  10. #最大文件打开数        
  11. worker_rlimit_nofile 51200;        
  12.         
  13. #进程PID        
  14. pid /usr/local/nginx/logs/nginx.pid;        
  15.         
  16. #错误日志        
  17. error_log /usr/local/nginx/logs/error.log crit;        
  18.         
  19. #工作模式及连接数上限        
  20. events {        
  21.   use epoll;        
  22.   worker_connections 51200;        
  23.   multi_accept on;        
  24. }        
  25.         
  26. http {        
  27.     
  28.   #配置ngx_lua_waf防火墙    
  29.   lua_package_path "/usr/local/lib/lua/?.lua;/usr/local/nginx/conf/waf/?.lua;;";    
  30.   lua_shared_dict limit 10m;    
  31.   init_by_lua_file /usr/local/nginx/conf/waf/init.lua;    
  32.   access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;    
  33.       
  34.   #加载虚拟主机配置文件        
  35.   include /usr/local/nginx/vhost/*.conf;        
  36.         
  37.   #文件扩展名与类型映射表        
  38.   include mime.types;        
  39.         
  40.   #默认文件类型        
  41.   default_type application/octet-stream;        
  42.         
  43.   #请求缓存        
  44.   server_names_hash_bucket_size 512;        
  45.   client_header_buffer_size 32k;        
  46.   large_client_header_buffers 4 32k;        
  47.   client_max_body_size 50m;        
  48.         
  49.   #高效传输模式        
  50.   sendfile on;        
  51.   tcp_nopush on;        
  52.   tcp_nodelay on;        
  53.         
  54.   #连接超时时间        
  55.   keepalive_timeout 60;        
  56.         
  57.   #FastCGI优化        
  58.   fastcgi_connect_timeout 300;        
  59.   fastcgi_send_timeout 300;        
  60.   fastcgi_read_timeout 300;        
  61.   fastcgi_buffer_size 64k;        
  62.   fastcgi_buffers 4 64k;        
  63.   fastcgi_busy_buffers_size 128k;        
  64.   fastcgi_temp_file_write_size 256k;        
  65.   fastcgi_intercept_errors on;        
  66.         
  67.   #开启GZIP压缩功能        
  68.   gzip on;        
  69.   gzip_min_length 1k;        
  70.   gzip_buffers 4 16k;        
  71.   gzip_http_version 1.1;        
  72.   gzip_comp_level 2;        
  73.   gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;        
  74.   gzip_vary on;        
  75.   gzip_proxied expired no-cache no-store private auth;        
  76.   gzip_disable "MSIE [1-6]\.";        
  77.         
  78.   #限制访问频率        
  79.   #limit_conn_zone $binary_remote_addr zone=perip:10m;        
  80.   #limit_conn_zone $server_name zone=perserver:10m;        
  81.         
  82.   #隐藏响应header和错误通知中的版本号        
  83.   server_tokens off;        
  84.   access_log off;        
  85. }  

第二十一步 配置Zabbix网站虚拟主机

  1. [root@wanghualang ~]# mkdir /usr/local/nginx/vhost  
  2. [root@wanghualang ~]# vim /usr/local/nginx/vhost/zabbix.conf    
  3.     
  4. server {        
  5.         
  6.   #监听端口        
  7.   listen 80;        
  8.         
  9.   #网站根目录        
  10.   root /usr/local/nginx/html/zabbix/;        
  11.         
  12.   #虚拟主机名称        
  13.   server_name 10.0.0.21;        
  14.         
  15.   #网站主页排序        
  16.   index index.php index.html index.htm default.php default.htm default.html;        
  17.         
  18.   #网站访问、错误日志        
  19.   access_log /usr/local/nginx/logs/zabbix.access.log;        
  20.   error_log /usr/local/nginx/logs/zabbix.error.log;        
  21.         
  22.   #流量限制(网站最大并发数500|单IP访问最大并发数50|每个请求流量上限1024KB)        
  23.   #limit_conn perserver 500;        
  24.   #limit_conn perip 50;        
  25.   #limit_rate 1024k;        
  26.           
  27.   #配置错误页面        
  28.   #error_page 404 /404.html;        
  29.   #error_page 500 502 503 504 /50x.html;        
  30.         
  31.   #禁止访问文件和目录        
  32.   location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md) {        
  33.     return 404;        
  34.   }        
  35.         
  36.   #配置资源防盗链        
  37.   location ~ .*\.(jpg|jpeg|gif|png|js|css)$ {        
  38.     expires 30d;        
  39.     access_log /dev/null;        
  40.     valid_referers none blocked 10.0.0.21;        
  41.     if ($invalid_referer) {        
  42.       return 404;        
  43.     }        
  44.   }        
  45.         
  46.   #配置图片资源缓存时间        
  47.   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {        
  48.     expires 30d;        
  49.     error_log off;        
  50.     access_log /dev/null;        
  51.   }        
  52.           
  53.   #设置样式资源缓存时间        
  54.   location ~ .*\.(js|css)?$ {        
  55.     expires 12h;        
  56.     error_log off;        
  57.     access_log /dev/null;        
  58.   }        
  59.         
  60.   #解析PHP        
  61.   location ~* \.php$ {        
  62.     fastcgi_index index.php;        
  63.     fastcgi_pass 127.0.0.1:9000;        
  64.     include fastcgi_params;        
  65.     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        
  66.     fastcgi_param SCRIPT_NAME $fastcgi_script_name;        
  67.   }        
  68. }   

第二十二步 创建Zabbix日志目录、相关目录

  1. [root@wanghualang ~]# mkdir /usr/local/zabbix/{log,run,tmp}  
  2. [root@wanghualang ~]# chown -R zabbix:zabbix /usr/local/zabbix   

第二十三步 配置Zabbix服务端

  1. [root@wanghualang ~]# mv /usr/local/zabbix/etc/zabbix_server.conf /usr/local/zabbix/etc/zabbix_server.conf.bak  
  2. [root@wanghualang ~]# vim /usr/local/zabbix/etc/zabbix_server.conf    
  3.     
  4. #监听IP地址    
  5. ListenIP=10.0.0.21    
  6.     
  7. #监听服务端口    
  8. ListenPort=10051    
  9.     
  10. #数据库主机    
  11. DBHost=127.0.0.1    
  12.     
  13. #数据库名称    
  14. DBName=zabbix    
  15.     
  16. #数据库用户    
  17. DBUser=zabbix    
  18.     
  19. #数据库密码    
  20. DBPassword=123456    
  21.     
  22. #数据库套接字    
  23. DBSocket=/tmp/mysql.sock    
  24.     
  25. #数据库端口    
  26. DBPort=3306    
  27.     
  28. #日志类型    
  29. LogType=file    
  30.     
  31. #日志文件    
  32. LogFile=/usr/local/zabbix/log/zabbix_server.log    
  33.     
  34. #日志大小    
  35. LogFileSize=0    
  36.     
  37. #日志等级    
  38. DebugLevel=3    
  39.     
  40. #PID文件    
  41. PidFile=/usr/local/zabbix/run/zabbix_server.pid    
  42.     
  43. #套接字目录    
  44. SocketDir=/usr/local/zabbix/tmp    
  45.     
  46. #监控项检测超时    
  47. Timeout=30    
  48.     
  49. #慢日志查询    
  50. LogSlowQueries=3000    
  51.     
  52. #告警脚本目录    
  53. AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts    
  54.     
  55. #扩展脚本目录    
  56. ExternalScripts=/usr/local/zabbix/share/zabbix/externalscripts    
  57.     
  58. #SNMPTrapperFile    
  59. SNMPTrapperFile=/usr/local/zabbix/log/snmptrap.log  

第二十四步 配置Zabbix客户端(可选)

  1. [root@wanghualang ~]# mv /usr/local/zabbix/etc/zabbix_agentd.conf /usr/local/zabbix/etc/zabbix_agentd.conf.bak  
  2. [root@wanghualang ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf    
  3.     
  4. #监控主机名    
  5. Hostname=node1    
  6.     
  7. #服务端IP    
  8. Server=10.0.0.21    
  9.     
  10. #服务端IP(主动监控)    
  11. #ServerActive=10.0.0.21    
  12.     
  13. #监听IP地址    
  14. ListenIP=10.0.0.21    
  15.     
  16. #监听网络端口    
  17. ListenPort=10050    
  18.     
  19. #日志类型    
  20. LogType=file    
  21.     
  22. #日志文件    
  23. LogFile=/usr/local/zabbix/log/zabbix_agentd.log    
  24.     
  25. #日志大小    
  26. LogFileSize=0    
  27.     
  28. #日志等级    
  29. DebugLevel=3    
  30.     
  31. #PID文件    
  32. PidFile=/usr/local/zabbix/run/zabbix_agentd.pid    
  33.     
  34. #StartAgents(选择主动监控时为0)    
  35. StartAgents=3    
  36.     
  37. #允许使用自定义监控    
  38. UnsafeUserParameters=1    
  39.     
  40. #自定义监控配置文件    
  41. Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf  

第二十五步 创建软链接

  1. [root@wanghualang ~]# ln -s /usr/local/zabbix/sbin/zabbix_server /usr/local/sbin/zabbix_server  
  2. [root@wanghualang ~]# ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin/zabbix_agentd  

第二十六步 加载动态链接库

  1. [root@wanghualang ~]# echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf  
  2. [root@wanghualang ~]# ldconfig  

第二十七步 配置Zabbix启动服务脚本、开机启动

  1. [root@wanghualang ~]# cp /usr/local/src/zabbix-4.4.4/misc/init.d/fedora/core/zabbix_server /etc/init.d  
  2. [root@wanghualang ~]# cp /usr/local/src/zabbix-4.4.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d  
  3. [root@wanghualang ~]# chmod +x /etc/init.d/zabbix_server  
  4. [root@wanghualang ~]# chmod +x /etc/init.d/zabbix_agentd  
  5. [root@wanghualang ~]# chkconfig --add zabbix_server  
  6. [root@wanghualang ~]# chkconfig --add zabbix_agentd  
  7. [root@wanghualang ~]# chkconfig zabbix_server on  
  8. [root@wanghualang ~]# chkconfig zabbix_agentd on  

第二十八步 启动Nginx、MySQL、PHP

  1. [root@wanghualang ~]# service nginx start  
  2. [root@wanghualang ~]# service mysqld start      
  3. [root@wanghualang ~]# service php-fpm start   

第二十九步 创建Zabbix网站数据库

  1. [root@wanghualang ~]# mysql  
  2.   
  3. #登陆安全加固(下次登录时需要输入密码)      
  4. mysql> use mysql;      
  5. mysql> update user set authentication_string=PASSWORD("123456") where user='root';        
  6. mysql> update user set plugin="mysql_native_password";      
  7.   
  8. #创建数据库(zabbix)、用户(zabbix)、密码(123456)  
  9. mysql> create database `zabbix` character set 'utf8mb4' collate 'utf8mb4_general_ci';  
  10. mysql> create user `zabbix`@`127.0.0.1` identified by '123456';  
  11. mysql> grant all privileges on zabbix.* to `zabbix`@`127.0.0.1`;  
  12. mysql> use zabbix;  
  13. mysql> source /usr/local/src/zabbix-4.4.4/database/mysql/schema.sql  
  14. mysql> source /usr/local/src/zabbix-4.4.4/database/mysql/images.sql  
  15. mysql> source /usr/local/src/zabbix-4.4.4/database/mysql/data.sql  
  16. mysql> flush privileges;  
  17. mysql> quit  

第三十步 启动Zabbix服务端、客户端

  1. [root@wanghualang ~]# service zabbix_server start  
  2. [root@wanghualang ~]# service zabbix_agentd start  

第三十一步 安装Zabbix网站

Linux搭建Zabbix监控平台Linux搭建Zabbix监控平台Linux搭建Zabbix监控平台Linux搭建Zabbix监控平台Linux搭建Zabbix监控平台Linux搭建Zabbix监控平台Linux搭建Zabbix监控平台Linux搭建Zabbix监控平台
  • 微信赞助网站
  • weinxin
  • 支付宝赞助网站
  • weinxin
匿名

发表评论

匿名网友 填写信息