Teach you how to deploy zabbix service on saltstack

Teach you how to deploy zabbix service on saltstack

Saltstack deploys zabbix service

environment

Host ip Serve
master 192.168.200.132 salt-matser
node1 192.168.200.133 salt-minion

[root@master salt]# tree prod/
prod/
|-- modules
| |-- application
| | `-- php
| | |-- files
| | | |-- install.sh
| | | |-- oniguruma-devel-6.8.2-2.el8.x86_64.rpm
| | | |-- php-7.4.24.tar.gz
| | | |-- php-fpm
| | | |-- php-fpm.conf
| | | |-- php-fpm.service
| | | `-- www.conf
| | `-- install.sls
| |-- database
| | `--mysql
| | |-- files
| | | |-- install.sh
| | | |-- my.cnf
| | | |--mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz
| | | |--mysql.server
| | | `--mysqld.service
| | `-- install.sls
| `-- web
| `-- apache
| |-- files
| | |-- apr-1.7.0.tar.gz
| | |-- apr-util-1.6.1.tar.gz
| | |-- httpd-2.4.49.tar.gz
| | |-- httpd.conf
| | |-- httpd.service
| | |-- index.php
| | `-- install.sh
| `-- install.sls
`-- zabbix
    |-- apache.sls
    |-- files
    | |-- index.php
    | |-- install.sh
    | |--mysql.conf
    | |-- php.ini
    | |-- vhosts.conf
    | |-- zabbix-5.4.4.tar.gz
    | `-- zabbix_server.conf
    |-- main.sls
    |--mysql.sls
    `-- zabbix.sls

Install httpd, mysql, php

Install httpd

[root@master salt]# cat prod/modules/web/apache/install.sls 
apache-dep-package:
  pkg.installed:
    -pkgs:
      - openssl-devel
      - pcre-devel
      - expat-devel
      -libtool
      -gcc
      - gcc-c++
      - make

apache:
  user.present:
    - shell: /sbin/nologin
    -createhome:false
    -system: true

apache-download:
  file.managed:
    - names:
      - /usr/src/apr-1.7.0.tar.gz:
        - source: salt://modules/web/apache/files/apr-1.7.0.tar.gz
      - /usr/src/apr-util-1.6.1.tar.gz:
        - source: salt://modules/web/apache/files/apr-util-1.6.1.tar.gz
      - /usr/src/httpd-2.4.49.tar.gz:
        - source: salt://modules/web/apache/files/httpd-2.4.49.tar.gz

/usr/lib/systemd/system/httpd.service:
  file.managed:
    - source: salt://modules/web/apache/files/httpd.service
    - user: root
    - group: root
    - mode: '0644'

salt://modules/web/apache/files/install.sh:
  cmd.script

/usr/local/httpd/conf/httpd.conf:
  file.managed: 
    - source: salt://modules/web/apache/files/httpd.conf
    - user: root
    - group: root
    - mode: '0644'
[root@master salt]# cat prod/modules/web/apache/files/install.sh 
#!/bin/bash

cd /usr/src
rm -rf apr-1.7.0 apr-util-1.6.1 httpd-2.4.49

tar xf apr-1.7.0.tar.gz
tar xf apr-util-1.6.1.tar.gz
tar xf httpd-2.4.49.tar.gz

cd /usr/src/apr-1.7.0
sed -i '/$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.49
./configure --prefix=/usr/local/httpd \
        --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 && \
systemctl daemon-reload

Install mysql

[root@master salt]# cat prod/modules/database/mysql/install.sls
ncurses-compat-libs: 
  pkg.installed

create-mysql-user:
  user.present:
    - name: mysql
    -system: true
    -createhome:false
    - shell: /sbin/nologin

create-datadir:
  file.directory: 
    - name: /opt/data
    - user: mysql
    - group: mysql
    - mode: '0755'
    -makedirs: true


/usr/src/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz:
  file.managed: 
    - source: salt://modules/database/mysql/files/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz
    - user: root
    - group: root
    - mode: '0644'

salt://modules/database/mysql/files/install.sh:
  cmd.script

trasfer-files: 
  file.managed: 
    - names: 
      - /usr/local/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
[root@master salt]# cat prod/modules/database/mysql/files/install.sh
#!/bin/bash

cd /usr/src
tar xf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C /usr/local
ln -s /usr/local/mysql-5.7.34-linux-glibc2.12-x86_64 /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql*
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data/
echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh

Install PHP

[root@master salt]# cat prod/modules/application/php/install.sls
/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

dep-package-install: 
  pkg.installed: 
    -pkgs: 
      - 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
      - libmcrypt
      - libmcrypt-devel
      - readline
      - readline-devel
      -libxslt
      - libxslt-devel
      -mhash
      - mhash-devel
      - php-mysqlnd
      - libsqlite3x-devel
      - libzip-devel


/usr/src/php-7.4.24.tar.gz:
  file.managed: 
    - source: salt://modules/application/php/files/php-7.4.24.tar.gz
    - user: root
    - group: root
    - mode: '0644'

#salt://modules/application/php/files/install.sh:
# cmd.script

copyphp: 
  file.managed: 
    - names: 
      - /etc/init.d/php-fpm:
        - source: salt://modules/application/php/files/php-fpm
        - user: root
        - group: root
        - mode: '0755'
      - /usr/local/php7/etc/php-fpm.conf:
        - source: salt://modules/application/php/files/php-fpm.conf
      - /usr/local/php7/etc/php-fpm.d/www.conf:
        - source: salt://modules/application/php/files/www.conf
      - /usr/lib/systemd/system/php-fpm.service:
        - source: salt://modules/application/php/files/php-fpm.service

php-fpm.service:
  service.running:
    -enable: true
[root@master salt]# cat prod/modules/application/php/files/install.sh
#!/bin/bash

cd /usr/src
rm -rf php-7.4.24
tar xf php-7.4.24.tar.gz
cd 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

Deploy the lamp architecture environment required by Zabbix

[root@master salt]# cat prod/zabbix/apache.sls
"Development Tools":
  pkg.group_installed

include: 
  -modules.web.apache.install

/usr/include/httpd:
  file.symlink: 
    - target: /usr/local/apache/include

/usr/local/httpd/htdocs/zabbix:
  file.directory: 
    - user: root
    - group: root
    - mode: '0775'
    -makedirs: true

/usr/local/httpd/htdocs/zabbix/index.php:
  file.managed: 
    - source: salt://zabbix/files/index.php
    - user: root
    - group: root
    - mode: '0644'

/usr/local/httpd/conf/extra/vhosts.conf:
  file.managed: 
    - source: salt://zabbix/files/vhosts.conf
    - user: root
    - group: root
    - mode: '0644'

zabbix-apache-service:
  service.running: 
    - name: httpd
    -enable: true
[root@master salt]# cat prod/zabbix/mysql.sls
lamp-dep-package: 
  pkg.installed: 
    -pkgs: 
      - ncurses-devel
      - openssl-devel
      - openssl
      - cmake 
      - mariadb-devel

include:
  -modules.database.mysql.install

provides-mysql-file:
  file.managed: 
    - user: root
    - group: root
    - mode: '0644'
    - names: 
      - /etc/my.cnf:
        - source: salt://zabbix/files/my.cnf
      - /etc/ld.so.conf.d/mysql.conf:
        - source: salt://zabbix/files/mysql.conf


/usr/local/include/mysql:
  file.symlink: 
    - target: /usr/local/mysql/include

mysqld.service:
  service.running: 
    -enable: true

mysqld-set-password: 
  cmd.run:
    - name: /usr/local/mysql/bin/mysql -e "set password = password('123456');"

insert image description here

Install Zabbix

[root@master salt]# cat prod/zabbix/zabbix.sls    
zabbix-dep-packages:
  pkg.installed:

   -pkgs:
     - net-snmp-devel
     - libevent-devel

zabbix:
  user.present:
    - shell: /sbin/nologin
    -system: true
    -createhome:false

/usr/src/zabbix-5.4.4.tar.gz:
  file.managed:
    - source: salt://zabbix/files/zabbix-5.4.4.tar.gz

salt://zabbix/files/install.sh:
  cmd.script

/usr/local/etc/zabbix_server.conf:
  file.managed:
    - source: salt://zabbix/files/zabbix_server.conf



/var/lib/mysql:
  file.directory:
    - user: root
    - group: root      
    - mode: '0755'

/var/lib/mysql/mysql.sock:
  file.symlink:
    - target: /tmp/mysql.sock



zabbix_server:
  cmd.run:
    - names:
      -cp -r /usr/src/zabbix-5.4.4/ui/* /usr/local/httpd/htdocs/zabbix/
      -zabbix_server
      - zabbix_agentd

/etc/php.ini:
  file.managed:
    - source: salt://zabbix/files/php.ini
    - user: root
    - group: root
    - mode: '0644'

reload-service:
  service.running:
    - reload: true
    - names:
      - httpd
      -php-fpm
[root@master salt]# cat prod/zabbix/files/install.sh 
#!/bin/bash

cd /usr/src
tar xf zabbix-5.4.4.tar.gz -C /usr/src

/usr/local/mysql/bin/mysql -uroot -p123456 -e "create database zabbix character set utf8 collate utf8_bin;"
/usr/local/mysql/bin/mysql -uroot -p123456 -e "grant all privileges on zabbix.* to zabbix@localhost identified by '123';"
/usr/local/mysql/bin/mysql -uroot -p123456 -e "flush privileges;"

cd /usr/src/zabbix-5.4.4/database/mysql/
/usr/local/mysql/bin/mysql -uroot -p123456 zabbix < schema.sql
/usr/local/mysql/bin/mysql -uroot -p123456 zabbix < images.sql
/usr/local/mysql/bin/mysql -uroot -p123456 zabbix < data.sql

cd /usr/src/zabbix-5.4.4
./configure --enable-server \
        --enable-agent \
        --with-mysql \
        --with-net-snmp \
        --with-libcurl \
        --with-libxml2 && \
        make install 

insert image description here

This is the end of this article about deploying zabbix service with saltstack. For more information about deploying zabbix service with saltstack, please search previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Detailed explanation of Zabbix monitoring SQL Server service status
  • Zabbix monitors the process of Linux system services
  • Tutorial on how to deploy zabbix server monitoring under ubuntu system

<<:  Detailed explanation of Javascript event capture and bubbling methods

>>:  Summary of the style modification of the input box of type="file"

Recommend

Use of MySQL SHOW STATUS statement

To do MySQL performance adjustment and service st...

Complete steps for mounting a new data disk in CentOS7

Preface I just bought a new VPS. The data disk of...

How to set and get the number of Mysql connections

Get the number of connections --- Get the maximum...

Summary of some reasons why crontab scheduled tasks are not executed

Preface I recently encountered some problems at w...

Detailed explanation of CSS line-height and height

Recently, when I was working on CSS interfaces, I...

Javascript scope and closure details

Table of contents 1. Scope 2. Scope Chain 3. Lexi...

Graphic tutorial on installing Mac system in virtual machine under win10

1. Download the virtual machine version 15.5.1 I ...

Vue+spring boot realizes the verification code function

This article example shares the specific code of ...

How to install theano and keras on ubuntu system

Note: The system is Ubuntu 14.04LTS, a 32-bit ope...

An example of how Tomcat manages Session

Learned ConcurrentHashMap but don’t know how to a...

Comparative Analysis of MySQL Binlog Log Processing Tools

Table of contents Canal Maxwell Databus Alibaba C...

What I learned while building my own blog

<br />In one year of blogging, I have person...

Detailed tutorial for downloading, installing and configuring MySQL 5.7.27

Table of contents 1. Download steps 2. Configure ...