物理机搭建zabbix软件仓库
[root@foundation8 zabbix]# ls
4.4
[root@foundation8 zabbix]# cd 4.4/
[root@foundation8 4.4]# ls
apache-tomcat-8.5.24.tar.gz
fping-3.10-1.el7.x86_64.rpm
jdk-8u121-linux-x64.rpm
oneitsm_zabbix_release-1.2.0.tar.gz
percona-zabbix-templates-1.1.8-1.noarch.rpm
php-5.4.16-46.el7.x86_64.rpm
php-bcmath-5.4.16-46.el7.x86_64.rpm
php-cli-5.4.16-46.el7.x86_64.rpm
php-common-5.4.16-46.el7.x86_64.rpm
php-gd-5.4.16-46.el7.x86_64.rpm
php-ldap-5.4.16-46.el7.x86_64.rpm
php-mbstring-5.4.16-46.el7.x86_64.rpm
php-mysql-5.4.16-46.el7.x86_64.rpm
php-pdo-5.4.16-46.el7.x86_64.rpm
php-xml-5.4.16-46.el7.x86_64.rpm
repodata
zabbix-agent-4.4.1-1.el7.x86_64.rpm
zabbix-get-4.4.1-1.el7.x86_64.rpm
zabbix-java-gateway-4.4.1-1.el7.x86_64.rpm
zabbix-proxy-mysql-4.4.1-1.el7.x86_64.rpm
zabbix-sender-4.4.1-1.el7.x86_64.rpm
zabbix-server-mysql-4.4.1-1.el7.x86_64.rpm
zabbix-web-4.4.1-1.el7.noarch.rpm
zabbix-web-mysql-4.4.1-1.el7.noarch.rpm
[root@foundation8 4.4]# pwd
/mnt/zabbix/4.4
目录结构
[root@server1 srv]# ls
pillar salt
[root@server1 srv]# tree
.
├── pillar
│ ├── top.sls
│ └── zabbix.sls
└── salt
├── mariadb
│ ├── files
│ │ └── create.sql.gz
│ └── install.sls
├── repos
│ └── zabbix.sls
├── top.sls
├── zabbix-agent
│ ├── files
│ │ └── zabbix_agentd.conf
│ └── install.sls
├── zabbix-server
│ ├── files
│ │ └── zabbix_server.conf
│ └── install.sls
└── zabbix-web
├── files
│ └── zabbix.conf
└── install.sls
数据库脚本
[root@server1 mariadb]# cat 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: westos
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: westos
mysql_user.present:
- name: zabbix
- host: localhost
- password: westos
- connection_user: root
- connection_pass: westos
mysql_grants.present:
- grant: all privileges
- database: zabbix.*
- user: zabbix
- connection_user: root
- connection_pass: westos
cmd.wait:
- name: zcat /mnt/create.sql.gz | mysql -pwestos zabbix
- watch:
- mysql_database: db-configure
/srv/salt/top.sls 查看脚本部署
[root@server1 salt]# cat top.sls
base:
'server2':
- mariadb.install
- zabbix-server.install
- zabbix-web.install
'server3':
- zabbix-agent.install
zabbix-server 部署文件
[root@server1 zabbix-server]# cat 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
jinja模版文件中修改
[root@server1 files]# vim zabbix_agentd.conf
124 DBPassword={{ dbpasswd }}
zabbix-agent 部署文件
[root@server1 zabbix-agent]# cat 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
模版文件中修改
98 Server={{ zabbixserver }}
139 ServerActive={{ zabbixserver }}
150 Hostname={{ hostname }}
zabbix-web文件内容
root@server1 zabbix-web]# cat install.sls
include:
- repos.zabbix
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
web文件时区修改
20 php_value date.timezone Asia/Shanghai
pallar 目录文件
[root@server1 pillar]# ls
top.sls zabbix.sls
[root@server1 pillar]# cat top.sls
base:
'*':
- zabbix
[root@server1 pillar]# cat zabbix.sls
{% if grains['fqdn'] == 'server2' %}
DBPASSWD: westos
{% else %}
ZABBIX-SERVER: 172.25.0.2
{% endif %}
推送执行脚本
[root@server1 pillar]# salt '*' state.highstate
浏览器访问 http://172.25.8.2/zabbix