当前位置: 首页 > news >正文

编译安装zabbix7.2

实验环境

一、编译安装Nginx1.28(192.168.10.40)

1、创建systemctl管理Nginx文件

mkdir /myplaybook

cd /myplaybook/

vim nginx.service

添加:

[Unit]

Description=Nginx server daemon

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

ExecStop=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -s stop

ExecReload=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -s reload

KillMode=process

[Install]

WantedBy=multi-user.target

2、上传nginx-1.28.0.tar.gz包到/myplaybook目录

3、创建playbook文件

vim install-nginx.yml

添加:

- hosts: 192.168.10.41

  tasks:

    - name: copy nginx package

      copy: src=nginx-1.28.0.tar.gz dest=/usr/local/src

    - name: require openssl,zlib,pcre package

      dnf: name=openssl-devel,zlib-devel,pcre-devel

    - name: create nginx group

      group: name=www system=yes

    - name: create nginx user

      user: name=www group=www system=yes shell=/bin/false create_home=no

    - name: uncompress nginx package

      unarchive: src=/usr/local/src/nginx-1.28.0.tar.gz dest=/usr/local/src remote_src=yes

    - name: build nginx

      shell: chdir=/usr/local/src/nginx-1.28.0 ./configure --prefix=/usr/local/nginx --group=www --user=www --with-http_ssl_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_stub_status_module && make -j$(nproc) && make install

    - name: copy nginx systemctl file

      copy: src=nginx.service dest=/usr/lib/systemd/system

    - name: nginx daemon reload

      shell: systemctl daemon-reload

    - name: start nginx service

      systemd: name=nginx state=started enabled=yes

4、运行playbook

ansible-playbook install-nginx.yml

二、二进制安装MySQL8.0(192.168.10.40)

1、创建MySQL配置文件

vim my.cnf

添加:

[mysqld]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

pid-file=/usr/local/mysql/data/mysqld.pid

log-error=/usr/local/mysql/data/mysql.err

socket=/tmp/mysql.sock

2、创建systemctl管理MySQL文件

vim mysqld.service

添加:

[Unit]

Description=MySQL Community Server

After=network.target

[Service]

Type=notify

User=mysql

Group=mysql

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

ExecReload=/bin/kill -HUP $MAINPID

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-user.target

3、上传MySQL二进制包mysql-8.0.42-linux-glibc2.17-x86_64-minimal.tar.xz到/myplaybook目录

4、创建playbook文件

vim install-mysql.yml

添加:

- hosts: 192.168.10.41

  tasks:

    - name: copy mysql package

      copy: src=mysql-8.0.42-linux-glibc2.17-x86_64-minimal.tar.xz dest=/usr/local/src

    - name: uncompress mysql package

      unarchive: src=/usr/local/src/mysql-8.0.42-linux-glibc2.17-x86_64-minimal.tar.xz dest=/usr/local/src remote_src=yes

    - name: mv mysql package

      shell: mv /usr/local/src/mysql-8.0.42-linux-glibc2.17-x86_64-minimal /usr/local/mysql

    - name: set env1

      shell: echo "export MYSQL_HOME=/usr/local/mysql" >> /etc/profile

    - name: set env2

      shell: echo "export PATH=\$MYSQL_HOME/bin:\$PATH" >> /etc/profile

    - name: load env

      shell: source /etc/profile

    - name: mkdir data directory

      shell: mkdir -p /usr/local/mysql/data

    - name: create mysql group

      group: name=mysql state=present system=yes

    - name: create mysql user

      user: name=mysql system=yes shell=/bin/false group=mysql create_home=false

    - name: set directory owner

      shell: chown -R mysql:mysql /usr/local/mysql/

    - name: copy mysql config file

      copy: src=my.cnf dest=/etc/

    - name: init mysql

      shell: /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

    - name: copy mysql systemctl file

      copy: src=mysqld.service dest=/usr/lib/systemd/system

    - name: mysql daemon reload

      shell: systemctl daemon-reload

    - name: start myql

      systemd: name=mysqld state=started enabled=yes

    - name: install ncurses-compat-libs

      dnf: name=ncurses-compat-libs state=installed

    - name: set mysql passwd

      shell: temp_pass=$(grep "temporary password" /usr/local/mysql/data/mysql.err | awk "{print \$NF}"); /usr/local/mysql/bin/mysqladmin -uroot -p"$temp_pass" password "123456"

5、运行playbook

ansible-playbook install-mysql.yml

三、编译安装PHP8.1(192.168.10.40)

