saltstack+zabbix
配置zabbix仓库
[root@server1 salt]# pwd
/srv/salt
[root@server1 salt]# mkdir zabbix-server
[root@server1 salt]# cd zabbix-server/
[root@server1 zabbix-server]# vim init.sls
zabbix-server:
pkgrepo.managed:
- name: zabbix
- humanname: zabbix 4.0
- baseurl: http://172.25.14.250/zabbix/4.0
- gpgcheck: 0
[root@server1 zabbix-server]# salt server2 state.sls zabbix-server #响应
安装mysql
安装
[root@server1 salt]# mkdir mysql
[root@server1 mysql]# vim init.sls
mysql-install:
pkg.installed:
- pkgs:
- mariadb-server
- MySQL-python
[root@server1 mysql]# salt server3 state.sls mysql
[root@server1 mysql]# mkdir files
[root@server1 mysql]# cd files/
[root@server1 files]# scp server3:/etc/my.cnf .
root@server3's password:
my.cnf 100% 570 394.8KB/s 00:00
[root@server1 files]# vim my.cnf
添加下列俩行
log-bin=mysql-bin
character-set-server=utf8
[root@server1 mysql]# salt server3 state.sls mysql
server3
[root@server3 ~]# mysql
MariaDB [(none)]> show variables like 'char%';
创建用户
[root@server1 mysql]# vim init.sls #追加末尾
mysql-config:
mysql_database.present:
- name: zabbix
mysql_user.present:
- name: zabbix
- host: localhost
- password: "westos"
[root@server1 mysql]# salt server3 state.sls mysql #响应
[root@server3 ~]# mysql
MariaDB [(none)]> show variables like 'char%';
MariaDB [(none)]> select * from mysql.user\G; #查看
真机远程连接server3的数据库成功
缺少相应文件,在server2上安装zabbix-server-mysql并将所需文件传给server1的/srv/salt/mysql/files/
[root@server2 ~]# yum install -y zabbix-server-mysql.x86_64
[root@server2 yum.repos.d]# cd /usr/share/doc/zabbix-server-mysql-4.0.5/
[root@server2 zabbix-server-mysql-4.0.5]# scp create.sql.gz server1:/srv/salt/mysql/files/
授权
[root@server1 files]# gunzip create.sql.gz
[root@server1 files]# ls
create.sql my.cnf
[root@server1 mysql]# vim init.sls #添加行
mysql_grants.present:
- grant: all privileges
- database: zabbix.*
- user: zabbix
- host: localhost #授予本地用户
file.managed:
- name: /mnt/create.sql
- source: salt://mysql/files/create.sql
cmd.run:
- name: mysql zabbix < /mnt/create.sql && touch /mnt/zabbix.lock
- creates: /mnt/zabbix.lock
[root@server1 mysql]# salt server3 state.sls mysql #响应
[root@server3 ~]# cd /mnt
[root@server3 mnt]# ls
create.sql zabbix.lock
[root@server3 ~]# mysql
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables;
zabbix部署
[root@server1 zabbix-server]# mkdir files
[root@server1 zabbix-server]# cd files/
[root@server1 files]# scp server2:/etc/zabbix/zabbix_server.conf .
[root@server1 files]# vim zabbix_server.conf
91 DBHost=172.25.14.3 #数据库主机为172.25.14.3
124 DBPassword=westos #数据库密码为westos
[root@server1 zabbix-server]# vim init.sls
zabbix-server:
pkgrepo.managed:
- name: zabbix
- humanname: zabbix 4.0
- baseurl: http://172.25.14.250/zabbix/4.0
- gpgcheck: 0
pkg.installed:
- pkgs: #所安装的软件
- zabbix-server-mysql
- zabbix-agent
- zabbix-web-mysql
file.managed:
- name: /etc/zabbix/zabbix_server.conf
- source: salt://zabbix-server/files/zabbix_server.conf
service.running:
- name: zabbix-server
- enable: true
- watch:
- file: zabbix-server
zabbix-agent:
service.running
[root@server1 zabbix-server]# salt server3 state.sls zabbix-server# 响应
[root@server2 ~]# yum install -y mariadb
[root@server2 zabbix]# mysql -h 172.25.14.3 -u zabbix -p
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables;
访问web前端
[root@server2 zabbix]# cd /etc/httpd/conf.d/
[root@server2 conf.d]# scp zabbix.conf server1:/srv/salt/zabbix-server/files
[root@server1 files]# vim zabbix.conf
php_value date.timezone Asia/Shanghai
[root@server1 zabbix-server]# vim init.sls ##添加行
zabbix-web:
file.managed:
- name: /etc/httpd/conf.d/zabbix.conf
- source: salt://zabbix-server/files/zabbix.conf
service.running:
- name: httpd
- enable: true
- watch:
- file: zabbix-web
[root@server1 zabbix-server]# salt server3 state.sls zabbix-server
浏览器访问172.25.14.3/zabbix
User:zabbix #数据库用户及密码
Password:westos
Username:Admin #默认用户和密码
Password: zabbix
登录成功