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同等数量的数据同步进程
...
★ 数据库优化:
☉ 分表
★ 建议:
☉ 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