1、创建systemctl管理PHP文件

vim php-fpm.service

添加:

[Unit]

Description=The PHP FastCGI Process Manager

After=network.target

[Service]

Type=forking

PIDFile=/run/php-fpm.pid

ExecStart=/usr/local/php8/sbin/php-fpm --daemonize --pid /run/php-fpm.pid

ExecReload=/bin/kill -USR2 $MAINPID

ExecStop=/bin/kill -SIGINT $MAINPID

PrivateTmp=true

Restart=on-failure

[Install]

WantedBy=multi-user.target

2、上传PHP源码包php-8.1.32.tar.gz到/myplaybook目录

3、创建playbook文件

vim install-php.yml

添加:

- hosts: 192.168.10.41

  tasks:

    - name: start crb

      shell: dnf config-manager --set-enabled crb

    - name: require package

      dnf: name=cmake,autoconf,libtool,pkgconfig,gd-devel,libjpeg-turbo-devel,freetype-devel,libwebp-devel,libXpm-devel,libxml2-devel,libcurl-devel,openssl-devel,pcre2-devel,gettext-devel,sqlite-devel,oniguruma-devel,php-ldap,php-openssl,php-gettext,openldap-devel state=installed

    - name: link libldap

      shell: ln -s /usr/lib64/libldap.so /usr/lib/libldap.so

    - name: link liblber

      shell: ln -s /usr/lib64/liblber.so /usr/lib/liblber.so

    - name: copy php package

      copy: src=php-8.1.32.tar.gz dest=/usr/local/

    - name: uncompress php package

      unarchive: src=/usr/local/php-8.1.32.tar.gz dest=/usr/local/ remote_src=yes

    - name: create nginx group

      group: name=www system=yes

    - name: create nginx user

      user: name=www group=www system=yes shell=/bin/false create_home=no

    - name: build php

      shell: chdir=/usr/local/php-8.1.32 ./configure --prefix=/usr/local/php8 --with-config-file-path=/usr/local/php8 --with-config-file-scan-dir=/usr/local/php8/php.d --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli --with-pdo-mysql --enable-bcmath -enable-gd --with-external-gd --with-jpeg --with-freetype --enable-mbstring --enable-xml --with-libxml --enable-sockets --enable-ctype --enable-session --enable-filter --enable-opcache --with-curl --with-pcre-jit --enable-fpm --enable-soap --with-openssl --with-gettext --with-ldap && make -j$(nproc) && make install

    - name: copy php.ini from php source

      copy: src=/usr/local/php-8.1.32/php.ini-production dest=/usr/local/php8/php.ini remote_src=yes

    - name: copy config file

      copy: src=/usr/local/php-8.1.32/sapi/fpm/php-fpm.conf dest=/usr/local/php8/etc/ remote_src=yes

    - name: copy www file

      copy: src=/usr/local/php8/etc/php-fpm.d/www.conf.default dest=/usr/local/php8/etc/php-fpm.d/www.conf remote_src=yes

    - name: copy php systemctl file

      copy: src=php-fpm.service dest=/usr/lib/systemd/system

    - name: php daemon reload

      shell: systemctl daemon-reload

    - name: start php-fpm

      systemd: name=php-fpm state=started enabled=yes

4、运行playbook

ansible-playbook install-php.yml

四、编译安装zabbix7.2(192.168.10.41)

1、上传源码包zabbix-7.2.7.tar.gz到/root目录

2、安装依赖库

dnf -y install libssh2 libssh2-devel OpenIPMI-devel libevent-devel unixODBC unixODBC-devel java-1.8.0-openjdk-devel openssl-devel net-snmp net-snmp-devel mysql-devel

3、下载中文插件

dnf -y install langpacks-zh_CN glibc-langpack-zh.x86_64

4、编译安装zabbix

tar xf zabbix-7.2.7.tar.gz

cd zabbix-7.2.7/

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-frontend --with-mysql --with-mysqli --with-pdo-mysql --with-openssl=/usr --with-libcurl --with-libxml2 --with-net-snmp --with-ldap --with-gd --with-jpeg --with-freetype --enable-bcmath --enable-mbstring --enable-ipv6

make -j$(nproc) && make install

5、创建zabbix组和用户

groupadd -r zabbix

useradd -r -M -s /bin/false -g zabbix zabbix

6、给安装目录授权

chown -R zabbix:zabbix /usr/local/zabbix/

7、创建systemctl管理zabbix文件

vim /usr/lib/systemd/system/zabbix-server.service

添加:

