设为首页 收藏本站
查看: 980|回复: 0

[经验分享] zabbix 使用进阶(六)

[复制链接]

尚未签到

发表于 2019-1-25 08:24:47 | 显示全部楼层 |阅读模式
zabbix 分布式监控

  ===============================================================================
  概述:
    具体内容如下:

  •   zabbix proxy分布式监控的创建和使用;
  •   zabbix 性能调优
        ·zabbix服务器进程数量调整:
        ·数据库优化
  •   zabbix 优化建议;
  •   如何调整zabbix agent为主动监控模式
  ===============================================================================
  
zabbix proxy:
  ---可选组件,常用于分布式监控环境中,代理Server收集部分被监控数据并统一发往Server端;

安装配置过程:
(1)准备数据库服务器;
(2)安装

  • zabbix-proxy-mysql-3.0.2-1.el7.x86_64.rpm  zabbix-get-3.0.2-1.el7.x86_64.rpm  
(3)生成数据库


  • sql脚本位置:/usr/share/doc/zabbix-proxy-mysql-3.0.2/schema.sql.gz
  • mysql zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-3.0.2/schema.sql
(4)配置启动;


(5)在server端添加此proxy;

  • 位置:Administration --> proxies
  • Active:Proxy主动向server发起配置信息同步请求;
  • Passive:由Server端向Proxy发送配置信息;

(6)添加hosts时,选择使用指定的proxy进行监控;
注意:

  • 在server添加的Proxy的名称,要与proxy的配置文件中Hostname的值保持一致;
  • 通过proxy监控的主机,agent要授权proxy有监控权限;
        server=Proxy_Server_IP

  演示:
操作环境:

  •   新添加一台CentOS 7.2-4的虚拟主机配置zabbix-proxy,然后代理server端监控CentOS 7.2-3 主机;
  -----------------------------------------------------------------------------------------
1.设置zabbix database,创建一个数据库,并授权一个用户有权限连接并使用zabbix-proxy的数据库


1)mariadb安装,配置,及启动
# 在CentOS 7 安装mariadb数据库,使用前要首先编辑其配置文件/etc/my.cnf,添加跳过名称解析等
[root@centos7 ~]# vim /etc/my.cnf
skip_name_resolve = ON
innodb_file_per_table = ON
# 启动数据库,可以设置开机自启动
[root@centos7 ~]# systemctl start mariadb.service
[root@centos7 ~]# systemctl enabled mariadb.service    2)创建zabbix database数据库,并授权一个用户可以远程和本地登录此数据库;
[root@centos7 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.44-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database zabbix_proxy charset 'utf8';
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL ON zabbix_proxy.* TO 'zbxproxy'@'10.1.%.%' IDENTIFIED BY 'zbxpass';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> GRANT ALL ON zabbix_proxy.* TO 'zbxproxy'@'127.0.0.1' IDENTIFIED BY 'zbxpass';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| test               |
| zabbix_proxy       |
+--------------------+
6 rows in set (0.05 sec)  

  ----------------------------------------------------------------------------------------
  2.安装服务器端  

  1)下载zabbix相关的所有程序包
[root@centos7 ~]# ls zabbix-proxy
zabbix-get-3.0.2-1.el7.x86_64.rpm  zabbix-proxy-mysql-3.0.2-1.el7.x86_64.rpm    2)安装server端的程序包:zabbix-server-mysql和zabbix-get
[root@centos7 zabbix-proxy]# yum install zabbix-proxy-mysql-3.0.2-1.el7.x86_64.rpm zabbix-get-3.0.2-1.el7.x86_64.rpm -y
[root@centos7 ~]# rpm -ql zabbix-proxy-mysql
/etc/logrotate.d/zabbix-proxy         
/etc/zabbix/zabbix_proxy.conf                           //主配置文件
/usr/lib/systemd/system/zabbix-proxy.service            //Unit File文件
/usr/lib/tmpfiles.d/zabbix-proxy.conf
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_proxy_mysql
/usr/share/doc/zabbix-proxy-mysql-3.0.2
/usr/share/doc/zabbix-proxy-mysql-3.0.2/AUTHORS
/usr/share/doc/zabbix-proxy-mysql-3.0.2/COPYING
/usr/share/doc/zabbix-proxy-mysql-3.0.2/ChangeLog
/usr/share/doc/zabbix-proxy-mysql-3.0.2/NEWS
/usr/share/doc/zabbix-proxy-mysql-3.0.2/README
/usr/share/doc/zabbix-proxy-mysql-3.0.2/schema.sql.gz    //sql脚本,导入数据库使用
/usr/share/man/man8/zabbix_proxy.8.gz
/var/log/zabbix
/var/run/zabbix  ----------------------------------------------------------------------------------------
  3.导入数据库脚本,以生成数据库环境
