ansible-playbook实现zabbix部署
**首先zabbix需要三个组成部分
1.数据库
2.zabbix-server端
3.zabbix-web端
且server端要和数据库相连
在hosts里面设置三个群组如图
**
先做免密
找到本机的密钥文件路径
找模板
将模板复制改改,
设定为devops用户可以免密连接
推送,这时候要用参数ask-pass指令
为了不混乱,我们建立zabbix文件夹在里面写影推送的yml文件
先配置数据库模块
这个例子是添加一个数据表利用mysql_db模块
再看看hosts文件写的内容
将数据库的配置文件复制到zabbix目录下,里面加入中文字符类型,utf8
这是内容,和之前弄的那个数据库差不多
推
server1是指定的数据库服务器,登到上面去看看,字符类型有utf8
找找添加用户的例子
加入进来,并且为用户设置权限
测试
要用网络yum源来安装zabbix,找例子
这是地址
保证要配置的服务器能上网
先添加yum源和更新源,再安装
看看内容
试试
要把这个create.sql.gz导入到数据库的zabbix表里面去
先复制到zabbix目录下
对数据库进行初始化,设置root用户密码
配置文件,登陆数据库后操作,要将create.sql.gz文件导入到zabbix表里面
如图
再推
前往不要把文件位置搞错了,再看看
看看权限
配置zabbix-server端
修改配置文件如图,因为刚才已经安装了zabbix_server,所以,在服务器2上会有文件,如果没有文件,去2上的/etc/zabbix/zabbix_server.conf拷一个到当前目录下
试推
这是配置web端的配置文件
改个时区就好
配置web端,他是基于http发布出来的,还要链接数据库
访问如下地址就好了
注:这里为啥连不上数据库
1.由于你导入create.sql.gz看似导入实际zabbix表里面是空的,再倒一遍就好
2.由于 配置文件中mysql的路径写错了,修改配置文件zabbix_server.conf里面数据库的路径,重推
3.由于selinux和防火墙没关,将所有主机的火墙和selinux关掉
文件好着
我是selinux没有关
登陆默认用户admin
密码zabbix
改成中文的
添加自动发现
关闭
红了
再看看配置文件
代码段
---
- hosts: db
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: mariadb
state: started
- name: Create a databases 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: '%'
priv: 'zabbix.*:ALL'
state: present
- name: copy create.sql
copy:
src: create.sql.gz
dest: /tmp/create.sql.gz
handlers:
- name: restart mariadb
service:
name: mariadb
state: restarted
- name: import create.sql
mysql_db:
login_user: root
login_password: westos
name: zabbix
state: import
target: /tmp/create.sql.gz
- hosts: server
tasks:
- name: add zabbix repo
yum_repository:
name: zabbix
description: zabbix 4.0 YUM repo
baseurl: https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/
gpgcheck: no
- name: add update repo
yum_repository:
name: update
description: non-supported
baseurl: https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/x86_64/
gpgcheck: no
- name: install zabbix-server
yum:
name: zabbix-server-mysql,zabbix-agent
state: present
- name: config zabbix-server
copy:
src: zabbix_server.conf
dest: /etc/zabbix/zabbix_server.conf
owner: root
group: zabbix
mode: 640
notify: restart zabbix-server
- name: start zabbix-server
service:
name: '{{ item }}'
state: started
loop:
- zabbix-server
- zabbix-agent
handlers:
- name: restart zabbix-server
service:
name: zabbix-server
state: restarted
- hosts: web
tasks:
- name: add zabbix repo
yum_repository:
name: zabbix
description: zabbix 4.0
baseurl: https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/
gpgcheck: no
- name: add update repo
yum_repository:
name: update
description: non-supported
baseurl: https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/x86_64/
gpgcheck: no
- name: add centos repo
yum_repository:
name: centos
description: centos 7
baseurl: https://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck: no
- name: install zabbix-web
yum:
name: zabbix-web-mysql
state: present
- name: config zabbix-web
copy:
src: zabbix.conf
dest: /etc/httpd/conf.d/zabbix.conf
notify: restart httpd
- name: start httpd
service:
name: '{{ item }}'
state: started
loop:
- httpd
handlers:
- name: restart httpd
service:
name: httpd
state: restarted
- hosts: agent
tasks:
- name: add zabbix repo
yum_repository:
name: zabbix
description: zabbix 4.0
baseurl: https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/
gpgcheck: no
- name: install zabbix-agent
yum:
name: zabbix-agent
state: present
- name: config zabbix-agent
copy:
src: zabbix_agentd.conf
dest: /etc/zabbix/zabbix_agentd.conf
owner: root
group: root
mode: 644
notify: restart zabbix-agent
- name: start zabbix-agent
service:
name: zabbix-agent
state: started
handlers:
- name: restart zabbix-agent
service:
name: zabbix-agent
state: restarted