以下是我部署zabbix的各个主机具体分工
server | 安装zabbix-server |
---|---|
db | 安装mariadb数据库 |
web | zabbix-web,Web前端 |
[devops@server1 ansible]$ cat hosts
[server]
172.25.34.1
[db]
172.25.34.2
[web]
172.25.34.3
[agent]
172.25.34.2
172.25.34.3
[devops@server1 ansible]$ ls
ansible.cfg hosts zabbix
[devops@server1 ansible]$ ls zabbix/
agent.yml db.yml my.cnf web.yml zabbix.conf
create.sql.gz deploy.yml server.yml zabbix_agentd.conf.j2 zabbix_server.conf
agent
[devops@server1 zabbix]$ cat agent.yml
- 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: start zabbix-agent
service:
name: "{{ item }}"
state: started
loop:
- zabbix-agent
- firewalld
- name: config zabbix-agent
copy:
src: zabbix_agentd.conf
dest: /etc/zabbix/zabbix_agentd.conf
owner: root
group: zabbix
mode: 644
notify: restart zabbix-agent
handlers:
- name: restart zabbix-agent
service:
name: zabbix-agent
state: restarted
server
---
- hosts: server
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: 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
- firewalld
- name: config firewalld
firewalld:
port: 10051/tcp
permanent: yes
immediate: yes
state: enabled
handlers:
- name: restart zabbix-server
service:
name: zabbix-server
state: restarted
db
---
- 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: '{{ item }}'
state: started
enabled: yes
loop:
- mariadb
- firewalld
- name: create database 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
- name: config firewalld
firewalld:
service: mysql
permanent: yes
immediate: yes
state: enabled
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: create.sql.gz
web
---
- 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
- firewalld
- name: config firewalld
firewalld:
service: http
permanent: yes
immediate: yes
state: enabled
handlers:
- name: restart httpd
service:
name: httpd
state: restarted
更改zabbix.conf文件中的时区
更改my.cnf 支持中文
character_set_server=utf8
更改zabbix-agent.conf
Server=172.25.34.1
ServerActive=172.25.34.1
Hostname={{ ansible_hostname}}
更改zabbix_server.conf
DBpassword=zabbix ##有DB的要改