centos 7——LNMP环境编译安装zabbix-5.0.8
服务器环境
服务器IP | 安装软件 |
10.0.0.20 |
zabbix-server、Nginx-1.22、PHP-7.3.29 |
10.0.0.21 | zabbix-agent |
10.0.0.22 | zabbix-agent |
10.0.0.23 | MySQL |
二进制安装mysql 8.0
获取软件包
# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
安装依赖
# yum install -y libaio
卸载mariadb的库
# yum remove -y mariadb-libs
解压 并创建数据目录
# tar -xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz -C /usr/local/ # mv /usr/local/mysql-8.0.20-linux-glibc2.12-x86_64/ /usr/local/mysql8.0 # mkdir /data/mysql8.0 -p
创建用户
# groupadd mysql
# useradd -g mysql mysql
初始化数据库
# cd /usr/local/mysql8.0/bin # ./mysqld --user=mysql --basedir=/usr/local/mysql8.0 --datadir=/data/mysql8.0 --initialize 2022-08-23T04:57:59.714960Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release. 2022-08-23T04:57:59.715050Z 0 [System] [MY-013169] [Server] /usr/local/mysql8.0/bin/mysqld (mysqld 8.0.20) initializing of server in progress as process 2054 2022-08-23T04:57:59.735287Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2022-08-23T04:58:00.281794Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2022-08-23T04:58:00.777487Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: uQjrcj0gfJ_f
修改配置文件
[mysqld] user=mysql basedir=/usr/local/mysql8.0 datadir=/data/mysql8.0 socket=/tmp/mysql.sock # 连接层 设置 max_connect_errors=20000 # 默认值 max_connections=1500 # 默认值151,单节点不高于3000 wait_timeout=600 # 默认值28800 interactive_timeout=600 max_allowed_packet=64M # 默认64M。防止地段数据过于庞大,导致更新数据失败 # server层 配置 #ini-file=/usr/local/mysql8.0/init-file.sql slow_query_log=ON slow_query_log_file=/data/mysql8.0/slow_log long_query_time=1 # 慢查询时间 log_queries_not_using_indexes=ON # 默认关闭,记录未使用到索引的查询语句,忽略long_query_time的设置 log_throttle_queries_not_using_indexes=10 # 默认是0,表示不限制。限制每分钟记录到slow log的语句数量 tmp_table_size=32M # 默认16M,建议不要超过128M max_heap_table_size=32M # 默认16M,建议不要超过128M # sql_mode # 建议保持默认。 max_execution_time=10 # 设置语句执行的超时时间。默认值0,表示不限制。建议跑批量是设置较大。 lock_wait_timeout=10 # 建议设置在60秒以内 #lower_case_table_names=1 # 忽略表名大小写,初始化时要设置好 thread_cache_size=64 # 线程缓存池大小,和线程命中率(Threads_created/connections)的比值有关,根据物理内存设置原则:1G ---》8 2G ----》16 character_set_server=utf8 # 或者utf8mb4 log_timestamps=SYSTEM # 控制错误日志、慢查询日志等日志中的显示时间 init_connect="set names utf8" # 用于登录审计(普通用户)时,可以设置为'insert into auditdb.access(thread_id,login_time,localname,matchname) values (connection_id(),now(),user(),current_user());' log_bin=/data/mysql8.0/binlog_3306 port=3306 server_id=5 #character-set-server=UTF8MB4 默认 #innodb_file_per_table=1 默认开启 symbolic-links=0 transaction-isolation="READ-COMMITTED" [mysql] socket=/tmp/mysql.sock no-auto-rehash pager="less -i -n -S" [include] ini-file=/usr/local/mysql8.0/init-file.sql
设置 sql 安全模式
# cat /usr/local/mysql8.0/init-file.sql set global sql_safe_updates=1;
拷贝启动文件
# cp -a ../support-files/mysql.server /etc/init.d/mysqld # chmod +x /etc/init.d/mysqld # chkconfig --add mysqld
启动mysql
启动mysql
# /etc/init.d/mysqld start
修改 mysql 的 root 用户密码
# mysql -uroot -puQjrcj0gfJ_f mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; mysql> flush privileges;
授权远程连接主机
mysql> use mysql; mysql> update user set host='%' where user='root'; mysql> flush privileges;
建立zabbix库,并授权
mysql> create database zabbix character set utf8 collate utf8_bin; mysql> create user zabbix@'10.%' identified by 'zabbix'; mysql> grant all privileges on zabbix.* to zabbix@'10.%'; mysql> flush privileges;
编译安装zabbix-server
# yum install -y libevent-devel net-snmp-devel gcc gcc-c++ # wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.8.tar.gz
添加用户、用户组并授权
# groupadd -r zabbix # useradd -r -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "test zabbix" zabbix # mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix # chown zabbix:zabbix /usr/lib/zabbix
安装依赖
# yum install -y gcc gcc-c++ mysql-community-devel net-snmp-devel libxml2 libxml2-devel unixODBC-devel libcurl-devel curl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel libevent-devel pcre-devel fping java-1.8.0-openjdk java-1.8.0-openjdk-devel mysql-community-devel:解决报错 “configure: error: MySQL library not found” libxml2 libxml2-devel:解决报错 “No package 'libxml-2.0' found Package libxml-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libxml-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'libxml-2.0' found checking for xmlReadMemory in -lxml2... no” net-snmp-devel: 解决报错 “configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config” curl-devel:解决报错 “checking for curl-config... no configure: error: Curl library not found”
解压软件包
# tar xfz zabbix-5.0.8.tar.gz -C /usr/local/ # cd /usr/local/zabbix-5.0.8/
编译
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-libcurl --with-libxml2 --with-openipmi --with-net-snmp --with-ssh2 --with-unixodbc --with-openssl --enable-java
安装
# make && make install
MySQL中倒入数据库
# cd /usr/local/zabbix-5.0.8/database/mysql # scp schema.sql data.sql images.sql 10.0.0.23:
# cat schema.sql|mysql -uroot -p123456 -D zabbix # cat images.sql|mysql -uroot -p123456 -D zabbix # cat data.sql|mysql -uroot -p123456 -D zabbix
修改 zabbix-server 的配置文件
# cd /usr/local/zabbix/etc # >zabbix_server.conf # vim zabbix_server.conf LogFile=/usr/local/zabbix/log/zabbix_server.log LogFileSize=5 PidFile=/usr/local/zabbix/zabbix_server.pid DBHost=10.0.0.23 DBName=zabbix DBUser=zabbix DBPassword=123456 AllowRoot=1
完整的zabbix_server配置文件
# cat /usr/local/zabbix/etc/zabbix_server.conf LogFile=/usr/local/zabbix/log/zabbix_server.log LogFileSize=5 PidFile=/usr/local/zabbix/zabbix_server.pid DBHost=10.0.0.23 DBName=zabbix DBUser=zabbix DBPassword=123456 AllowRoot=1 StartPollers=100 StartIPMIPollers=10 StartPollersUnreachable=10 StartTrappers=10 StartPingers=10 StartDiscoverers=10 SNMPTrapperFile=/var/log/snmptt/snmptt.log MaxHousekeeperDelete=500 CacheSize=256M HistoryCacheSize=128M TrendCacheSize=128M # HistoryTextCacheSize=128M ValueCacheSize=2048M Timeout=30 TrapperTimeout=300 UnreachablePeriod=45 UnavailableDelay=60 UnreachableDelay=15 AlertScriptsPath=/usr/local/zabbix/alertscripts # 告警脚本目录 ExternalScripts=/usr/local/zabbix/externalscripts # 扩展脚本存放目录 FpingLocation=/usr/sbin/fping LogSlowQueries=10000 StartProxyPollers=50 ProxyConfigFrequency=3600
创建脚本目录
# mkdir -p /usr/local/zabbix/alertscripts /usr/local/zabbix/externalscripts # chown -R zabbix: /usr/local/zabbix/ # mkdir -p /var/log/snmptt/ # touch /var/log/snmptt/snmptt.log # chown -R zabbix: /var/log/snmptt/
创建日志目录
# mkdir /usr/local/zabbix/log/ -p
配置 zabbix-server 的 unit 文件
# vi /usr/lib/systemd/system/zabbix_server.service [Unit] Description=Zabbix Server After=syslog.target After=network.target [Service] Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf" Type=forking PIDFile=/usr/local/zabbix/zabbix_server.pid Restart=on-failure KillMode=control-group ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s [Install] WantedBy=multi-user.target
编译安装 Nginx
安装依赖
# yum install -y zlib zlib-devel
zlib:解决报错
“/usr/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status
”
下载软件包并解压
# wget http://nginx.org/download/nginx-1.22.0.tar.gz # tar xfz nginx-1.22.0.tar.gz
编译安装 Nginx
# cd nginx-1.22.0/ # ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre # make && make install
修改 Nginx 配置文件
server { listen 80; server_name localhost; location /nginx_status { stub_status on; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
配置 Nginx 的 unit 文件
# vi /lib/systemd/system/nginx.service [Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target
安装PHP
下载软件包
# cd /opt # wget https://www.php.net/distributions/php-7.3.29.tar.gz # tar xfz php-7.3.29.tar.gz
编译安装PHP
# cd php-7.3.29/ # ./configure --prefix=/usr/local/php --enable-fpm --enable-mbstring --with-openssl --with-mysqli --with-mysql-sock --with-gd --enable-pdo --with-pdo-mysql --with-gettext --enable-sockets --enable-bcmath --enable-xml --with-bz2 --with-freetype-dir=/usr/local --with-libxml-dir=/usr/local --with-zlib --with-curl --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-ldap --with-libdir=lib64 # make && make install
修改php配置文件
# cp /opt/php-7.3.29/php.ini-production /usr/local/php/lib/php.ini # vim /usr/local/php/lib/php.ini date.timezone = Asia/Shanghai post_max_size = 20M upload_max_filesize = 20M max_execution_time = 300 max_input_time = 300 memory_limit = 1024M
准备 php-fpm 配置文件
# cd /usr/local/php/etc # cp php-fpm.conf.default php-fpm.conf # cp php-fpm.d/www.conf.default php-fpm.d/www.conf
拷贝zabbix前端到nginx默认web目录
# cd /usr/local/zabbix-5.0.8/ # cp -a ui/* /usr/local/nginx/html/
配置 php-fpm 的 unit 文件
vi /usr/lib/systemd/system/php-fpm.service [Unit] Description=php-fpm After=network.targe [Service] Type=forking ExecStart=/usr/local/php/sbin/php-fpm PrivateTmp=true [Install] WantedBy=multi-user.target
安装zabbix agent2
Zabbix 5.0 版本推出了使用 go 语言重写的 Agent2,也是 5.0 版本新特性,Agent2 有如下特性:
- 完成的插件框架支持,可扩张服务及应用监控
- 支持灵活的采集周期调度
- 更高效的数据采集及传输
- 可完全替换先有的 agent
- …..
特性较多,建议使用。由于使用 go 语言编写,编译安装与之前版本有所区别。Agent2 默认使用的 10050 端口,与 Zabbix Agent 端口一样,不修改端口情况下,同一台机器不能同时启动 Zabbix Agent 与 Zabbix Agent2。
编译安装
安装 gcc 等基础编译环境,由于使用 go 编写,因此需要配置 go 编译环境,下载并配置 go 语言编译环境
# cd /opt
# wget https://dl.google.com/go/go1.14.3.linux-amd64.tar.gz # tar zxvf go1.14.3.linux-amd64.tar.gz -C /usr/local/
# echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile # source /etc/profile
查看 go 环境是否安装成功
# go env GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/root/.cache/go-build" GOENV="/root/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/root/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/usr/local/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build821720893=/tmp/go-build -gno-record-gcc-switches"
开启 go mod,由于编译过程需要联网下载依赖包,配置 go mod 代理
# go env -w GO111MODULE=on # go env -w GOPROXY=https://goproxy.cn,direct
下载 zabbix 5.0.8 源码
# cd /opt # wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.8.tar.gz # tar zxvf zabbix-5.0.8.tar.gz # cd zabbix-5.0.8
如果只是要编译 agent2,直接加-enable-agent2 参数即可
# ./configure --prefix=/usr/local/zabbix -enable-agent2 # make && make install
安装完成后 agent2 配置文件和二进制启动程序路径
/usr/local/zabbix/etc/zabbix_agent2.conf
/usr/local/zabbix/sbin/zabbix_agent2
修改配置文件
# grep -Ev "^$|#" /usr/local/zabbix/etc/zabbix_agent2.conf LogFile=/var/log/zabbix/zabbix_agentd.log Server=10.0.0.20 ServerActive=10.0.0.21 Hostname=10.0.0.20 ControlSocket=/tmp/agent.sock
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1
参数含义如下:
- Server:被动模式,允许 zabbix_server 服务器连接客户端,此处允许本机和 10.0.0.20 访问10050端口,多个IP地址之间用逗号分隔。
- ServerActive:主动模式,向目标 zabbix_server 服务器传送数据。这种模式的性能较好,建议使用,但需要确保 zabbix_agentd.conf 的参数 Hostname 值与 Zabbix-Web 页面中的主机名一致;否则,在 zabbix-server.log 中将会看到如下日志:
2022/08/26 17:25:49.277934 [101] no active checks on server [10.0.0.20:10051]: host [10.0.0.20] not found
创建日志文件
# groupadd zabbix # useradd -g zabbix zabbix # mkdir -p /var/log/zabbix/ # touch /var/log/zabbix/zabbix_agentd.log # chown zabbix: /var/log/zabbix
配置 agent2 的unit 文件
# vi /lib/systemd/system/zabbix-agent2.service [Unit] Description=Zabbix Agent 2 After=syslog.target After=network.target [Service] Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_agent2.conf" EnvironmentFile=-/etc/sysconfig/zabbix-agent2 Type=simple Restart=on-failure PIDFile=/tmp/zabbix_agent2.pid KillMode=control-group ExecStart=/usr/local/zabbix/sbin/zabbix_agent2 -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s User=zabbix Group=zabbix [Install] WantedBy=multi-user.target
启动并设置开机启动
# systemctl enable --now zabbix-agent2
注意:Agent2 没有组件依赖,可直接拷贝编译好的二进制文件和配置文件在其他主机上运行即可。
原文链接:https://blog.csdn.net/qq_55723966/article/details/122085551
访问并完成安装zabbix
访问地址:http://$zabbix-serverIP/zabbix.php
用户名Admin,密码zabbix
posted on 2022-08-26 17:44 hopeless-dream 阅读(287) 评论(0) 编辑 收藏 举报