第1章 分布式监控
1.1 分布式监控介绍
- 分布式监控功能:
- 能够减轻服务端的压力,可以利用zabbix proxy服务器分担压力
- zabbix server只能在同一个局域网内监控,可以利用zabbix proxy实现跨网段监控
- 分担压力场景图示:所有主机在同一个网段
- 跨网段场景图示:
1.2 zabbix_proxy端配置
1.2.1 安装zabbix_proxy
1.2.1.1 安装zabbix源:
- CentOS 6:
[root@centos6 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
- CentOS 7:
[root@centos7 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
1.2.1.2 安装zabbix-proxy-mysql
[root@centos ~]# yum install -y zabbix-proxy-mysql
1.2.2 安装MySQL数据库
zabbix proxy需要数据库存储相关的配置信息,但是只存储主机等配置信息,监控数据不会存储,会直接发给server。
此处MySQL安装过程省略,使用m01上的数据库进行存储,生产环境中需要在proxy上安装数据库,或者使用专门的数据库服务器进行存储(对数据库性能无要求)。
1.2.3 配置MySQL数据库
1.2.3.1 更新zabbix用户权限
[root@m01 ~]# mysql mysql> use mysql; mysql> update user set host='172.16.1.%' where user='zabbix'; mysql> flush privileges;
1.2.3.2 创建zabbix_proxy需要的数据库和用户
[root@m01 ~]# mysql # 创建proxy用的数据库 mysql> create database zabbix_proxy character set utf8 collate utf8_bin; # 创建proxy用的账户 mysql> grant all privileges on zabbix_proxy.* to zabbix@'172.16.1.%' identified by 'zabbix'; mysql> flush privileges;
1.2.3.3 测试web01是否可以连接m01数据库
[root@web01 ~]# mysql -uzabbix -pzabbix -h172.16.1.61 ...此处省略部分内容... mysql> #代表连接成功
1.2.3.4 导入SQL文件
[root@web01 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-3.0.12/schema.sql.gz | mysql -uzabbix -pzabbix -h172.16.1.61 zabbix_proxy
1.2.4 修改zabbix_proxy配置文件
[root@web01 ~]# vim /etc/zabbix/zabbix_proxy.conf 24 Server=172.16.1.61 43 Hostname=web01 129 DBHost=172.16.1.61 139 DBName=zabbix_proxy 154 DBUser=zabbix 163 DBPassword=zabbix # 或 [root@web01 ~]# sed -i.bak 's#Server=127.0.0.1#Server=172.16.1.61#;s#Hostname=Zabbix proxy#Hostname=`hostname`#;128a DBHost=172.16.1.61\nDBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
1.2.5 启动zabbix_proxy服务
- CentOS 6:
[root@centos6 ~]# service zabbix-proxy start
- CentOS 7:
[root@centos7 ~]# systemctl start zabbix-proxy
1.2.6 设置zabbix_proxy开机自启动
- CentOS 6:
[root@centos6 ~]# chkconfig zabbix-proxy on
- CentOS 7:
[root@centos7 ~]# systemctl enable zabbix-proxy
1.3 zabbix_agent端配置
1.3.1 更改zabbix客户端配置文件
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf # 将所有客户端指向的服务改为zabbix_proxy服务器地址 95 Server=172.16.1.8 136 ServerActive=172.16.1.8 # 或 [root@web01 ~]# sed -i 's#172.16.1.61#172.16.1.8#g' /etc/zabbix/zabbix_agentd.conf
1.3.2 重启客户端服务
- CentOS 6:
[root@centos6 ~]# service zabbix-agent restart
- CentOS 7:
[root@centos7 ~]# systemctl restart zabbix-agent
1.4 zabbix_server端配置
1.4.1 创建代理程序
1.4.2 查看客户端状态
第2章 SNMP监控
2.1 SNMP简介
2.1.1 Zabbix监控的种类
前面的监控都是基于Zabbix agent的监控,主要有如下四种种类
- ZBX:Zabbix agent监控
- SNMP:简单网络管理协议(simple network manager protocol)监控
- JMX:专门对java应用的监控(讲完tomcat Java应用再讲)
- IPMI:对硬件的监控
2.1.2 使用SNMP监控的原则
- 能安装zabbix agent的时候就用zabbix agent的方法
- 不能安装zabbix agent的时候再使用SNMP监控,如交换机,打印机等智能设备
- 生产环节建议:能够安装agent的时候先用agent;如果不能装或者装不了那么可以使用snmp
2.1.3 SNMP协议
snmp就是专门为设备监控开发的协议、软件,优缺点如下:
- 优点:软件小巧,所以设备都可以安装
- 缺点:支持的功能少
2.2 客户端SNMP安装配置
2.2.1 安装SNMP
[root@m03 ~]# yum install -y net-snmp net-snmp-utils
2.2.2 配置SNMP
[root@m03 ~]# cp /etc/snmp/snmpd.conf{,.bak} [root@m03 ~]# vim /etc/snmp/snmpd.conf 57 view systemview included .1 # 添加此行 # 或 [root@m03 ~]# sed -i.bak '57a view systemview included .1' /etc/snmp/snmpd.conf
2.2.3 启动SNMP
[root@m03 ~]# service snmpd start
2.2.4 添加SNMP开机自启动
[root@m03 ~]# chkconfig snmpd on
2.2.5 客户端获取SNMP数据测试
[root@m03 ~]# snmpwalk -v 2c -c public 172.16.1.13 sysname SNMPv2-MIB::sysName.0 = STRING: m03
- 命令说明:
- snmpwalk:类似 zabbix_get
- -v 2c:指定使用snmp协议的版本,snmp分为v1、v2、v3
- -c public:指定认证模式(程序固定好的,理解为固定格式即可)
- sysname:类似zabbix的key
2.3 zabbix服务web配置SNMP服务
2.3.1 添加SNMP主机
2.3.2 查看主机状态
第3章 监控Tomcat
3.1 安装zabbix-java-gateway
3.1.1 安装zabbix源
- CentOS 6:
[root@centos6 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
- CentOS 7:
[root@centos7 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
3.1.2 安装java网关
[root@centos ~]# yum install -y zabbix-java-gateway
3.2 配置zabbix server
[root@centos ~]# vim /etc/zabbix/zabbix_server.conf 217 JavaGateway=127.0.0.1 225 JavaGatewayPort=10052 235 StartJavaPollers=5 # 或 [root@centos ~]# sed -i -e '217a JavaGateway=127.0.0.1' -e '225a JavaGatewayPort=10052' -e '235a StartJavaPollers=5' /etc/zabbix/zabbix_server.conf [root@centos ~]# egrep -n '^J|^S' /etc/zabbix/zabbix_server.conf 217:JavaGateway=127.0.0.1 225:JavaGatewayPort=10052 235:StartJavaPollers=5
3.3 启动服务
- CentOS 6:
[root@centos6 ~]# /etc/init.d/zabbix-java-gateway start [root@centos6 ~]# /etc/init.d/zabbix-server restart [root@centos6 ~]# netstat -tunlp|grep java tcp 0 0 :::10052 :::*
- CentOS 7:
[root@centos ~]# systemctl start zabbix-java-gateway [root@centos ~]# systemctl restart zabbix-server [root@centos7 ~]# netstat -lntup | grep 1005 tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2848/zabbix_agentd tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 2772/zabbix_server tcp6 0 0 :::10050 :::* LISTEN 2848/zabbix_agentd tcp6 0 0 :::10051 :::* LISTEN 2772/zabbix_server tcp6 0 0 :::10052 :::* LISTEN 2745/java
3.4 Web界面配置

我的微信
如果有技术上的问题可以扫一扫我的微信