SaltStack部署zabbix服务

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

  • 执行main状态文件进入页面

Zabbix项目架构

=========================================================================

完整架构

[root@master ~]# tree /srv/salt/

/srv/salt/

├── base

├── dev

├── prod

│ ├── modules

│ │ ├── application

│ │ │ └── php

│ │ │ ├── files

│ │ │ │ ├── init.d.php-fpm

│ │ │ │ ├── install.sh

│ │ │ │ ├── oniguruma-devel-6.8.2-2.el8.x86_64.rpm

│ │ │ │ ├── php-7.4.24.tar.gz

│ │ │ │ ├── php-8.0.10.tar.gz

│ │ │ │ ├── php-fpm.conf.default

│ │ │ │ ├── php-fpm.service

│ │ │ │ ├── php.ini-production

│ │ │ │ └── www.conf.default

│ │ │ └── install.sls

│ │ ├── database

│ │ │ └── mysql

│ │ │ ├── files

│ │ │ │ ├── mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

│ │ │ │ ├── mysqld.service.j2

│ │ │ │ ├── mysqld.sh.j2

│ │ │ │ └── mysql.server

│ │ │ └── install.sls

│ │ └── web

│ │ └── httpd

│ │ ├── files

│ │ │ ├── apr-1.7.0.tar.gz

│ │ │ ├── apr-util-1.6.1.tar.gz

│ │ │ ├── httpd-2.4.51.tar.gz

│ │ │ ├── httpd.conf

│ │ │ ├── httpd.service.j2

│ │ │ └── install.sh

│ │ └── install.sls

│ └── zabbix

│ ├── apache.sls

│ ├── files

│ │ ├── index.php

│ │ ├── install.sh

│ │ ├── my.cnf.j2

│ │ ├── mysql.conf.j2

│ │ ├── php.ini-production

│ │ ├── vhosts.conf.j2

│ │ ├── zabbix-5.4.4.tar.gz

│ │ └── zabbix_server.conf

│ ├── main.sls

│ ├── mysql.sls

│ └── zabbix.sls

└── test

16 directories, 34 files

编写部署httpd服务安装状态文件

================================================================================

apache结构

[root@master ~]# tree /srv/salt/prod/modules/web/

/srv/salt/prod/modules/web/

└── httpd

├── files

│ ├── apr-1.7.0.tar.gz

│ ├── apr-util-1.6.1.tar.gz

│ ├── httpd-2.4.51.tar.gz

│ ├── httpd.conf

│ ├── httpd.service

│ └── install.sh

└── install.sls

编写apache服务的状态文件

[root@master ~]# cat /srv/salt/prod/modules/web/httpd/install.sls

‘Development Tools’:

pkg.group_installed

httpd-dep-packsge:

pkg.installed:

  • pkgs:

  • epel-release

  • openssl-devel

  • pcre-devel

  • expat-devel

  • libtool

  • gcc

  • gcc-c++

  • make

create-apache-user:

user.present:

  • name: apache

  • createhome: false

  • system: true

  • shell: /sbin/nologin

download-apache:

file.managed:

  • names:

  • /usr/src/apr-1.7.0.tar.gz:

  • source: salt://modules/web/httpd/files/apr-1.7.0.tar.gz

  • /usr/src/apr-util-1.6.1.tar.gz:

  • source: salt://modules/web/httpd/files/apr-util-1.6.1.tar.gz

  • /usr/src/httpd-2.4.51.tar.gz:

  • source: salt://modules/web/httpd/files/httpd-2.4.51.tar.gz

salt://modules/web/httpd/files/install.sh:

cmd.script

  • unless: test -d /usr/local/apache

{{ pillar[‘install_dir’] }}/conf/httpd.conf:

file.managed:

  • source: salt://modules/web/httpd/files/httpd.conf

  • user: root

  • group: root

  • mode: ‘0644’

  • require:

  • cmd: apache-install

/usr/lib/systemd/system/httpd.service:

file.managed:

  • source: salt://modules/web/httpd/files/httpd.service.j2

  • user: root

  • group: root

  • mode: ‘0644’

  • template: jinja

安装脚本

[root@master ~]# cat /srv/salt/prod/modules/web/httpd/files/install.sh

