企业运维之 zabbix 监控--报警平台与分布式

Posted 123坤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了企业运维之 zabbix 监控--报警平台与分布式相关的知识,希望对你有一定的参考价值。

企业运维之 zabbix 监控--报警平台与分布式

1. 报警平台的使用

此处选择和睿象云结合来实现报警平台的搭建;

  1. 注册

链接: link 进行注册;


注册完成之后,点击左侧的CA进入告警平台进行配置,结合zabbix;


点击需要结合的监控zabbix;然后出现如下所示的界面:


输入应用名称,然后点击保存并获取应用key;然后会获得一个key,如下所示;

接下来根据提示信息来开始配置;

根据主配置文件找到告警路径:

  1. 配置

在该路径下用命令wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-3.0.1.tar.gz下载所需要的探针;

[root@server1 zabbix]# cd /usr/lib/zabbix/alertscripts
[root@server1 alertscripts]# ls
[root@server1 alertscripts]# ls
ca_zabbix_release-3.0.1.tar.gz
[root@server1 alertscripts]# tar zxf ca_zabbix_release-3.0.1.tar.gz 
[root@server1 alertscripts]# ls
ca_zabbix_release-3.0.1.tar.gz  cloudalert
[root@server1 alertscripts]# cd cloudalert/
[root@server1 cloudalert]# ls
bin
[root@server1 cloudalert]# cd bin/
[root@server1 bin]# ls
alert.sh  funcs  install.sh  uninstall.sh
#下面的key为生成的key,此处要确保能上网
[root@server1 bin]# ./install.sh 61b042f952ba4da4aa03e7e05f0b03e3
请输入Zabbix管理地址:http://172.25.25.1/zabbix
Check connection success!
请输入Zabbix管理员账号:Admin
请输入Zabbix管理员密码:  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   170  100    70  100   100   1119   1599 --:--:-- --:--:-- --:--:--  1612
Authentication success!
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   108  100    41  100    67   1003   1640 --:--:-- --:--:-- --:--:--  1634
Check api version success!
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   313  100    56  100   257    992   4555 --:--:-- --:--:-- --:--:--  4589
Create new media type success!
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   192  100    54  100   138    932   2383 --:--:-- --:--:-- --:--:--  2421
Create new group success!
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   397  100    51  100   346    895   6078 --:--:-- --:--:-- --:--:--  6178
Create new user success!
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1572  100    51  100  1521    778  23214 --:--:-- --:--:-- --:--:-- 23400
Create new action success!
Install zabbix agent success!
  1. 报警媒介的设定:

在该页面将其他三个自带的禁用,来确保当前的媒介测试成功;


报警用户:


默认是通过所有介质,所以前面才会禁用其他介质;

  1. 通知策略设定


  1. 模拟错误

systemctl stp zabbix-agent


等待时间到达之后便会发送信息,但是还没有处理;

在告警平台可以和接收端可以看到告警信息,要是结合app还可以在app端做认领和解决;


问题解决:systemctl start zabbix-agent


还可以看到谁认领,谁解决,通过那些方式解决了问题。

2. Agent 主动模式

默认情况下, 是Server端周期性的连接Agent端手机自己想要的监控信息。
不难想象,在Agent端数量增大时,Server端的压力也在增大。
如果数量级庞大,这也会成为业务的一个热点;Agent端能主动向Server提交信息就再好不过了。

点击模板, 进行全克隆 , 重命名新模板为模板 Active:




此时已经科隆完成,然后在修改监控项:全选之后点击批量更新;


更改模式,然后点击更新,此时批量更新完成:

然后将server3上的模板改为新的克隆更改的模板,此时便为主动发送;


等待一定时间后能看到新的数据出现:

以上就是agent端主动向server端发送数据的过成,可以减小server端的负载;当这样可以时就不需要添加分布式消耗资源。
入骨是在是满足不了需求再考虑分布式。

3. proxy 分布式

zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力。

此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。

zabbix proxy 使用场景:

监控远程区域设备
监控本地网络不稳定区域
当 zabbix 监控上千设备时,使用它来减轻 server 的压力
简化分布式监控的维护

此处可以再开一台主机来做代理;此处选择将server2用来做代理。

首先删除监控页面的server2主机,然后停掉不需要的服务,安装需要的软件包,并修改配置文件;

  1. 停掉不需要的服务
[root@server2 bin]# ./shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@server2 bin]# systemctl stop httpd
[root@server2 bin]# systemctl disable --now zabbix-agent
  1. 安装并配置proxy

由于此proxy开启的端口也为10051所以一定要停掉agent;proxy 中的数据库的信息,要和新建的数据库对应起来;

[root@server2 ~]# yum install -y zabbix-proxy
[root@server2 ~]# cd /etc/zabbix/
[root@server2 zabbix]# vim zabbix_proxy.conf 

 30 Server=172.25.25.1
 49 Hostname=proxy
 196 DBPassword=westos
#数据库密码
[root@server2 zabbix]# hostnamectl set-hostname proxy
[root@server2 zabbix]# vim /etc/hosts	#在所有节点都加上解析
[root@proxy zabbix]# yum install -y mariadb-server
[root@proxy zabbix]# systemctl start mariadb.service 
[root@proxy zabbix]# mysql
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> create user 'zabbix'@'localhost' identified by 'westos';
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to 'zabbix'@'localhost';

