近年来自动化运维越来越火,Zabbix也不例外。我们都知道Zabbix在监控系统范畴是通过侵入式代理实现的,所以随着机器的增多,会面临两个问题,一个是安装的问题,一个是升级的问题。第一个很容易解决,可以解决。通过封装镜像,集成Zabbixagent。第二个需要登录一个一个升级,比较麻烦。另外,我们需要在前端增加一个站点,自动注册可以大大减少这种工作。文本环境Zabbix版本:5.4Ansible版本:2.9.23系统版本:CentOS8.2Ansible安装ansible是干什么用的,就不详细说了,大家可以自己上网查。####CentOS8####dnf-yinstallepel-releasednf-yinstallansible####CentOS7####yum-yinstallepel-releaseyum-yinstallansible配置Ansible免密码登录本文将以playbook的形式进行操作,1.生成本地密钥(公钥和私钥)ssh-keygen-trsa生成本地密钥,在/root/.ssh目录下2.写入yml文件vikey.yml----hosts:alltasks:-name:NoSecretLoginauthorized_key:user=rootkey="{{lookup('file','~/.ssh/id_rsa.pub')}}"state=present注意格式不能错3.配置ansiblehosts文件。SSH登录需要将免密公钥传递给对方,所以这里需要一个带密码的变量,格式如下,IP是你测试机的IP,password是测试机vi/etc/ansible/hosts[kasar]192.168.31.152[kasar:vars]ansible_ssh_pass="123"配置概述4.关闭密钥检测由于首次登录需要信任指纹,所以会出现异常,所以需要关闭,下图中的#removevi/etc/ansible/ansible.cfg字段关闭keycheck5.ansible执行命令ansible-playbookkey.ymltest正常写入安装zabbixagentscripts写脚本的时候要提前规划好有没有Proxy。如果有需要提前写在脚本里,如果没有,也可以通过ansible修改配置。通过下载好的安装包安装(方式一)viinstall.ssh#!/bin/shyum-ylocalinstall/tmp/zabbix-agent2-5.4.2-1.el7.x86_64.rpmhostname=`hostname`sed-i's/Server=127.0.0.1/Server=192.168.31.137/g'/etc/zabbix/zabbix_agent2.confsed-i's/ServerActive=127.0.0.1/ServerActive=192.168.31.137/g'/etc/zabbix/zabbix_agent2.confsed-i's/Hostname=Zabbixserver/Hostname='$hostname'/g'/etc/zabbix/zabbix_agent2.confsystemctlrestartzabbix-agent2systemctlenablezabbix-agent2通过yum安装(方式二)viinstall.ssh#!/bin/shrpm-Uvhhttps://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpmrpm-Uvhhttps://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpmyum-yinstallzabbix-agent2hostname=`hostname`sed-i's/Server=127.0.0.1/Server=192.168.31.137/g'/etc/zabbix/zabbix_agent2.confsed-i's/ServerActive=127.0.0.1/ServerActive=192.168.31.137/g'/etc/zabbix/zabbix_agent2.confsed-i's/Hostname=Zabbixserver/Hostname='$hostname'/g'/etc/zabbix/zabbix_agent2.confsystemctlrestartzabbix-agent2systemctlenablezabbix-agent2Ansiblepush安装如果无法访问外网,使用本地安装包方式(注意格式)Zabbixagent包下载可以去官网查看----hosts:kasartasks:-name:copycopy:'src=/root/.ssh/install.shdest=/tmp/owner=rootgroup=rootmode=755'-name:copycopy:'src=/tmp/zabbix-agent2-5.4.2-1.el7.x86_64.rpmdest=/tmp/owner=rootgroup=rootmode=644'-name:shellshell:"/tmp/install.sh"yum安装方法(注意格式)----hosts:kasartasks:-name:copycopy:'src=/root/.ssh/install.shdest=/tmp/owner=rootgroup=rootmode=755'-name:shellshell:"/tmp/install.sh"执行ansible-playbookinstall.yml本地化安装Zabbix前端运行1、找到自动注册选项,如下图2、创建动作和条件这里需要根据自己的实际情况确定注册方式。标准化更重要,条件更容易写。建议多看官方文档,对以后的规划大有裨益。3.创建操作的思路是添加主机--加入群组--链接到模板,这里其实看你的条件,比如CentOS主机可以分配到Linux,模板可以也可以用Linux检查。发现效果是自动启动的。总结这篇文章更像是使用Ansible批量注册,但其实也有自动化运维的想法,但感觉自动化运维技术只是一方面,更多的是ITIL的建设、CMDB建设及底层标准化。有了这些,你的自动化运维之路就会变得非常简单。希望大家能从这篇文章中举一反三。同时对于一些不懂的技术可以自学。