一、简单介绍zabbix
Zabbix 是一个高度集成的网络监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用。具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制).Zabbix 通过 C/S 模式采集数据,通过 B/S 模式在 web 端展示和配置:
- Client(被监控)端: 主机通过安装 agent 方式采集数据,网络设备通过 SNMP 方式采集数据
- Server (服务)端: 通过收集 SNMP 和 agent 发送的数据,写入数据库再通过 php+apache 在 web 前端展示。
Zabbix功能
- 支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
- 支持自动发现(low discovery)key 实现动态监控项的批量监控(需写脚本)
- 支持分布式,能集中展示、管理分布式的监控点
- 扩展性强,server 提供通用接口(api 功能),可以自己开发完善各类监控(根据相关接口编写程序实现)
二、编写Playbook——Zabbix自动安装部署
主机名(ip) | 服务 |
---|---|
server1(172.25.2.1) | ansible、mariadb |
server2(172.25.2.2) | 被管控主机hosts、zabbix-server、zabbix-agent |
server3(172.25.2.3) | 被管控主机hosts、web前端 |
1、定义Inventory文件:vim /home/devops/ansible/hosts
2、创建zabbix目录、存放需要的配置文件: mkdir zabbix
3、编写YAML文件: vim deploy.yml
---
- hosts: mariadb
##对mariadb主机进行操作
tasks:
- name: install mariadb
yum:
name: mariadb-server,MySQL-python
state: present
- name: config mariadb
copy:
src: my.cnf #数据库安全初始化文件
dest: /etc/my.cnf
notify: restart mariadb
- name: start mariadb #开启数据库
service:
name: '{
{ item }}' #引用变量
state: started
enabled: yes
loop:
- mariadb
- firewalld
- name: create database zabbix #创建数据库zabbix
mysql_db:
login_user: root
login_password: westos
name: zabbix
state: present
notify: import create.sql #使用触发器
- name: create user
mysql_user:
login_user: root
login_password: westos
name: zabbix
password: zabbix
host: '%' #%是匹配所有host的主机,即接收所有主机访问
priv: 'zabbix.*:ALL' #授权
state: present
- name: copy create.sql
copy: