SaltStack自動化運維管理——一鍵部署zabbix監控

1. 準備工作

三臺虛擬機:server1,server2,server3,關閉火牆和selinux,可以連網,並且已經完成saltstack的部署(配置過程點擊這裏查看)。

salt-master端:server1
salt-minion端:server2和server3

2. 搭建軟件倉庫

在真機中,搭建zabbix軟件倉庫,加快部署效率

cd zabbix/4.4/
ls
apache-tomcat-8.5.24.tar.gz                  php-gd-5.4.16-46.el7.x86_64.rpm        zabbix-java-gateway-4.4.1-1.el7.x86_64.rpm
fping-3.10-1.el7.x86_64.rpm                  php-ldap-5.4.16-46.el7.x86_64.rpm      zabbix-proxy-mysql-4.4.1-1.el7.x86_64.rpm
jdk-8u121-linux-x64.rpm                      php-mbstring-5.4.16-46.el7.x86_64.rpm  zabbix-sender-4.4.1-1.el7.x86_64.rpm
oneitsm_zabbix_release-1.2.0.tar.gz          php-mysql-5.4.16-46.el7.x86_64.rpm     zabbix-server-mysql-4.4.1-1.el7.x86_64.rpm
percona-zabbix-templates-1.1.8-1.noarch.rpm  php-pdo-5.4.16-46.el7.x86_64.rpm       zabbix-web-4.4.1-1.el7.noarch.rpm
php-5.4.16-46.el7.x86_64.rpm                 php-xml-5.4.16-46.el7.x86_64.rpm       zabbix-web-mysql-4.4.1-1.el7.noarch.rpm
php-bcmath-5.4.16-46.el7.x86_64.rpm          simkai.ttf                             zbx_percona_mysql_template_20200312_191902.xml
php-cli-5.4.16-46.el7.x86_64.rpm             zabbix-agent-4.4.1-1.el7.x86_64.rpm    zbx_percona_mysql_template.xml
php-common-5.4.16-46.el7.x86_64.rpm          zabbix-get-4.4.1-1.el7.x86_64.rpm

在這裏插入圖片描述

3. 配置倉庫目錄

在server1中:

cd /srv/salt
mkdir repos
cd repos/
vim zabbix.sls

zabbix:
  pkgrepo.managed:
    - baseurl: http://172.25.1.250/zabbix/4.4
    - gpgcheck: 0

在這裏插入圖片描述

4. 配置數據庫

在server1中:

mkdir /srv/salt/mariadb
cd /srv/salt/mariadb
vim install.sls

db-install:
  pkg.installed:
    - pkgs:
      - mariadb-server
      - mariadb
      - MySQL-python


  service.running:
    - name: mariadb
 
  cmd.run:
    - name: mysql -e "DELETE FROM mysql.user WHERE User='';" && mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" && mysql -e "DROP DATABASE IF EXISTS test;" && mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" && mysql -e "FLUSH PRIVILEGES;"
    - onlyif: mysql -e "show databases;"

  mysql_user.present:
    - name: root
    - password: redhat

db-configure:
  file.managed:
    - name: /mnt/create.sql.gz
    - source: salt://mariadb/files/create.sql.gz

  mysql_database.present:
    - name: zabbix
    - character_set: utf8
    - collate: utf8_bin
    - connection_user: root
    - connection_pass: redhat

  mysql_user.present:
    - name: zabbix
    - host: localhost
    - password: westos
    - connection_user: root
    - connection_pass: redhat

  mysql_grants.present:
    - grant: all privileges
    - database: zabbix.*
    - user: zabbix
    - connection_user: root
    - connection_pass: redhat

  cmd.wait:
    - name: zcat /mnt/create.sql.gz | mysql -predhat zabbix
    - watch:
      - mysql_database: db-configure

在這裏插入圖片描述
在這裏插入圖片描述
在這裏,我們需要提前得到create.sql.gz 並且放指定目錄/srv/salt/mariadb/files中(提前在某臺主機上安裝zabbix獲取/usr/share/doc/zabbix-server-mysql-4.4.1/create.sql.gz)
files目錄下爲要導入的數據庫,將zabbix數據導入到數據庫中的文件 create.sql.gz