[Unit]

Description=Zabbix Server

After=network.target syslog.target mysql.service

[Service]

Type=forking

PIDFile=/tmp/zabbix_server.pid

ExecStart=/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

ExecReload=/bin/kill -USR2 $MAINPID

ExecStop=/bin/kill -SIGTERM $MAINPID

Restart=on-failure

User=zabbix

Group=zabbix

[Install]

WantedBy=multi-user.target

vim /usr/lib/systemd/system/zabbix-agent.service

添加:

[Unit]

Description=Zabbix Agent

After=network.target

[Service]

Type=forking

PIDFile=/tmp/zabbix_agentd.pid

ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf

ExecReload=/bin/kill -USR2 $MAINPID

ExecStop=/bin/kill -TERM $MAINPID

Restart=on-failure

User=zabbix

Group=zabbix

[Install]

WantedBy=multi-user.target

五、配置Nginx(192.168.10.41)

1、修改配置文件

vim /usr/local/nginx/conf/nginx.conf

修改:

2、重启nginx

systemctl restart nginx

六、配置MySQL(192.168.10.41)

1、创建zabbix数据库

mysql -uroot -p123456

create database zabbix charset utf8mb4 collate utf8mb4_bin;

2、创建用户并授权

create user 'zabbix'@'%' identified by 'zabbix';

grant all on zabbix.* to 'zabbix'@'%';

flush privileges;

3、开启二进制

vim /etc/my.cnf

添加:

log_bin_trust_function_creators=1

systemctl restart mysqld

4、导入zabbix数据文件

cd /root/zabbix-7.2.7/database/mysql/

mysql -uzabbix -pzabbix zabbix < schema.sql

mysql -uzabbix -pzabbix zabbix < images.sql

mysql -uzabbix -pzabbix zabbix < data.sql

七、配置PHP(192.168.10.41)

1、修改配置文件

vim /usr/local/php8/php.ini

修改:

2、重启PHP

systemctl restart php-fpm

八、配置Zabbix(192.168.10.41)

1、修改配置文件

vim /usr/local/zabbix/etc/zabbix_server.conf

修改:

2、拷贝zabbix web到nginx网页目录

mkdir /usr/local/nginx/html/zabbix

cp -r /root/zabbix-7.2.7/ui/* /usr/local/nginx/html/zabbix

chown -R www:www /usr/local/nginx/html/zabbix

3、链接MySQL库文件并启动zabbix

ln -s /usr/local/mysql/lib/libmysqlclient.so.21 /usr/lib64/

systemctl start zabbix-server

systemctl start zabbix-agent

4、使用浏览器访问zabbix网站

192.168.10.41/zabbix

http://www.dtcms.com/a/270805.html

相关文章:

  • idea2023.1.1配置scala并创建第一个Scala工程
  • Rust赋能美团云原生DevOps实践
  • Docker 高级管理--容器通信技术与数据持久化
  • 离线在docker环境使用vllm部署qwen3
  • JAVA如何实现Redis同步
  • 华为动态路由配置
  • 【图像处理基石】图像超分辨率有哪些研究进展值得关注?
  • ARM单片机OTA解析(一)
  • 图像处理中的凸包检测:原理与实现
  • MS32C001-C单片机,32位ARM M0+内核,宽电压、低功耗、小封装。
  • 图像处理中的模板匹配:原理与实现
  • vue3+ts+echarts多Y轴图表
  • 【WEB】Polar靶场 21-25题 详细笔记
  • ProxySQL 入门到实战
  • Grafana容器化部署
  • Android-重学kotlin(协程基础)新学习总结
  • 基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(4)集成Allure报表
  • 2.4G收发SOC芯片 XL2417D,集成高性能2.4GHz射频收发器、32位MCU
  • 基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(5)失败用例截图与重试
  • OneCode AIGC时代优秀的三码合一框架实现
  • Python通关秘籍之基础教程(一)
  • 【视频观看系统】- 技术与架构选型
  • 恒盾C#混淆加密大师最新版本1.4.0更新 - 增强各类加密效果, 提升兼容性, 使.NET加密更简单
  • OneCode框架事件基础模型架构深度剖析与代码实现
  • Go语言Gin框架实战:开发技巧
  • PCIe基础知识之Linux内核中PCIe子系统的架构
  • youtube图论
  • 深度解析:将SymPy符号表达式转化为高效NumPy计算函数的通用解决方案
  • 底盘机械臂仿真fetch_gazebo实践
  • 从0开始学习R语言--Day42--LM检验