阅读本文章需要具有Ansible、Zabbix基础。本次教程基于如下环境:

CentOS 7.x

Zabbix 4.0

Ansible 2.5

服务器初始化

关闭防火墙、selinux,添加epel常用源,安装常用工具、添加普通用户并禁止root远程登录、重启服务器

cat init.yaml

---
- hosts: all tasks:
- name: disable selinux、firewalls,replace ali sources
shell: |
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl disable firewalld
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo - name: ensure a list of packages installed
yum:
name: "{{ packages }}"
vars:
packages:
- wget
- vim
- sysstat
- lrzsz
- lsof - name: Add the user centos
user:
name: centos
group: wheel - name: disabled root remote login
replace:
path: /etc/ssh/sshd_config
regexp: '\#PermitRootLogin yes'
replace: 'PermitRootLogin no'
backup: yes - name: modify ssh port
shell: sed -i '/^\#Port/a\Port 22201' /etc/ssh/sshd_config - name: restart ssh
service:
name: sshd
state: restarted - name: Add epel and reboot server
shell: |
reboot

执行初始化

# ansible-playbooks init.yaml

Zabbix-Server部署

这个很惭愧,没做成playbooks。主要用shell

安装MySQL

安装MySQL5.6,并创建zabbix需要的数据库

# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm
# yum install Percona-Server-server-56 -y
# systemctl start mysqld
# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;
安装zabbix-server
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
导入表结构及数据
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
修改配置文件

编辑 /etc/httpd/conf.d/zabbix.conf

# php_value date.timezone Europe/Riga

修改为

# php_value date.timezone Asia/Shanghai

编辑 /etc/zabbix/zabbix_server.conf

DBPassword=password

开启服务,并设置开机启动

# systemctl restart zabbix-server zabbix-agent httpd
# systemctl enable zabbix-server zabbix-agent httpd

Zabbix-Agent 部署

准备agent安装包、修改zabbix-agent.conf的shell脚本
# cd /root
# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.2-1.el7.x86_64.rpm

cat zabbix_agent.sh

#!/bin/bash
# 将zabbix服务端从127.0.0.1换成server ip
# 将主机名设置为本机ip
# 开启服务
sed -i 's/127.0.0.1/172.16.103.57/g' /etc/zabbix/zabbix_agentd.conf j=`/usr/sbin/ip a|grep enp2s1|grep inet|awk '{print $2}'|awk -F '/' '{print $1}'`
sed -i "s/Hostname=Zabbix server/Hostname=${j}/" /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent

cat zabbix-agent.yaml

---
- hosts: all
gather_facts: false tasks:
- name: copy file
copy:
src: /root/zabbix-agent-4.0.0-2.el7.x86_64.rpm
dest: /tmp/zabbix-agent-4.0.0-2.el7.x86_64.rpm - name: install zabbix
yum:
name: /tmp/zabbix-agent-4.0.0-2.el7.x86_64.rpm
state: present - name: copy bash
copy:
src: /root/zabbix_agent.sh
dest: /tmp/zabbix_agent.sh - name: exclude bash
become: yes
become_method: su
shell: /bin/bash /tmp/zabbix_agent.sh

执行批量安装zabbix-agent剧本

# ansible-playbook zabbix-agent.yaml

自动发现

这么多机器不可能在页面上一台台添加的,所以要用到Zabbix的精髓,自动发现。

以下内容来自官方:

Zabbix为用户提供了高效灵活的网络自动发现功能。

适当的网络发现配置可以:

加快Zabbix部署

简化管理

无需过多管理,也能在快速变化的环境中使用Zabbix

Zabbix网络发现基于以下信息:

IP范围

可用的外部服务(FTP,SSH,WEB,POP3,IMAP,TCP等)

来自 zabbix agent 的信息(仅支持未加密模式)

来自 snmp agent 的信息

登录zabbix---配置自动发现

配置---动作----触发器---创建动作

配置完毕,等几分钟后到 zabbix -- 监控中 -- 自动发现

