企业运维实战--saltstack部署zabbix监控
前言
saltstack,自动化运维工具,详细介绍与安装可参考本人博客:
企业运维实战–自动化运维Saltstack(上)之saltstack的安装部署、远程执行、grains和pillar详解以及Jinja模板的使用
企业运维实战–自动化运维Saltstack(下)之 saltstack配置keepalived、salt-job、salt-syndic、salt-api
zabbix,企业级监控平台,详细介绍与安装可参考本人博客:
企业运维实战–Zabbix教程之zabbix安装与server+web+agent搭建
本章我们将通过自动化运维saltstack的方式安装部署zabbix监控,包括zabbix-server + zabbix-agent + zabbix-web的搭建。
操作
配置saltstack操作环境
实验环境介绍:
两台rhel7.6的虚拟机server1、server2,其中server1为saltstack的master端,server2为saltstack的minion端,在server2上配置zabbix的所有东西,火墙和selinux全部关掉。
首先server1、server2配置saltstack,
server1:
配置软件仓库:
安装salt-master服务并开启
yum install -y salt-master.noarch
systemctl enable --now salt-master.service
server2安装salt-minion服务并开启
yum install -y salt-minion.noarch
修改配置文件指向master
vim /etc/salt/minion
master: 172.25.9.1
开启服务,在server1端添加到信任清单
salt-key -A
salt-key -L
测试saltstack是否配置完成:
salt server2 test.ping
配置好saltstack后开始在server2端进行zabbix配置.
server2端:
配置软件仓库
vim /etc/yum.repos.d/zabbix.repo
分别对zabbix-server,zabbix-db,zabbix-agent,zabbix-web进行使用saltstack进行安装配置。
使用satlstack配置zabbix
安装包下载
先安装所有需要的包,包括zabbix-server-mysql,zabbix-agent,zabbix-web-mysql,mariadb-server,MySQL-python
vim /srv/salt/zabbix-repo/init.sls
all-install:
pkg.installed:
- pkgs:
- zabbix-server-mysql
- zabbix-agent
- zabbix-web-mysql
- mariadb-server
- MySQL-python
测试,执行:
salt server2 state.sls zabbix-repo
所有包安装完成,查看/usr/share/doc/zabbix-server-mysql-4.0.5中create.sql.gz是否存在,为zabbix-db配置做准备。
将数据包传到server1的zabbix-db中为修改后续数据库配置作准备。
数据库配置
创建库,授权用户,导入数据
db-running:
service.running:
- name: mariadb
db-configure:
mysql_database.present:
- name: zabbix
- character_set: utf8
- collate: utf8_bin
- connection_user: root
- connection_pass:
mysql_user.present:
- name: zabbix
- host: localhost
- password: westos
- connection_user: root
- connection_pass:
mysql_grants.present:
- grant: all privileges
- database: zabbix.*
- user: zabbix
- connection_user: root
- connection_pass:
file.managed:
- name: /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz
- source: salt://zabbix-db/create.sql.gz
# cmd.wait:当watch中的内容发生变化时才执行,cmd.run为一直执行
# 此处如果使用cmd.run 会一直导入数据,导致报错
cmd.wait:
- name: zcat /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz | mysql -uroot zabbix
- watch:
- mysql_database: db-configure
将之前的文件create.sql.gz准备好
执行
salt server2 state.sls zabbix-db
进入server2数据库中查看导入结果
配置zabbix文件并启动服务
将server2中已经zabbix-server主配置文件传给server1中
server1中修改配置文件
vim init.sls
zabbix-server:
file.managed:
- name: /etc/zabbix/zabbix_server.conf
- source: salt://zabbix-server/zabbix_server.conf
service.running:
- name: zabbix-server
- enable: true
- reload: true
- watch:
- file: zabbix-server
测试执行:
salt server2 state.sls zabbix-server
检查server2中文件是否修改,服务是否启动
进程显示zabbix-server已经开启,配置zabbix-server成功。
agent端开启服务
vim /srv/salt/zabbix-agent/init.sls
zabbix-agent:
service.running:
- name: zabbix-agent
- enable: true
执行,
salt server2 state.sls zabbix-agent
server2中查看进程ps ax
zabbix-web配置并开启服务
server2中将apache虚拟机主机zabbix文件拷贝到server1中
修改文件中的时区
vim init.sls
zabbix-web:
file.managed:
- name: /etc/httpd/conf.d/zabbix.conf
- source: salt://zabbix-web/zabbix.conf
service.running:
- name: httpd
- enable: true
- watch:
- file: zabbix-web
执行:
salt server2 state.sls zabbix-web
测试:firefox: http://http://172.25.9.2/zabbix/
highstate调用
vim /srv/salt/top.sls
base:
'server2':
- zabbix-repo
- zabbix-db
- zabbix-server
- zabbix-agent
- zabbix-web
highstate调用top
salt server2 state.highstate
执行成功,进入网页测试:
firefox:172.25.9.2/zabbix/