zabbix专题(2)

今日学习目标:

  1. 可以实现一个web页面的监测html

  2. 可以实现自动发现远程linux主机mysql

  3. 可以经过动做在发现主机后自动添加主机并连接模板linux

  4. 可以建立一个模版并添加相应的元素(监控项,图形,触发器等)web

  5. 可以将主机或模板的配置实现导出和导入sql

  6. 可以实现至少一种报警方式(邮件,微信等)数据库

  7. 可以经过zabbix_proxy来实现监控

web监测

web监测:相似一个监控项,能够对一个url页面进行监测(监测它的状态码,下载速度等)vim

下面来作个例子(监测agent1的httpd的主页)bash

1,
web管理界面--》配置--》主机--》web监测(选agent1的web监测)--》右上角点建立web场景
服务器

mark

2,再点步骤,填上名称与监测的URL(你能够添加多个步骤,我这里只加这一个)微信

mark

3,继续在步骤界面的最下面填上200状态码,而后点添加,出来后再点添加

mark

4,建立完后,去下图中查看验证

若是看到是链接失败,则表示agent1的httpd没有启动若是是404错误,则表示服务启动了,但找不到主页

mark

5, 去agent1上安装httpd,并作一个主页,再重启服务

[root\@agent1 \~]# yum install httpd httpd-devel

  1. [root\@agent1 \~]# echo "agent1 主页" \> /var/www/html/index.html

  2. [root\@agent1 \~]# systemctl restart httpd

  3. [root\@agent1 \~]# systemctl enable httpd

mark

6,再去查看验证

练习:

  1. 为上面的web监测建立一个图形

  2. 为上面的web监测建立一个触发器,状态码不为200就触发(选监控项的时候要注意看清楚,一个web监测会产
    生好几个小的监控项,选状态码的那一个)

自动发现与动做

发现:假设我如今须要添加监控100台主机,这个工做量有点大。因此我能够把这100台连好网络,配置并启动好

zabbix-agent服务。而后在zabbix
server上配置一个自动发现规则,自动发现这100台主机。

自动发现是由服务端主动发起,Zabbix
Server开启发现进程,定时扫描网络中符合条件的主机。

动做:自动发现了这100台主机,可是还要添加监控主机和连接模板啊。这时能够经过动做来达到此目的。

我们前面早就准备了一台agent2,一直还没使用,这里就尝试自动发现这台agent2。

1,在agent2上安装zabbix-agent包

1 [root\@agent2 \~]# yum install zabbix-agent

2,配置zabbix-agent端的配置文件,启动服务并作成开机自动启动

147 Hostname=agent2.cluster.com --修改为agent2的主机名

[root\@agent2 \~]# systemctl restart zabbix-agent [root\@agent2 \~]# systemctl
enable zabbix-agent [root\@agent2 \~]# systemctl status zabbix-agent

[root\@agent2 \~]# lsof -i:10050

--修改为zabbix监控服务器的IP(被动监控)

97 Server=10.1.1.11

[root\@agent2 \~]# vim /etc/zabbix/zabbix_agentd.conf

思考: 若是100台服务器都要装系统,而后再作上面两步,也挺累的。用什么方法来作更高效?

答:
安装系统可使用pxe(kickstart)或cobbler.安装软件,修改配置可使用cobbler的postscript,再或者使用

ansible,saltstack这种软件。

3, web管理界面--》配置--》自动发现

mark

mark

zabbix专题(2)

4, 自动发现规则启用后,按下图显示的去验证

mark

5,发现了agent2,但有一个问题,并无把agent添加到监控的主机列表中,以下图所示

mark

6,经过动做,将发现的主机添加到监控主机列表,并加上监控模板。

web管理界面--》配置--》动做--》右上角事件源选自动发现--》有一个叫Auto
discovery. Linux servers

的动做,直接启用就好

mark

思考: 若是我发现主机后,还想要添加ftp,ssh相关的监控模板,怎么作?

1

mark

7,
再次验证就OK了(这里等待比较久,你也能够尝试把自动发现规则关闭一下,再次打开)

课外拓展:自动注册

自动注册:
与自动发现实现的功能相同,区别在于自动发现是由zabbixserver去发现被监控机器。而自动注册是由被监控机器去找zabbixserver注册。

请问: 若是有大量的被监控机器,哪种方式性能更好?

模板

模板(template):
就是包括监控项,应用集,触发器,图形,聚合图形,自动发现规则,web监测等的一组实体。使用模板能够方便应用到主机,更改模板也会将更改应用到全部连接的主机。

mark

参 考 :
https://www.zabbix.com/documentation/3.4/zh/manual/config/templates
web管理界面--》配置--》模板--》建立模板

mark

mark

导入导出

