当公司业务越来越大,服务器也越来越多,运维工作也会随着服务器的增多而越来越重复而繁琐。这个时候如何能通过一些技术手段去规避这些简单且重复的苦力劳动尤为重要。这也就是现在大家倡导的自动化运维。
zabbix在实际的应用中,可能需要监控的主机非常多,而每个主机的操作系统类型、版本也都不尽相同,在这种环境下,通过手动安装zabbix的agent端已经不现实了,此时就需要借助自动化工具完成zabbix agent的安装和配置。
今天我就用ansible去部署zabbix-agent。
准备工作(系统环境centos7.6)
为了忽略网络因素干扰,提前下载zabbix软件包,本地上传至master端,并配置相关yum源
# vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=zabbix
baseurl=file:///root/zabbix_soft
enabled=1
gpgcheck=0
管理端安装ansible软件
[root@server ~]# yum -y install epel-release
[root@server ~]# yum -y install ansible
[root@server ~]# ansible --version
ansible 2.9.10
.....
实现管理端对agent端做免密登录
[root@server ~]# ssh-keygen (生成空密钥对)
[root@server ~]# ssh-copy-id 192.168.1.12
[root@server ~]# ssh-copy-id 192.168.1.13
在管理端上自定义主机组,测试连接性
[root@server ~]# vim /etc/ansible/hosts
[zabbix-agent]
192.168.1.12
192.168.1.13
[root@server ~]# ansible -m ping zabbix-agent
[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details
192.168.1.12 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
....
出现上面的内容即为成功
准备工作做完之后开始进入今天的重要环节,编写playbook。
创建一个存放playbook的目录
[root@server roles]# mkdir /etc/ansible/playbook
[root@server roles]# vim /etc/ansible/playbook/zabbix-agent.yml
---
- hosts: zabbix-agent
remote_user: root
tasks:
- name: 拷贝本地软件到目标服务器
copy: src=/root/zabbix_soft/ dest=/root/zabbix_soft/
- name: 拷贝本地yum源
copy: src=/etc/yum.repos.d/zabbix.repo dest=/etc/yum.repos.d/zabbix.repo
- name: 清理缓存
shell: yum clean all
- name: 安装agent软件
yum: name=zabbix-agent state=present
- name: 启动agent
service: name=zabbix-agent state=started
- name: 修改配置文件中server-ip
lineinfile: dest=/etc/zabbix/zabbix_agentd.conf regexp='^Server=127.0.0.1' line='Server=192.168.1.11'
notify:
- zabbix-agent
handlers:
- name: 重启agent
service: name=zabbix-agent state=restarted enabled=on
这样一个简单的playbook就完成了,但是这里没有考虑系统版本不一致的情况,实际生产中,有可能有的项目用的7系统,有的用的6系统,更加复杂,这个就需要我们考虑加入判断语句等等。总之呢,学问的事情三言俩语肯定说不完的,这就要求我们在以后的生活中不断的学习,钻研。只有会的越多,我们的腰包才能越鼓。加油奋斗吧,老铁,奥利给!
如果本文对你有帮助,动动小手点赞转发多多评论呦!