Ansible 快速部署 Zabbix 4的更多相关文章

  1. 高可用Kubernetes集群-16. ansible快速部署

    说明 本文档指导采用二进制包的方式快速部署高可用kubernetes集群. 脚本托管:k8s-ansible(持续更新) 参考:高可用kubernetes集群 组件版本 组件 版本 备注 centos ...

  2. 通过ansible自动化部署zabbix应用

    zabbix在实际的应用中,可能需要监控的主机非常多,而每个主机的操作系统类型.版本也都不尽相同,在这种环境下,通过手动安装zabbix的agent端已经不现实了,此时就需要借助自动化工具完成zabb ...

  3. ansible快速部署cassandra3集群

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. 使用 Ansible 快速部署 HBase 集群

    背景 出于数据安全的考虑,自研了一个低成本的时序数据存储系统,用于存储历史行情数据. 系统借鉴了 InfluxDB 的列存与压缩策略,并基于 HBase 实现了海量存储能力. 由于运维同事缺乏 Had ...

  5. 通过PlayBook部署Zabbix

    编写Linux初始化剧本 初始化剧本环节,主要用户实现关闭Selinux关闭防火墙,一起配置一下阿里云的YUM源地址,和安装EPEL源,为后期的zabbix安装做好铺垫工作. 1.在安装Zabbix之 ...

  6. 使用Docker快速部署各类服务

    使用Docker快速部署各类服务 一键安装Docker #Centos环境 wget -O- https://gitee.com/iubest/dinstall/raw/master/install. ...

  7. Ansible快速实战指南----多机自动化执行命令、部署神器

                                      1.需求: 需要在多台主机上,发送文件.执行命令,进行快速部署 2.ansible 远程复制文件 例子:在当前节点(20.88.14 ...

  8. 脚本两则--用于快速部署HADOOP,SPARK这些(特别是VM虚拟机模板部署出来的)。。

    感觉可能只是适合我自己的部署习惯吧,且只针对CENTOS6及以下版本,以后有时间,可能还是要改进.. 1,从VM的模块产生的虚拟机,如何快速搞定网络配置? #!/bin/bash #usage:./i ...

  9. Jenkins+Gitlab+Ansible自动化部署(二)

    接Jenkins+Gitlab+Ansbile自动化部署(一):https://www.cnblogs.com/zd520pyx1314/p/10210727.html Ansible的配置与部署 工 ...

随机推荐

  1. mongo学习笔记---1

    mongo简介 非结构化数据库,数据都是以Bson格式(json的二进制)存储的. 特点:不需要指定表结构,存在一张表里的数据其结构可以完全不同.内部执行引擎为JS解释器, 把文档存储成bson结构, ...

  2. Practical Node.js (2018版) 13章, Node HTTP/2 Servers

    新增的章节. If you are not using HTTP/2, then you are losing out on big improvements. HTTP/2相比http/1有很大的区 ...

  3. Web版记账本开发记录(五)

    今天是第五天,不过今天有点事什么都没做,只是看了看一些教学视频, 今天家里有事, 还没来得及实践,等明天再实践,然后再完善完善.

  4. 深入理解Plasma(一)Plasma 框架

    这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等.本篇文章作为开篇,主要目的是理解 Plasma 框架. Plasma 作为以太坊的二层扩容框架, ...

  5. Mysql5.7出现this is incompatible with sql_mode=only_full_group_by

    vi /etc/my.cnf #编辑mysql配置文件 在 [mysqld]和[mysql]下添加 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZE ...

  6. 另一道不知道哪里来的FFT题

    给定一个序列,求出这个序列的k阶前缀和,模998244353,n<=1e5. k阶前缀和可以看成一个一个n*k的平面上的二维行走问题. 第i项对第j项的贡献是从(i,0)走到(j,k)的NE L ...

  7. 盘符格式转换成NTFS格式

    点击屏幕左下角“开始”,找到运行,在其中输入:cmd,确定,打开“命令提示符”; 在命令提示符下输入: convert X:/FS:NTFS(其中X是你要转换的盘符盘符). 执行后,重新启动电脑 这样 ...

  8. Mysql优化系列之——优化器对子查询的处理

    根据子查询的类型和位置不同,mysql优化器会对查询语句中的子查询采取不同的处理策略,其中包括改写为连接(join),改写为半连接(semi-join)及进行物化处理等. 标量子查询(Scalar S ...

  9. 201621123075 week06-接口、内部类

    1.本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰, ...

  10. NVMe概述

    目前企业SSD市场按照接口协议主要分为SATA SSD,PCIe SSD和NVMe SSD,其中SATA SSD沿用了传统的HDD使用的SATA协议,在企业应用和服务器兼容性上具有优势:而PCIe S ...