030.Zabbix分布式部署
一 分布式Zabbix介绍
- 监控远程区域设备
- 监控本地网络不稳定区域
- 当 zabbix 监控上千设备时,使用它来减轻 server 的压力
- 简化分布式监控的维护
二 分布式Zabbix架构
2.1 架构示意图
2.2 环境准备
节点主机名
|
IP地址
|
备注
|
zabbixserver
|
172.24.8.71/24
|
Zabbix服务器
|
zabbixpoxy01
|
172.24.8.72/24
|
Zabbix poxy代理服务器1
|
zabbixpoxy02
|
172.24.8.73/24
|
Zabbix poxy代理服务器2
|
node01
|
172.24.8.74/24
|
模拟poxy1所监控的服务器node01
|
node02
|
172.24.8.75/24
|
模拟poxy2所监控的服务器node02
|
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# vi /etc/hosts #添加在server和proxy节点添加以下主机名配置
172.24.8.71 zabbixserver
172.24.8.72 zabbixpoxy01
172.24.8.73 zabbixpoxy02
2.3 工作模式
- 被动模式
- 被动模式的流程
- Server打开一个TCP连接。
- Server发送一个key为agent.ping\n。
- Agent接收到这个请求,然后响应数据<HEADER><DATALEN>1.
- Server对接收到的数据进行处理。
- TCP连接关闭。
- 主动模式
- 主动模式的流程
- Agent向Server建立一个TCP的连接。
- Agent请求需要检测的数据列表。
- Server响应Agent,发送一个Items列表(item key、delay)。
- Agent响应请求。
- TCP连接完成本次会话后关闭。
- Agent开始周期性的收集数据。
2.4 模式配置
Server=172.24.8.71 #被动模式下的Zabbix服务端地址
ListenPort=10050
ServerActive=172.24.8.71 #主动模式下的Zabbix服务端地址,若纯被动模式可注释此行
Server=127.0.0.1,172.24.8.71 #被动模式下的Zabbix服务端地址,若纯主动模式可注释此行
StartAgents=0
ServerActive=172.24.8.71 #主动模式下的Zabbix服务端地址
三 部署Zabbix-Proxy
3.1 安装Zabbix官方源和epel源
[root@proxy01 ~]# yum -y install epel-release.noarch
[root@proxy01 ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
3.2 安装Zabbix-proxy等组件
[root@proxy01 ~]# yum install -y zabbix-proxy zabbix-proxy-mysql mariadb mariadb-server zabbix-agent
3.3 简单优化MariaDB
[root@proxy01 ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8 #设置字符集为utf8
innodb_file_per_table=1 #设置innodb的每个表文件单独存储
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
……
[root@proxy01 ~]# systemctl enable mariadb #设为开机启动
[root@proxy01 ~]# systemctl start mariadb #开启MariaDB数据
3.4 设置数据库相关项
[root@proxy01 ~]# mysql_secure_installation #设置安全性,并设置数据库root密码
[root@proxy01 ~]# mysql -u root -p
MariaDB [(none)]> create database zabbixproxydb character set utf8 collate utf8_bin;
#创建数据库且字符集为utf8,使web界面显示中文不出现乱码
MariaDB [(none)]> grant all privileges on zabbixproxydb.* to proxy@'localhost' identified by 'x120952576';
#创建zabbixproxydb数据库和proxy用户,且赋予此用户拥有此数据库全部权限。
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
3.5 导入数据库相关表
[root@proxy01 ~]# cd /usr/share/doc/zabbix-proxy-mysql-4.0.0/ #进入数据库模板所在目录
[root@proxy01 zabbix-proxy-mysql-4.0.0]# ls
AUTHORS ChangeLog COPYING NEWS README schema.sql.gz
[root@proxy01 zabbix-proxy-mysql-4.0.0]# zcat schema.sql.gz | mysql -uroot -p zabbixproxydb
#将模板数据恢复至Zabbix数据库,此处为需要输入MariaDB的root用户密码。
Enter password:
[root@proxy01 ~]# mysql -u proxy -p #用proxy用户登录
MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbixproxydb;
MariaDB [zabbixproxydb]> show tables; #查看数据表
MariaDB [zabbixproxydb]> exit
3.6 配置zabbix_proxy.conf项
[root@proxy01 ~]# vi /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 # 默认即为0,代表 Proxy 处于主动模式,即 Proxy 主动去请求 Zabbix Server 获取监控项;1 代表被动模式
Server=127.0.0.1,172.24.8.71 #若为纯主动模式需要注释此行
ServerActive=172.24.8.71 #主动模式,Proxy主动向Server传送数据
ServerPort=10051 # 默认即为10051,Zabbix Server 监听端口,同上只在 Proxy 为主动模式时生效 Hostname=zabbixpoxy01 # Server端添加proxy的时候需要一致,建议采用主机名
LogFile=/var/log/zabbix/zabbix_proxy.log # Proxy 日志文件位置
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
DBHost=localhost # 连接数据库的主机
DBName=zabbixproxydb # 数据库名
DBUser=proxy # 连接用户
DBPassword=x120952576 # 用户密码
ConfigFrequency=60 # proxy主动从server端检索配置更新的频率,单位秒,主动proxy 参数, 被动 proxies忽略此项
DataSenderFrequency=60 # Proxy 向 Zabbix Server 发送监控数据间隔,单位为秒
Timeout=4
3.7 Proxy自身agent配置
[root@imxhy02 ~]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1,172.24.8.71 #若为纯主动模式需要注释此行
ServerActive=172.24.8.71 #主动模式,proxy自身主Server传送数据
Hostname=zabbixserver #zabbix server web上添加自身需要用到
3.8 zabbix启动级开机启动
[root@proxy01 ~]# systemctl start zabbix-proxy.service
[root@proxy01 ~]# systemctl enable zabbix-proxy.service
[root@proxy01 ~]# systemctl start zabbix-agent.service
[root@proxy01 ~]# systemctl enable zabbix-agent.service
四 部署Zabbix-Server
4.1 安装Zabbix官方源和epel源
[root@server ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@server ~]# ls /etc/yum.repos.d/ #查看Zabbix源是否安装成功
epel.repo epel-testing.repo zabbix.repo
4.2 安装Zabbix Server等组件
[root@server ~]# yum -y install zabbix-get zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent mariadb mariadb-server
4.3 简单优化MariaDB
[root@server ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8 #设置字符集为utf8
innodb_file_per_table=1 #设置innodb的每个表文件单独存储
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
……
[root@server ~]# systemctl enable mariadb #设为开机启动
[root@server ~]# systemctl start mariadb #开启MariaDB数据
4.4 设置数据库相关项
[root@server ~]# mysql_secure_installation #设置安全性,并设置数据库root密码
[root@server ~]# mysql -u root -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
#创建数据库且字符集为utf8,使web界面显示中文不出现乱码
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'x120952576';
#创建zabbix数据库和Zabbix用户,且赋予此用户拥有此数据库全部权限。
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
4.5 导入数据库相关表
[root@server ~]# cd /usr/share/doc/zabbix-server-mysql-4.0.0/ #进入数据库模板所在目录
[root@server zabbix-server-mysql-4.0.0]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
[root@server zabbix-server-mysql-4.0.0]# zcat create.sql.gz | mysql -uroot -p zabbix #将模板数据恢复至Zabbix数据库
[root@server ~]# mysql -u zabbix -px120952576 zabbix -e "show tables" #查看数据表项
4.6 配置Zabbix_server.conf项
[root@server ~]# vi /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost #修改主机
DBName=zabbix
DBUser=zabbix
DBPassword=x120952576 #修改DB密码(之前所创建密码)
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
4.7 Server自身agent配置
[root@server ~]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1,172.24.8.71 #若为纯主动模式需要注释此行
ServerActive=172.24.8.71 #主动模式,Server自身主动向自己传送数据
Hostname=zabbixserver #zabbix server web上添加自身需要用到
4.8 启动Zabbix服务
[root@server ~]# systemctl enable zabbix-server #设为开机启动Zabbix服务
[root@server ~]# systemctl start zabbix-server #启动Zabbix服务
[root@server ~]# systemctl start zabbix-agent #需要监控自己,因此也开启agent
[root@server ~]# systemctl enable zabbix-agent #启动Zabbix服务
4.8 配置php
[root@server ~]# vi /etc/php.ini
date.timezone= Asia/Shanghai
max_execution_time = 300
post_max_size = 16M
memory_limit = 128M
[root@server ~]# vi /etc/httpd/conf.d/zabbix.conf
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Riga
</IfModule>
</Directory>
4.9 启动Apache服务
[root@server ~]# systemctl start httpd.service
[root@server ~]# systemctl enable httpd.service
4.10 Web界面配置
4.11 Server端添加Proxy
五 部署Zabbix Agent节点
5.1 安装Zabbix官方源和epel源
[root@node01 ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@node01 ~]# ls /etc/yum.repos.d/ #查看Zabbix源是否安装成功
epel.repo epel-testing.repo zabbix.repo
5.2 安装Zabbix Agent等组件
[root@node01 ~]# yum -y install zabbix-agent
5.3 node节点agent配置
[root@server ~]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1,172.24.8.72 #若为纯主动模式需要注释此行
ServerActive=172.24.8.72 #主动模式,node01向proxy01主动传送数据
Hostname=node01 #Zabbix server web上添加node需要用到
5.4 启动Zabbix服务
[root@node01 ~]# systemctl start zabbix-agent
[root@node01 ~]# systemctl enable zabbix-agent #启动Zabbix agent服务
六 添加主机
6.1 修改模板监控模式
6.2 添加Server自身
6.3 添加Proxy节点
配置项
|
描述
|
主机名(Host name)
|
输入在agent配置文件中配置的主机名,
必须唯一且不重复且和host定义的Host name名称一致。
|
访问名(Visible name)
|
在主机列表、图表等地方显示的名字,需要utf-8支持。
|
群组(Groups in groups)
|
选择主机所属的群组,一个主机必须属于至少一个主机组。
|
新主机组(New group)
|
自动创建一个新的群组,并加入此群组。
|
接口协议
|
Zabbix支持的协议有:Agent、SNMP、JMX和IPMI,选择对应的即可。
|
IP地址(IP address)
|
需要监控的主机的IP地址
|
DNS名称(DNS name)
|
需要监控主机的DNS能够解析的名称
|
与agent的通信方式(Connect to)
|
连接要监控主机的IP地址/要监控主机能解析的DNS名称
|
端口(Port)
|
TCP协议的端口,Zabbix客户端使用的默认为10050
|
代理监控(Monitored by proxy)
|
可以通过Zabbix服务器或者Zabbix的一个代理去监控客户端
|
6.3 添加node节点
七 确认验证
7.1 查看log
7.2 主机图形确认
030.Zabbix分布式部署的更多相关文章
- zabbix分布式部署和主机自动发现
1.分布式部署原理 1.1Zabbix分布式部署的原理 传统的部署架构,是server直接监控所有的主机,全部主机的数据都是有server自己来采集和处理,server端的压力比较大,当监控主机数量很 ...
- Zabbix监控和分布式部署实施方案
最近在研究Zabbix监控,由于机房分布在多个城市,因此采用zabbix proxy做为监控方案,在每 个节点部署zabbix proxy,由zabbix proxy收集agentd数据,然后将采集到 ...
- zabbix分布式监控部署--技术流ken
前言 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix pr ...
- 企业级监控软件zabbix搭建部署之zabbix server的安装
企业级监控软件zabbix搭建部署之zabbix server的安装 zabbix线上已经应用半年多了,关于zabbix在生产环境中的使用心得,以及一些经验写下来,希望让大家少走弯路,共同学习! 环境 ...
- 企业级监控软件Zabbix搭建部署之zabbix在WEB页面中的配置
企业级监控软件zabbix搭建部署之zabbix在WEB页面中的配置 企业级监控软件zabbix搭建部署之zabbix在WEB页面中的配置 关于安装请看 http://www.linuxidc.com ...
- Zabbix分布式监控系统实践
https://www.zabbix.com/wiki/howto/install/Ubuntu/ubuntuinstall 环境介绍OS: Ubuntu 10.10 Server 64-bitSer ...
- Hadoop1 Centos伪分布式部署
前言: 毕业两年了,之前的工作一直没有接触过大数据的东西,对hadoop等比较陌生,所以最近开始学习了.对于我这样第一次学的人,过程还是充满了很多疑惑和不解的,不过我采取的策略是还是先让环 ...
- ActiveMQ5.14.1+Zookeeper3.4.9高可用伪分布式部署
本文借鉴http://www.cnblogs.com/gossip/p/5977489.html,在此基础上进行了完善,使之成为一个完整版的伪分布式部署说明,在此记录一下! 一.本文目的 ...
- Memcache分布式部署方案
基础环境 其实基于PHP扩展的Memcache客户端实际上早已经实现,而且非常稳定.先解释一些名词,Memcache是danga.com的一个开源项目,可以类比于MySQL这样的服务,而PHP扩展的M ...
随机推荐
- SpringBoot2.x个性化启动banner设置和debug日志
3.SpringBoot2.x个性化启动banner设置和debug日志 简介:自定义应用启动的趣味性日志图标和查看调试日志 1.启动获取更多信息 java -jar xxx.jar --debug ...
- Shiro缓存(十三)
使用缓存,可以解决每次访问请求都查数据库的问题.第一次授权后存入缓存. 缓存流程 shiro中提供了对认证信息和授权信息的缓存.shiro默认是关闭认证信息缓存的,对于授权信息的缓存shiro默认开启 ...
- java 多线程二
java 多线程一 java 多线程二 java 多线程三 java 多线程四 线程中断: /** * Created by root on 17-9-30. */ public class Test ...
- driver: linux2.6 内核模块导出函数实例(EXPORT_SYMBOL) 【转】
转自:http://blog.chinaunix.net/uid-23381466-id-3837650.html 内核版本:2.6.38-11-generic 内核自己都大量利用内核符号表导出函数, ...
- springboot系列十、springboot整合redis、多redis数据源配置
一.简介 Redis 的数据库的整合在 java 里面提供的官方工具包:jedis,所以即便你现在使用的是 SpringBoot,那么也继续使用此开发包. 二.redidTemplate操作 在 Sp ...
- Redis消息通知(任务队列和发布订阅模式)
Redis学习笔记(十)消息通知(任务队列和发布订阅模式) 1. 任务队列 1.1 任务队列的特点 任务队列:顾名思义,就是“传递消息的队列”.与任务队列进行交互的实体有两类,一类是生产者(produ ...
- 006_nginx动态upstream和安全检查模块
一.参考Tengine http://tengine.taobao.org/document_cn/http_dyups_cn.html ngx_http_dyups_module Descrip ...
- aliyun服务器ecs被ddos后无法被zabbix-server监控的处理
ecs绑定的域名被ddos攻击后,阿里云黑洞ecs服务器一个月,此时zabbix服务端无法联系到zabbix-agent会一直报错 解决办法: 1.在ecs前添加slb并把之前指向ecs的域名a.ch ...
- rt3070无线网卡移植到开发板
Rt3070无线网卡AP功能移植到GEC210一.平台开发板:GEC210 无线网卡:RT3070主机:VMWare--Ubuntu 10.04 LTS内核版本:linux-2.6.35.7编译器:a ...
- Appium+Java(一) Windows环境搭建篇
准备: Android版本 :4.2.2 nodejs版本:5.6.0 appium版本:v1.4.16 1. 安卓SDK及配置环境变量 1.1.先下载sdk安装包:installer_r24.4.1 ...