cd /srv/salt/mariadb/files/
ls

在這裏插入圖片描述

5. 配置zabbix-server

mkdir /srv/salt/zabbix-server
vim /srv/salt/zabbix-server/install.sls

include:
  - repos.zabbix

server-install:
  pkg.installed:
    - pkgs:
      - zabbix-server-mysql
      - zabbix-agent

  file.managed:
    - name: /etc/zabbix/zabbix_server.conf
    - source: salt://zabbix-server/files/zabbix_server.conf
    - template: jinja
    - context:
      dbpasswd: {{ pillar['DBPASSWD'] }}

  service.running:
    - name: zabbix-server
    - watch:
      - file: server-install

zabbix-agent:
  service.running

在這裏插入圖片描述

這裏我們同樣需要提前得到zabbix_server.conf(/etc/zabbix/zabbix_server.conf)放到指定目錄/srv/salt/zabbix-server/files中,並進行修改:

cd /srv/salt/zabbix-server/files/
ls

vim zabbix_server.conf

124 DBPassword={{ dbpasswd }}

在這裏插入圖片描述
在這裏插入圖片描述

6. 配置zabbix-agent

mkdir /srv/salt/zabbix-agent
cd /srv/salt/zabbix-agent
vim install.sls

include:
  - repos.zabbix

agent-install:
  pkg.installed:
    - name: zabbix-agent

  file.managed:
    - name: /etc/zabbix/zabbix_agentd.conf
    - source: salt://zabbix-agent/files/zabbix_agentd.conf
    - template: jinja
    - context:
      zabbixserver: {{ pillar['ZABBIX-SERVER'] }}
      hostname: {{ grains['fqdn'] }}

  service.running:
    - name: zabbix-agent
    - watch:
      - file: agent-install

在這裏插入圖片描述

這裏我們同樣需要提前得到zabbix_server.conf(/etc/zabbix/zabbix_server.conf)放到指定目錄/srv/salt/zabbix-agent/files中,並進行修改:

cd /srv/salt/zabbix-agent/files/
ls

vim zabbix_agentd.conf

 98 Server={{ zabbixserver }}
 
139 ServerActive={{ zabbixserver }}

150 Hostname={{ hostname }}

在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

7. 配置zabbix-web

mkdir /srv/salt/zabbix-web
cd /srv/salt/zabbix-web
vim install.sls

web-install:
  pkg.installed:
    - pkgs:
      - zabbix-web-mysql
      - zabbix-web
      - httpd
      - php
      - php-mysql

  file.managed:
    - name: /etc/httpd/conf.d/zabbix.conf
    - source: salt://zabbix-web/files/zabbix.conf

  service.running:
    - name: httpd
    - watch:
      - file: web-install

在這裏插入圖片描述

這裏我們同樣需要提前得到zabbix.conf(/etc/httpd/conf.d/zabbix.conf)放到指定目錄/srv/salt/zabbix-web/files中,並進行修改:

cd /srv/salt/zabbix-web/files/
ls

vim zabbix.conf
20         php_value date.timezone Asia/Shanghai    #修改時區

在這裏插入圖片描述
在這裏插入圖片描述

8. 編寫top文件

可以將上述的推送整合到top文件中,一鍵推送:

vim /srv/salt/top.sls

base:
  'server2':
    - mariadb.install
    - zabbix-server.install
    - zabbix-web.install
    - zabbix-agent.install

  'server3':
    - zabbix-agent.install

在這裏插入圖片描述

9. 編寫pillar目錄

mkdir /srv/pillar
cd /srv/pillar/
vim top.sls

base:
  '*':
    - zabbix

vim zabbix.sls

{% if grains['fqdn'] == 'server2' %}
DBPASSWD: redhat
{% else %}
ZABBIX-SERVER: 172.25.1.2
{% endif %}

在這裏插入圖片描述

10. 一鍵推送部署

salt '*' state.highstate

瀏覽器輸入訪問:http://172.25.1.2/zabbix

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

登陸成功:
在這裏插入圖片描述

在這裏插入圖片描述

修改後:

在這裏插入圖片描述

添加監控主機:
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

到此,使用SaltStack一鍵部署zabbix監控就完成了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章