#!/bin/bash

cd /usr/src

rm -rf apr-1.7.0 apr-util-1.6.1 httpd-2.4.51

tar xf apr-1.7.0.tar.gz

tar xf apr-util-1.6.1.tar.gz

tar xf httpd-2.4.51.tar.gz

cd apr-1.7.0

sed -i ‘/ R M " RM " RM"cfgfile"/d’ configure

./configure --prefix=/usr/local/apr && \

make && make install && \

cd …/apr-util-1.6.1

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && \

make && make install && \

cd …/httpd-2.4.51

./configure --prefix=/usr/local/apache \

–enable-so \

–enable-ssl \

–enable-cgi \

–enable-rewrite \

–with-zlib \

–with-pcre \

–with-apr=/usr/local/apr \

–with-apr-util=/usr/local/apr-util/ \

–enable-modules=most \

–enable-mpms-shared=all \

–with-mpm=prefork && \

make && make install

httpd配置文件

//搜索AddType,添加以下内容

[root@localhost ~]# vim /usr/local/apache/conf/httpd.conf

If the AddEncoding directives above are commented-out, then you

probably should define those extensions to indicate media types:

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

AddType application/x-httpd-php .php #添加此行

AddType application/x-httpd-php-source .phps #添加此行

//取消下列两行的注释

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

//搜索index.html这一行添加index.php

DirectoryIndex index.php index.html

//取消下列一行的注释,并修改为自己定义的虚拟机主机配置文件

Virtual hosts

Include conf/extra/vhosts.conf

Local access to the Apache HTTP Server Manual

//取消注释

ServerName www.example.com:80

service启动文件

[root@master ~]# vim /srv/salt/prod/modules/web/apache/files/httpd.service

[Unit]

Description=Apache server daemon

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/apache/bin/apachectl start

ExecStop=/usr/local/apache/bin/apachectl stop

[Install]

WantedBy=multi-user.target

编写部署Mysql服务安装状态文件

================================================================================

mysql结构

[root@master ~]# tree /srv/salt/prod/modules/database/

/srv/salt/prod/modules/database/

└── mysql

├── files

│ ├── mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

│ ├── mysqld.service

│ ├── mysqld.sh

│ └── mysql.server

└── install.sls

[root@master ~]# cat /srv/salt/prod/modules/database/mysql/install.sls

mysql-dep-packsge:

pkg.installed:

  • pkgs:

  • ncurses-compat-libs

create-mysql-user:

user.present:

  • name: mysql

  • createhome: false

  • system: true

  • shell: /sbin/nologin

{{ pillar[‘mysql_install_dir’] }}:

archive.extracted:

  • source: salt://modules/database/mysql/files/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

file.symlink:

  • name: {{ pillar[‘mysql_install_dir’] }}/mysql

  • target: {{ pillar[‘mysql_install_dir’] }}/mysql-5.7.34-linux-glibc2.12-x86_64

{{ pillar[‘mysql_install_dir’] }}/mysql:

file.directory:

  • user: mysql

  • group: mysql

  • mode: ‘0755’

  • recurse:

  • user

  • group

/etc/profile.d/mysqld.sh:

file.managed:

  • source: salt://modules/database/mysql/files/mysqld.sh.j2

  • user: root

  • group: root

  • mode: ‘0644’

  • template: jinja

{{ pillar[‘data_dir’] }}:

file.directory:

  • user: mysql

  • group: mysql

  • mode: ‘0755’

  • makedirs: true

  • recurse:

  • user

  • group

trasfer-files:

file.managed:

  • names:

  • {{ pillar[‘mysql_install_dir’] }}/mysql/support-files/mysql.server:

  • source: salt://modules/database/mysql/files/mysql.server

  • /usr/lib/systemd/system/mysqld.service:

  • source: salt://modules/database/mysql/files/mysqld.service.j2

  • template: jinja

  • require:

  • cmd: mysql-install

mysql-initialize:

cmd.run:

  • name: ‘{{ pillar[‘mysql_install_dir’] }}/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir={{ pillar[‘data_dir’] }}/’

  • require:

  • archive: {{ pillar[‘mysql_install_dir’] }}

  • file: {{ pillar[‘data_dir’] }}

  • user: mysql

  • unless: test $(ls -l {{ pillar[‘data_dir’] }} |wc -l) -gt 1

