Ansible 快速部署 Zabbix 4
阅读本文章需要具有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的更多相关文章
- 高可用Kubernetes集群-16. ansible快速部署
说明 本文档指导采用二进制包的方式快速部署高可用kubernetes集群. 脚本托管:k8s-ansible(持续更新) 参考:高可用kubernetes集群 组件版本 组件 版本 备注 centos ...
- 通过ansible自动化部署zabbix应用
zabbix在实际的应用中,可能需要监控的主机非常多,而每个主机的操作系统类型.版本也都不尽相同,在这种环境下,通过手动安装zabbix的agent端已经不现实了,此时就需要借助自动化工具完成zabb ...
- ansible快速部署cassandra3集群
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 使用 Ansible 快速部署 HBase 集群
背景 出于数据安全的考虑,自研了一个低成本的时序数据存储系统,用于存储历史行情数据. 系统借鉴了 InfluxDB 的列存与压缩策略,并基于 HBase 实现了海量存储能力. 由于运维同事缺乏 Had ...
- 通过PlayBook部署Zabbix
编写Linux初始化剧本 初始化剧本环节,主要用户实现关闭Selinux关闭防火墙,一起配置一下阿里云的YUM源地址,和安装EPEL源,为后期的zabbix安装做好铺垫工作. 1.在安装Zabbix之 ...
- 使用Docker快速部署各类服务
使用Docker快速部署各类服务 一键安装Docker #Centos环境 wget -O- https://gitee.com/iubest/dinstall/raw/master/install. ...
- Ansible快速实战指南----多机自动化执行命令、部署神器
1.需求: 需要在多台主机上,发送文件.执行命令,进行快速部署 2.ansible 远程复制文件 例子:在当前节点(20.88.14 ...
- 脚本两则--用于快速部署HADOOP,SPARK这些(特别是VM虚拟机模板部署出来的)。。
感觉可能只是适合我自己的部署习惯吧,且只针对CENTOS6及以下版本,以后有时间,可能还是要改进.. 1,从VM的模块产生的虚拟机,如何快速搞定网络配置? #!/bin/bash #usage:./i ...
- Jenkins+Gitlab+Ansible自动化部署(二)
接Jenkins+Gitlab+Ansbile自动化部署(一):https://www.cnblogs.com/zd520pyx1314/p/10210727.html Ansible的配置与部署 工 ...
随机推荐
- ETCD集群安装实验
目录 [1.下载二进制程序] [2.安装etcd集群] [3.查询集群状态] [4.存入读取数据] [5.注意事项] [6.参考链接] 简介: Etcd的官网文档及其在GitHub上的文档,已 ...
- MVC扩展HttpHandler
扩展用来做防盗链 访问特殊后缀名的处理方式 localhost:8080/Home/index.aspx localhost:8080/Home/mao.jpg 比如 这样一个地址 ...
- 巧用同步请求处理react页面刷新问题
很多时候,我们会遇到这种情况,组件加载需要请求后台数据,然后填充组件.那么我们一般会这样处理:如[使用异步请求的方式]代码: 加载组价的时候,未获得数据,render一个空的div: 然后异步请求数据 ...
- 『Python CoolBook』C扩展库_其六_从C语言中调用Python代码
点击进入项目 一.C语言运行pyfun的PyObject对象 思路是在C语言中提供实参,传给python函数: 获取py函数对象(PyObject),函数参数(C类型) 获取GIL(PyGILStat ...
- BOM&DOM
BOM(浏览器对象模型) 1. location相关 . location.href 获取当前url . location.href="http://www.sogo.com" 跳 ...
- mysql数据库的基础操作
注 : 本文中注释因为方便写了# ,mysql中规范应为 -- 创建用户 通过root管理员权限可以创建各种用户,并为他们分配权限及可以操作的数据库. 语法:create user '用户名'@'ip ...
- linux 基础命令,未完待续
1, cd 进入系统根目录 cd / 进入当前用户的主目录 cd ~ 进入当前目录的上一级目录 cd .. 跳转到指定目录,从根目录开始 cd /apps/ 2, pwd 查看当前工作目录的完整路径 ...
- 【IDE】我的花里胡哨VS
我的 VS2017 效果图,花里胡哨但十分养眼,利于C/C++ Coding~ 一.主题设置 工具 → 扩展和更新 下载插件 Color Theme Editor for Visual Studio ...
- MySQL字符串列与整数比较
一.问题说明 为了简便在存储时我们经常将整型字段也以字符串形式存储(如id值),但在筛选比较时就需要将该字段转为数值类型. 二.处理办法 2.1 使用cast函数进行类型转换 cast函数格式---- ...
- configure、make 和 make install 的区别
Linux编译安装中configure.make和make install各自的作用 ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GC ...