辛辛苦苦配置了一个模板或一个主机,我想给另外一台zabbix服务器使用或者我想保存下来(备份防止误删除),如何
实现?

导入导出能够帮你轻松实现,导出的是xml格式文件.

配置--》主机--》选取要导出的主机(前面打勾)--》下面选择导出

mark

mark

配置--》模版--》选取要导出的模版(前面打勾)--》下面选择导出

配置--》主机--》右上角导入

mark

mark

配置--》模板--》右上角导入

练习: 导入导出练习

  1. 把本机的一个模版删除

  2. 而后从同桌的zabbix服务器那导出成xml文件,并拷贝过来导入(里面有IP参数的要记得修改相应的IP)

报警

触发器:触发报警

zabbix的报警媒介支持email,jabber,sms(短信),微信,电话语音等。

mark

经过报警平台实现报警

本身配置报警比较复杂,并且邮件容易被拒或当作垃圾邮件。有些专业的报警平台就能够帮你简单实现。
如:onealeart 参考:<http://www.onealert.com/>;

咱们这里之前面都定义过的"agent1远程登陆用户数"来测试报警,当agent1远程登陆用户数大于20个就会触发器,
而后报警。(注意:请在测试前先把agent1的登陆用户数调整到20个如下)

简单过程:

1,去http://www.onealert.com/申请一个帐号,在我的中心绑定:手机,微信,邮箱等

2,在应用里加zabbix应用,产生一个key(我这里的key为51c35554-939f-5c4d-604d-53ecdf3d7e2e);设置
报警的策略(设置报警邮箱或微信等)

3,按照它的提示,进行安装

# cd /usr/lib/zabbix/alertscripts

# wget
<http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.2.0.tar.gz>;
#若是上述地址没法下载,请使用官方连接。

# tar xf oneitsm_zabbix_release-1.2.0.tar.gz # cd oneitsm/bin/

# bash install.sh 51c35554-939f-5c4d-604d-53ecdf3d7e2e

start to create config file...

  1. Zabbix管理地址: <http://10.1.1.11/zabbix/>;

  2. Zabbix管理员帐号: admin

  3. Zabbix管理员密码:

  4. 4,安装完后,zabbix_server的web界面直接就配置好了报警媒介,报警用户,报警动做;你什么都不用再配置了

  5. 5,测试;你能够故意触发一些警告(触发器达到临界值),就会自动按照报警策略报警

mark

mark

mark

mark

mark

mark

配置完onealert后,咱们能够验证下它安装后到底对zabbix作了啥。简单来讲,它作了三件事:

  1. 增长了一个报警媒介类型

  2. 增长了一个用户和一个用户组用于报警

  3. 增长了一个报警动做

mark

mark

mark

mark

mark

mark

验证: 将agent1远程登陆用户数调整成大于20个,让触发器触发。也会触发报警。

mark

分布式监控

当监控机主机特别多,甚至分散在不一样的地域机房。这个时候zabbix
server压力很大,因此能够经过增长zabbix
proxy来代理收集每一个机房里的主机信息,再统一给zabbix server.

参考网址:
<https://www.zabbix.com/documentation/3.4/zh/manual/distributed_monitoring/proxies>;

mark

mark

zabbix proxy的两个主要应用场景总结:

  1. 分布式监控,为zabbix server分担压力

  2. zabbix
    server监控有防火墙的内网各服务器时,须要防火墙开放各个端口。使用zabbix
    proxy在内网统一监控,而后与zabbix
    server经过公网链接,此时防火墙只须要开放zabbix server与zabbix
    proxy的链接就能够了。



实验环境准备:

我这里把原来的agent2用来模拟zabbixproxy

  1. 先在web界面把agent2的配置删除(并把先前作的自动发现规则禁用,报警也禁用)

  2. 把agent2主机名改为zabbixproxy.cluster.com而且三台从新绑定/etc/hosts

zabbixserver.cluster.com agent1.cluster.com

zabbixproxy.cluster.com

10.1.1.11

10.1.1.12

10.1.1.13

# hostnamectl set-hostname --static zabbixproxy.cluster.com

# vim /etc/hosts

  1. 把agent2上的zabbix-agent服务先停一下

mark

实验过程:

  1. 在zabbixproxy上安装相关软件包

1 [root\@zabbixproxy \~]# yum install mariadb-server zabbix-proxy-mysql
zabbix-agent

2,启动数据库,受权并导入数据

[root\@zabbixproxy \~]# zcat
/usr/share/doc/zabbix-proxy-mysql-3.4.15/schema.sql.gz

|mysql zabbix_proxy -u zabbix -p123

MariaDB [(none)]\> create database zabbix_proxy default charset utf8;

MariaDB [(none)]\> grant all privileges on zabbix_proxy.* to
'zabbix'\@'localhost' identified by '123';