mysqld环境变量

[root@master ~]# cat /srv/salt/prod/modules/database/mysql/files/mysqld.sh

export PATH=/usr/local/mysql/bin:$PATH

mysqld service启动文件

[root@master ~]# cat /srv/salt/prod/modules/database/mysql/files/mysqld.service

[Unit]

Description=Mysql server daemon

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/mysql/support-files/mysql.server start

ExecStop=/usr/local/mysql/support-files/mysql.server stop

ExecReload=/bin/kill -HUP $MAINPID

[Install]

WantedBy=multi-user.target

修改mysql.server文件

[root@master ~]# vim /usr/local/mysql/support-files/mysql.server

overwritten by settings in the MySQL configuration files.

basedir=/usr/local/mysql

datadir=/opt/data

Default value, in seconds, afterwhich the script should timeout waiting

编写部署php服务安装状态文件

==============================================================================

PHP结构

[root@master ~]# tree /srv/salt/prod/modules/application/

/srv/salt/prod/modules/application/

└── php

├── files

│ ├── init.d.php-fpm

│ ├── install.sh

│ ├── oniguruma-devel-6.8.2-2.el8.x86_64.rpm

│ ├── php-7.4.24.tar.gz

│ ├── php-8.0.10.tar.gz

│ ├── php-fpm.conf.default

│ ├── php-fpm.service

│ ├── php.ini-production

│ └── www.conf.default

└── install.sls

2 directories, 10 files

安装系列

[root@master ~]# cat /srv/salt/prod/modules/application/php/install.sls

php-dep-package:

pkg.installed:

  • pkgs:

  • libzip

  • libzip-devel

  • libxml2

  • libxml2-devel

  • openssl

  • openssl-devel

  • bzip2

  • bzip2-devel

  • libcurl

  • libcurl-devel

  • libicu-devel

  • libjpeg-turbo

  • libjpeg-turbo-devel

  • libpng

  • libpng-devel

  • openldap-devel

  • pcre-devel

  • freetype

  • freetype-devel

  • gmp

  • gmp-devel

  • readline

  • readline-devel

  • libxslt

  • libxslt-devel

  • php-mysqlnd

/usr/src/oniguruma-devel-6.8.2-2.el8.x86_64.rpm:

file.managed:

  • source: salt://modules/application/php/files/oniguruma-devel-6.8.2-2.el8.x86_64.rpm

  • user: root

  • group: root

  • mode: ‘0644’

cmd.run:

  • name: yum -y install /usr/src/oniguruma-devel-6.8.2-2.el8.x86_64.rpm

  • unless: rpm -q oniguruma-devel

/usr/src:

archive.extracted:

  • source: salt://modules/application/php/files/php-7.4.24.tar.gz

salt://modules/application/php/files/install.sh:

cmd.script

  • unless: test -d /usr/local/php7

copy-file-php:

file.managed:

  • names:

  • /usr/local/php7/etc/php-fpm.conf:

  • source: salt://modules/application/php/files/php-fpm.conf.default

  • /usr/local/php7/etc/php-fpm.d/www.conf:

  • source: salt://modules/application/php/files/www.conf.default

  • /etc/php.ini:

  • source: salt://modules/application/php/files/php.ini-production

  • /etc/init.d/php-fpm:

  • source: salt://modules/application/php/files/init.d.php-fpm

  • user: root

  • group: root

  • mode: ‘0755’

  • /usr/lib/systemd/system/php-fpm.service:

  • source: salt://modules/application/php/files/php-fpm.service

  • require:

  • cmd: php-install

php-fpm.service:

service.running:

  • enable: true

  • reload: true

  • require:

  • file: php-copy-package

  • watch:

  • file: php-copy-package

安装脚本

[root@master ~]# cat /srv/salt/prod/modules/application/php/files/install.sh

#!/bin/bash

cd /usr/src/php-7.4.24

./configure --prefix=/usr/local/php7 \

–with-config-file-path=/etc \

–enable-fpm \

–disable-debug \

–disable-rpath \

–enable-shared \

–enable-soap \

–with-openssl \

–enable-bcmath \

