使用SaltStack自动化安装zabbix-server
1,设置ntp时间同步
2,安装zabbix-agent
3,安装zabbix-server
4,安装及配置mariadb(mariadb与zabbix-server在同一台服务器)
环境

salt-master配置/etc/salt/master

开启top

目录结构

ntp/install.sls
ntp-install:
pkg.installed:
- name: ntpdate
ntp-crontab:
cmd.run:
- name: echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com' >>/var/spool/cron/root
- unless: test `grep 'ntpdate' /var/spool/cron/root | wc -l` > 0
安装ntpdate时间同步软件并且设置定时任务每隔5分钟同步时间
这里设置一个unless假如已经在定时任务里面有设置时间同步则不执行设置以防重复
zabbix-agent/install.sls
zabbix-agent-install:
cmd.run:
- name: rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
- unless: test -f /etc/yum.repos.d/zabbix.repo
pkg.installed:
- name: zabbix-agent
zabbix-agent-service:
service.running:
- name: zabbix-agent
- enable: True
设置zabbix-agent源并且安装zabbix-agent设置自启动
假如已经安装了源则不设置yum源
zabbix-server/install.sls
zabbix-server-install:
cmd.run:
- name: rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
- unless: test -f /etc/yum.repos.d/zabbix.repo
pkg.installed:
- pkgs:
- zabbix-server-mysql
- zabbix-web-mysql
zabbix-server-service:
service.running:
- name: zabbix-server
- enable: True
zabbix-server-config:
file.managed:
- name: /etc/httpd/conf.d/zabbix.conf
- source: salt://zabbix-server/files/zabbix.conf
- mode: 644
- user: root
- group: root
httpd-config:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- sourec: salt://zabbix-server/files/httpd.conf
- mode: 644
安装zabbix-server并且设置配置文件
配置文件zabbix.conf修改时区为Asia/Shanghai
配置文件httpd.conf修改了 ServerName 127.0.0.1:80
mariadb/install.sls
mariadb-install:
pkg.installed:
- name: mariadb-server
mariadb-service:
service.running:
- name: mariadb
- enable: True
mariadb-config:
cmd.run:
- name: mysql -e "create database zabbix character set utf8 collate utf8_bin;grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';" && zcat `rpm -ql zabbix-server-mysql|grep create.sql.gz`|mysql -uzabbix -pzabbix zabbix && systemctl restart httpd
- require:
- service: mariadb-service
安装mariadb并且初始化zabbix库
这里刚刚安装mysql没有设置mysql密码,假如库zabbix已经存在会报错
top.sls
base:
'web1.example.com':
- ntp.install
- zabbix-agent.install
- zabbix-server.install
- mariadb.install
给节点安装执行
salt '*' state.highstate
如果是单独节点需要安装设置ntp和zabbix-agent则单独执行即可
执行完毕验证在浏览器输入地址安装配置即可
http://192.168.0.209/zabbix/zabbix.php