[root@centos7 ~]# cp /usr/share/doc/zabbix-proxy-mysql-3.0.2/schema.sql.gz zabbix-proxy/  
[root@centos7 ~]# gzip -d zabbix-proxy/schema.sql.gz       //复制脚本到本地,并解压缩                       
[root@centos7 ~]# cd zabbix-proxy
[root@centos7 zabbix-proxy]# ls
schema.sql  
# 导入数据库脚本
[root@centos7 zabbix-proxy]# mysql -uzbxproxy -h127.0.0.1 -pzbxpass zabbix_proxy < schema.sql
[root@centos7 zabbix-proxy]# mysql -uzbxproxy -h127.0.0.1 -pzbxpass  
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.44-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zabbix_proxy       |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> use zabbix_proxy
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [zabbix_proxy]> show tables;  //查看导入脚本后生成的表
+----------------------------+
| Tables_in_zabbix_proxy     |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| application_discovery      |
| application_prototype      |
| application_template       |
| applications               |
| auditlog                   |
| auditlog_details           |
| autoreg_host               |
| conditions                 |
| config                     |  ----------------------------------------------------------------------------------------
4.zabbix-proxy配置启动
   1)配置说明
[root@centos7 ~]# grep "^####" /etc/zabbix/zabbix_proxy.conf   //获取配置段大概信息
############ GENERAL PARAMETERS #################
######### PROXY SPECIFIC PARAMETERS #############
############ ADVANCED PARAMETERS ################
####### LOADABLE MODULES #######
####### TLS-RELATED PARAMETERS #######   2)编辑配置如下:
[root@centos7 ~]# vim /etc/zabbix/zabbix_proxy.conf
  Server=10.1.252.153            //zabbix-server端的地址      
  Hostname=zbxproxy.CentOS7.2-4
  DBHost=10.1.252.73
  DBName=zabbix_proxy
  DBUser=zbxproxy
  DBPassword=zbxpass
  ConfigFrequency=120         //zabbix-server端多长时间将proxy配置推送给proxy端
  DataSenderFrequency=1       //proxy端每多长时间把数据发送给zabbix-server端   3)启动zabbix-proxy服务,查看端口10051
[root@centos7 ~]# systemctl start zabbix-proxy
[root@centos7 ~]# ss -tnl
State      Recv-Q Send-Q   Local Address:Port                  Peer Address:Port              
LISTEN     0      50                   *:3306                             *:*     //数据库     
LISTEN     0      128                  *:22                               *:*                  
LISTEN     0      128          127.0.0.1:631                              *:*                  
LISTEN     0      100          127.0.0.1:25                               *:*                  
LISTEN     0      128          127.0.0.1:6010                             *:*                  
LISTEN     0      128                  *:10051                            *:*     //proxy         
LISTEN     0      128                 :::22                              :::*                  
LISTEN     0      128                ::1:631                             :::*                  
LISTEN     0      100                ::1:25                              :::*                  
LISTEN     0      128                ::1:6010                            :::*                  
LISTEN     0      128                 :::10051                           :::*  ---------------------------------------------------------------------------------------

  5.在server端添加此proxy
   1)点击管理菜单--->agent代理程序--->创建代理
  
   2)设定代理程序proxy的名称(和配置文件中保持一致),和代理模式,然后添加即可,如下:


  

  ----------------------------------------------------------------------------------------------------------------------------------------
  6.添加CentOS 7.2-3 的hosts主机时,选择使用指定的proxy进行监控;
   1)修改配置文件,重启zabbix-agent服务;
  