–with-iconv \

–with-bz2 \

–enable-calendar \

–with-curl \

–enable-exif \

–enable-ftp \

–enable-gd \

–with-jpeg \

–with-zlib-dir \

–with-freetype \

–with-gettext \

–enable-mbstring \

–enable-pdo \

–with-mysqli=mysqlnd \

–with-pdo-mysql=mysqlnd \

–with-readline \

–enable-shmop \

–enable-simplexml \

–enable-sockets \

–with-zip \

–enable-mysqlnd-compression-support \

–with-pear \

–enable-pcntl \

–enable-posix && \

make && make install

修改配置文件

[root@master ~]# cat /srv/salt/prod/modules/application/php/files/www.conf.default

listen = 0.0.0.0:9000 #查找listen这一行并改为此行显示的内容

需要复制的几个文件

cp /usr/src/php-8.0.10/php.ini-production /etc/php.ini

cp /usr/src/php-8.0.10/init.d.php-fpm /etc/init.d/php-fpm

cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf

cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

service文件

[root@master ~]# cat /srv/salt/prod/modules/application/php/files/php-fpm.service

[Unit]

Description=php server daemon

After=network.target

[Service]

Type=forking

ExecStart=/etc/init.d/php-fpm start

ExecStop=/etc/init.d/php-fpm stop

ExecReload=/bin/kill -HUP $MAINPID

[Install]

WantedBy=multi-user.target

编写项目配置状态文件

=========================================================================

项目结构

[root@master ~]# tree /srv/salt/prod/zabbix/

/srv/salt/prod/zabbix/

├── apache.sls

├── files

│ ├── index.php

│ ├── install.sh

│ ├── my.cnf

│ ├── mysql.conf

│ ├── php.ini-production

│ ├── vhosts.conf

│ ├── zabbix-5.4.4.tar.gz

│ └── zabbix_server.conf

├── main.sls

├── mysql.sls

└── zabbix.sls

apache配置的状态文件

[root@master ~]# cat /srv/salt/prod/zabbix/apache.sls

include:

  • modules.web.httpd.install

/usr/include/httpd:

file.symlink:

  • target: {{ pillar[‘install_dir’] }}/include

  • require:

  • cmd: apache-install

{{ pillar[‘install_dir’] }}/htdocs/zabbix:

file.directory:

  • user: apache

  • group: apache

  • mode: ‘0755’

  • makedirs: true

  • require:

  • cmd: apache-install

{{ pillar[‘install_dir’] }}/conf/extra/vhosts.conf:

file.managed:

  • source: salt://zabbix/files/vhosts.conf.j2

  • user: root

  • group: root

  • mode: ‘0644’

  • template: jinja

  • makedirs: true

  • require:

  • cmd: httpd-install

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

image.png

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

image.png

  • Kafka的集群
  • 第一个Kafka程序
  • image.png

afka的生产者

image.png

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

image.png

image.png

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

image.png

  • Kafka实战之削峰填谷

image.png

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
[‘install_dir’] }}/htdocs/zabbix:

file.directory:

  • user: apache

  • group: apache

  • mode: ‘0755’

  • makedirs: true

  • require:

  • cmd: apache-install

{{ pillar[‘install_dir’] }}/conf/extra/vhosts.conf:

file.managed:

  • source: salt://zabbix/files/vhosts.conf.j2

  • user: root

  • group: root

  • mode: ‘0644’

  • template: jinja

  • makedirs: true

  • require:

  • cmd: httpd-install

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

[外链图片转存中…(img-xVXU4hGf-1714744059777)]

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

[外链图片转存中…(img-GUQwoNSR-1714744059778)]

  • Kafka的集群
  • 第一个Kafka程序
  • [外链图片转存中…(img-VcDguZhV-1714744059778)]

afka的生产者

[外链图片转存中…(img-cWP8nwXU-1714744059778)]

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

[外链图片转存中…(img-XwA7UUGd-1714744059779)]

[外链图片转存中…(img-KOFLO4cT-1714744059779)]

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

[外链图片转存中…(img-NIN5ucQ5-1714744059779)]

  • Kafka实战之削峰填谷

[外链图片转存中…(img-NZVTRb2j-1714744059780)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值