#登陆数据库测试
[root@proxy zabbix]# mysql -u zabbix -p zabbix_proxy
Enter password: 
MariaDB [zabbix_proxy]> 

[root@proxy zabbix-proxy-mysql-4.0.5]# pwd 
/usr/share/doc/zabbix-proxy-mysql-4.0.5
[root@proxy zabbix-proxy-mysql-4.0.5]# ls
AUTHORS  ChangeLog  COPYING  NEWS  README  schema.sql.gz
[root@proxy zabbix-proxy-mysql-4.0.5]# zcat schema.sql.gz | wc -l
1967
[root@proxy zabbix-proxy-mysql-4.0.5]# zcat schema.sql.gz | mysql -uzabbix -pwestos zabbix_proxy
[root@proxy zabbix-proxy-mysql-4.0.5]# systemctl enable --now zabbix-proxy
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-proxy.service to /usr/lib/systemd/system/zabbix-proxy.service.
[root@proxy zabbix-proxy-mysql-4.0.5]# netstat -antlp | grep :10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      24455/zabbix_proxy  
tcp6       0      0 :::10051                :::*                    LISTEN      24455/zabbix_proxy  
[root@proxy ~]# cat /var/log/zabbix/zabbix_proxy.log 
 24461:20210726:085331.141 cannot send heartbeat message to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085331.536 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085332.537 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085333.539 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085334.541 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085335.542 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085336.544 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085337.545 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085338.547 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085339.548 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085340.550 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085341.552 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085342.554 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found
 24462:20210726:085343.555 cannot send proxy data to server at "172.25.25.1": proxy "proxy" not found

此时通过日志可以看到并不能连接到server,此时需要做代理设置:


完成之后此时再次重启zabbix-proxy然后再次查看日志就已经好了;

[root@proxy ~]# systemctl restart zabbix-proxy.service 
[root@proxy ~]# cat /var/log/zabbix/zabbix_proxy.log 

 24455:20210726:090009.604 Zabbix Proxy stopped. Zabbix 4.0.5 (revision 90164).
 24601:20210726:090009.644 Starting Zabbix Proxy (active) [proxy]. Zabbix 4.0.5 (revision 90164).
 24601:20210726:090009.644 **** Enabled features ****
 24601:20210726:090009.644 SNMP monitoring:       YES
 24601:20210726:090009.644 IPMI monitoring:       YES
 24601:20210726:090009.644 Web monitoring:        YES
 24601:20210726:090009.644 VMware monitoring:     YES
 24601:20210726:090009.644 ODBC:                  YES
 24601:20210726:090009.644 SSH2 support:          YES
 24601:20210726:090009.644 IPv6 support:          YES
 24601:20210726:090009.644 TLS support:           YES

此时需要更改agent 的指向,应该将其指向proxy,而不是直接指向server;此时的访问流程为 server <- proxy -> agent

[root@server3 zabbix]# vim zabbix_agentd.conf 

 98 Server=172.25.25.2
139 ServerActive=172.25.25.2
[root@server3 zabbix]# systemctl restart zabbix-agent
[root@server3 zabbix]# cat /var/log/zabbix/zabbix_agentd.log 

此时在查看日志时会提示server端(172.25.25.2)没有发现,需要配置代理;


需要在server端(172.25.25.2)将proxy重启一次,然后再次重启agent 来观察效果;

[root@proxy ~]# systemctl restart zabbix-proxy.service 
[root@server3 zabbix]# systemctl restart zabbix-agent
[root@server3 zabbix]# cat /var/log/zabbix/zabbix_agentd.log 
 23967:20210726:091404.964 Starting Zabbix Agent [server3]. Zabbix 4.0.5 (revision 90164).
 23967:20210726:091404.964 **** Enabled features ****
 23967:20210726:091404.964 IPv6 support:          YES
 23967:20210726:091404.964 TLS support:           YES
 23967:20210726:091404.964 **************************
 23967:20210726:091404.964 using configuration file: /etc/zabbix/zabbix_agentd.conf
 23967:20210726:091404.965 agent #0 started [main process]
 23968:20210726:091404.967 agent #1 started [collector]
 23970:20210726:091404.967 agent #3 started [listener #2]
 23969:20210726:091404.968 agent #2 started [listener #1]
 23971:20210726:091404.970 agent #4 started [listener #3]
 23972:20210726:091404.971 agent #5 started [active checks #1]


可以看到在转换为 proxy 时会有一个间断的时间,但是会自动继续开启;

次过程也接受到了告警信息:



和前面一样,在监控java时,也可以设置网关和进程:

[root@proxy zabbix]# vim zabbix_proxy.conf 

330 JavaGateway=172.25.25.1
345 StartJavaPollers=5
[root@proxy zabbix]# systemctl restart zabbix-proxy.service 

以上是关于企业运维之 zabbix 监控--报警平台与分布式的主要内容,如果未能解决你的问题,请参考以下文章

企业运维之 zabbix 监控部署--监控主机

企业运维之 zabbix 监控部署--监控主机

企业运维之 zabbix 监控部署--监控应用

企业运维之 zabbix 监控部署--监控应用

Zabbix实战之运维篇Zabbix监控平台的邮件报警配置

开源的linux运维监控工具都有哪些