[root@centos7 zabbix]# vim zabbix_agentd.conf
##### Passive checks related        //被动监控相关配置
Server=10.1.252.153,10.1.252.73    //特别注意:要添加允许proxy端采取数据的ip
ListenPort=10050              
ListenIP=0.0.0.0               
StartAgents=3                  
##### Active checks related    //主动监控相关的配置
ServerActive=10.1.252.73        //主动报告数据的服务器也为proxy端
Hostname=CentOS 7.2-3   2)在web端添加CentOS 7.2-3的hosts主机,并指明是通过代理proxy监控的,如下:


  

   2)在CentOS 7.2-3上添加所需要的模板,如下:
  
   3)点击添加之后可以看到自己添加的主机是通过zabbix-proxy代理监控的,如下:

   4)在监测中查看数据及图形如下:

  

   如上,就是整个zabbix-proxy分布式监控的整个配置过程...
  =============================================================================
zabbix performance tuning:性能调优

衡量指标

  • NVPS:New Value Per Second(每秒新值)
zabbix服务器进程数量调整:

  • alerter(报警器进程)
  • discoverer(发现进程)
  • escalator(报警升级进程)
  • http poller
  • housekeeper
  • poller(被动监控的进程数)
  • trapper(主动监控进程数)
  • configration syncer(同步配置时长)
  • ipmi poller
    ...
建议要调整的有:

  • StartPollers=50
  • StartPingers=10    //探测主机是否在线
  • StartDBSyncers=2   //启动与proxy同等数量的数据同步进程
    ...
数据库优化:
分表

  • history_*
  • trend*
  • events*
建议:
Database:

  • 历史数据不要保存太长时间;尽量让数据缓存数据库服务器内存中;
触发器的表达式:

  • 减少使用min(), max(), avg();尽量使用last(), nodata();
数据收集:

  • polling较慢时,减少使用snmp/agentless/agent,即被动监控,尽量使用trapping方式,即agent(active)主动监控;
数据类型:

  • 文本型数据处理速度较慢,尽量少收集类型为text或string或log型的数据,多使用numeric型数据;

zabbix agent Active主动模式监控

zabbix_server端当主机数量过多的时候,由Server端去收集数据,Zabbix会出现严重的性能问题,
主要表现如下:

  • 当被监控端到达一个量级的时候,Web操作很卡,容易出现502
  • 图层断裂
  • 开启的进程(Pollar)太多,即使减少item数量,以后加入一定量的机器也会有问题
所以要考虑在两个方面优化:


  • 添加Proxy节点或者Node模式做分布式监控
  • 调整Agentd为主动模式
由于第一个方案需要增加物理机器,所以首先尝试第二方案。

  调整Agent为主动模式:
  1.被监控端 zabbix_Agentd.conf 的配置调整:
LogFile=/tmp/zabbix_agentd.log
StartAgents=0             //客户端agent(被动)模式,其值为0的时候,仅为主动模式,被监控端的zabbix_agentd
                            不监听本地端口,所以无法在 netstat -tunpl 中查看到zabbix_agentd的端口和进程
ServerActive=**.**.**.**  //zabbix_server的ip
Hostname=test_host        //重要:主机名
RefreshActiveChecks=1800  //被监控端到服务器获取监控项的周期
BufferSize=200            //被监控端存储监控信息的空间大小
Timeout=10                //超时时间
比较重要的参数是ServerActive和Hostname,ServerActive是指定Agentd收集的数据往哪里发送,Hostname是必须要和Server端添加主机时的主机名一样,这样Server端接收到数据才能找到对应关系。  2.Server端的zabbix_server.conf 配置调整:
StartPollers=100   //在高级设置中,首先把这个主动收集数据(被动模式)进程减少,原来开到700多,囧
StartTrappers=200  //然后把这个负责处理Agentd推送(主动模式)过来的数据的进程开大一些,就可以了  3.然后修改模板,调整对应的监控项类型为agent_Actice模式即可

  
    4.添加主机时一定要注意,主机名和配置文件设定的一定要相同

  

  

  

  

  

  

  

  

  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-667218-1-1.html 上篇帖子: zabbix 使用进阶(五) 下篇帖子: zabbix结合shell实现自动发现占用内存最大top10进程并监控其资源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表