MariaDB [(none)]\> flush privileges;

8

9

10

[root\@zabbixproxy \~]# mysql

[root\@zabbixproxy \~]# systemctl restart mariadb

[root\@zabbixproxy \~]# systemctl enable mariadb

3, 修改zabbix_proxy上的配置文件,并重启服务

253 DataSenderFrequency=5
--主动模式下zabbix_proxy多久发送一次收集的数据给zabbix_server

--打开注释,并写上密码(与前面受权一致)

--主动模式下zabbix_proxy多久从zabbix_server接收一次配置数据

190 DBPassword=123

244 ConfigFrequency=60

--主动模式

--zabbix_server的ip

--这个名字最好和你的主机名还有后面在web界面配置代理

13 ProxyMode=0

24 Server=10.1.1.11

43 Hostname=zabbixproxy.cluster.com

的名字保持一致

156 DBHost=localhost

167 DBName=zabbix_proxy

182 DBUser=zabbix

1 [root\@zabbixproxy \~]# vim /etc/zabbix/zabbix_proxy.conf 2

3

4

1 [root\@zabbixproxy \~]# vim /etc/zabbix/zabbix_agentd.conf 2 64
SourceIP=10.1.1.13

3 97 Server=10.1.1.13

4 138 ServerActive=10.1.1.13

5 149 Hostname=zabbixproxy.cluster.com

  1. [root\@zabbixproxy \~]# systemctl restart zabbix-proxy

  2. [root\@zabbixproxy \~]# systemctl restart zabbix-agent

  3. [root\@zabbixproxy \~]# systemctl enable zabbix-agent

  4. [root\@zabbixproxy \~]# systemctl enable zabbix-proxy

4, 修改agent1上的服务并重启服务

[root\@agent1 \~]# systemctl restart zabbix-agent

把服务器的ip改为zabbix_proxy的ip,而不是zabbix_server的ip

[root\@agent1 \~]# vim /etc/zabbix/zabbix_agentd.conf 97 Server=10.1.1.13

138 ServerActive=10.1.1.13

149 Hostname=agent1.cluster.com

mark

mark

mark

zabbix专题(2)

验证测试:

在agent1上找一个监控项作改变(好比登陆用户数),而后在zabbix_server的图形界面能看到这个改变,说明proxy
成功.

主动监控和被动监控(拓展)

mark

agent被动模式

相对于agent的被动,也就是表示是server或proxy去找agent拿数据(这也是zabbix
server的默认模式)

配置方法以下:

[root\@agent1 \~]# systemctl restart zabbix-agent

--IP为zabbix_proxy的ip(若是没有proxy,则直接为zabbix_server的ip)

Server=10.1.1.13

agent端配置被动模式的参数以下

[root\@agent1 \~]# vim /etc/zabbix/zabbix_agentd.conf

agent主动模式

相对于agent的主动,也就是表示是agent主动把数据传给server或proxy

agent主动模式的优势是:
当agent太多的状况下,server或proxy去找这么多agent搜集数据,压力负载过大。用主动模式就能够缓解server或proxy的压力。

但用主动模式的问题是:
监控项也要转为主动式才行,并且不少zabbix自带模板里的监控项不支持转为主动式.

agent端配置主动模式的参数以下

  1. [root\@agent1 \~]# vim /etc/zabbix/zabbix_agentd.conf

  2. Serveractive=10.1.1.13
    --IP为zabbix_proxy的ip(若是没有proxy,则直接为zabbix_server的ip)

  3. [root\@agent1 \~]# systemctl restart zabbix-agent

mark

mark

mark

zabbix专题(2)

验证测试:

在agent1上把登陆用户数再次调整,而后在zabbix_server的图形界面能看到这个改变,说明主动监控成功.

proxy主动模式

zabbix_proxy主动发数据给zabbix_server(proxy的默认模式)

# vim /etc/zabbix/zabbix_proxy.conf

  1. ProxyMode=0 --此参数为0表示proxy主动模式

proxy被动模式

zabbix_server找zabbix_proxy为收集数据

# vim /etc/zabbix/zabbix_proxy.conf

  1. ProxyMode=1 --此参数为1表示proxy主动模式

场景

场景:
公司大概十几台服务器(主要是lnmp环境),如今须要你来设计并使用zabbix监控它们,而且要考虑之后的扩展,
尽可能使用自动的方式实现.

传智要作一个宣传网站--》1台--\>
架构(高可用,负载均衡)--》监控(安装监控软件并链接)
--》按需求设置监控模板--》因公司发展,业务增加,服务器增长,咱们得基础扩展监控模板
》公司再发展,有多个机房,咱们要实现分布式


监控+自动注册+主动被动模式的优化

相关文章
相关标签/搜索