docker部署zabbix+ansile批量部署自动发现

18 篇文章 4 订阅
12 篇文章 0 订阅

1. docker部署zabbix

1.1 上传并解压zabbix镜像包

[root@localhost ~]# tar xzf zabbix_image.tar.gz 
[root@localhost ~]# cd zabbix/
[root@localhost zabbix]# ls
zabbix-agent.tar  zabbix-server.tar  zabbix-web.tar

1.2 导入zabbix镜像

[root@localhost zabbix]# docker load -i zabbix-agent.tar 
[root@localhost zabbix]# docker load -i zabbix-server.tar 
[root@localhost zabbix]# docker load -i zabbix-web.tar 

1.3 查看导入的zabbix镜像

[root@localhost ~]# docker images |grep zabbix 
zabbix/zabbix-web-nginx-mysql   latest              116855eaede2        2 weeks ago         164MB
zabbix/zabbix-server-mysql      latest              8ca9fbc31571        2 weeks ago         67.7MB
zabbix/zabbix-agent             latest              9084e5d9908f        2 weeks ago         16.4MB

1.4 mysql镜像

上传导入

[root@localhost ~]# tar xzf mysql5.7_utf8.tar.gz 
[root@localhost ~]# docker load -i mysql5.7_utf8.tar

1.5 编写compose文件

[root@localhost zabbix]# vim docker-compose.yml 
[root@localhost zabbix]# cat docker-compose.yml 
version: "3"
services:
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 123
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: 123
  zabbix-server:
    image: zabbix/zabbix-server-mysql
    ports:
      - "10051:10051"
    environment:
      DB_SERVER_HOST: mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: 123
    depends_on: 
      - mysql
  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql
    ports:
      - "80:8080"
    environment:
      DB_SERVER_HOST: mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: 123
      PHP_TZ: Asia/Shanghai
      ZBX_SERVER_HOST: zabbix-server
    depends_on: 
      - zabbix-server
      - mysql

1.6 基于compose文件运行容器

1.6.1 运行

[root@localhost zabbix]# docker-compose up -d
Creating network "zabbix_default" with the default driver
Creating zabbix_mysql_1 ... done
Creating zabbix_zabbix-server_1 ... done
Creating zabbix_zabbix-web_1    ... done

1.6.2 查看

[root@localhost zabbix]# docker-compose ps
         Name                       Command               State               Ports             
------------------------------------------------------------------------------------------------
zabbix_mysql_1           docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp           
zabbix_zabbix-server_1   /sbin/tini -- /usr/bin/doc ...   Up      0.0.0.0:10051->10051/tcp      
zabbix_zabbix-web_1      docker-entrypoint.sh             Up      0.0.0.0:80->8080/tcp, 8443/tcp
[root@localhost zabbix]# 

1.7 浏览器验证

1.7.1 登录

用户名:Admin
密码: zabbix
在这里插入图片描述

1.7.2 成功访问zabbix主页

在这里插入图片描述

1.7.3 设置中文

在这里插入图片描述

1.7.4 配置自动发现

1.7.4.1 添加自动发现规则

在这里插入图片描述

1.7.4.2 定义发现规则

在这里插入图片描述

1.7.4.3 配置动作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.7.4.4 查看自动发现

在这里插入图片描述

2.ansible批量部署

2.1 安装ansible

[root@localhost ~]# yum search ansible
[root@localhost ~]# yum -y install centos-release-ansible-29
[root@localhost ~]# yum -y insatll ansible

2.2 配置免密登录

2.2.1 生成秘钥对

[root@localhost ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:4VR+DrKshFAcKdb3Ax/+d46b4wQZsMGhCp6EKXbqGjA root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|   ooo .+..      |
| oo.+ o.o*       |
|+o+o ..==.+ .    |
|ooo+ o +=+ *     |
|E.o o . Soo .    |
|o.   . .  ... .  |
|..    .    ..+   |
|..         .o..  |
|.          .+o   |
+----[SHA256]-----+

2.2.2 复制 公钥到远程主机

[root@localhost ~]# ssh-copy-id root@192.168.153.184
[root@localhost ~]# ssh-copy-id root@192.168.153.185

2.3 配置主机清单

[root@localhost ~]# vim /etc/ansible/hosts 
[webservers]
192.168.153.184
192.168.153.185

2.4 验证主机的连通性

[root@localhost ~]# ansible all -m ping
192.168.153.185 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.153.184 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
[root@localhost ~]# 

2.5 编写playbook文件

[root@localhost agent]# vim agent.yml 
---
- hosts: webservers
  tasks:
    - name: "推送zabbix源"
      copy: src=zabbix_Aliyun.repo  dest=/etc/yum.repos.d/
    - name: "安装zabbix-agent"
      yum: name=zabbix-agent  state=latest
    - name: "修改agent配置文件"
      script: agent.sh
    - name: "启动agent"
      systemd: name=zabbix-agent state=started enabled=yes
    - name: "关闭防火墙"
      systemd: name=firewalld state=stopped
    - name: "关闭selinux"
      shell: "setenforce 0"
[root@localhost agent]# 

脚本agent.sh内容为

[root@localhost agent]# cat agent.sh

#!/bin/bash
sed -i '/^Server/s/127.0.0.1/192.168.153.188/' /etc/zabbix/zabbix_agentd.conf

2.6 依据playbook文件执行批量部署

[root@localhost agent]# ansible-playbook agent.yml 

PLAY [webservers] ***************************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************************
ok: [192.168.153.185]
ok: [192.168.153.184]

TASK [推送zabbix源] ****************************************************************************************************************
changed: [192.168.153.185]
changed: [192.168.153.184]

TASK [安装zabbix-agent] ***********************************************************************************************************
changed: [192.168.153.184]
changed: [192.168.153.185]

TASK [修改agent配置文件] **************************************************************************************************************
changed: [192.168.153.184]
changed: [192.168.153.185]

TASK [启动agent] ******************************************************************************************************************
changed: [192.168.153.185]
changed: [192.168.153.184]

TASK [关闭防火墙] ********************************************************************************************************************
changed: [192.168.153.184]
changed: [192.168.153.185]

TASK [关闭selinux] ****************************************************************************************************************
changed: [192.168.153.185]
changed: [192.168.153.184]

PLAY RECAP **********************************************************************************************************************
192.168.153.184            : ok=7    changed=6    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.153.185            : ok=7    changed=6    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

2.7 连接zabbix-server测试

[root@localhost agent]# cd ../zabbix/
[root@localhost zabbix]# docker-compose exec zabbix-server bash
bash-5.0$ zabbix_get -s 192.168.153.184 -k agent.ping
1
bash-5.0$ zabbix_get -s 192.168.153.185 -k agent.ping
1
bash-5.0$ 

返回值为1则配置成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值