首页 > 其他分享 >第59天-Zabbix-安装与proxy使用

第59天-Zabbix-安装与proxy使用

时间:2024-03-08 11:47:42浏览次数:37  
标签:59 zabbix agent server Zabbix proxy mysql 172.31

1.Zabbix简介及安装-上

image-20210512103001842

内存利用率
CPU利用牢
磁盘利用率
网卡利用率

1.4.2.1:数据采集:周期性时序数据
主机/对象:服务器、路由器、交换机、存储、防火墙、IP、PORT、URL、自定义监控对象...
采集目标:监控项,指标数据(metrics data)

1.4.2.2:数据存储:
监控数据存储系统
SQL: MySQL/MariaDB(zabbix)
NosQL: Redis(open-falcon)
rrd: Round Robin Database(Cacti)

1.4.2.3:数据类型:
历史数据:每个监控项采集到的每个监控值
趋势数据:趋势表里主要保留某个监控项一个小时内历史数据的最大信、最小值和平均信以及该监控项一个小时内所采集到的数据个数。

1.4.2.4:阔值:
可按照预定义的阅值等级实现分层报警

1.4.2.5:告警机制;
ernail,短信,微信,语音.故障自治愈

1.4.3: zabbix核心任务:

1.4.1︰数据采集:
数据采集方式: zabblx-server,zabbix-proxy,zabbix-agent
Agentless: SNMP,Teinet,ssh,IPMI,JMX,Agent: zabbix agent

1.4.2∶数据存储:
zabbix database

1.4.3:数据展示:
zabbix web:
graph -> screen -> slideshow[将多个screen以幻灯片的方式进行轮治展示)

grafana:
以zabbix为数据源展示更绚丽的界面


1.4.4∶告警通知:
hast ( host groups ) <- templates #从模板继承告警配置
host -> items -o triggers -> action(条件-conditions,操作-operations)#白定义告警配置



172.31.7.31  zabbix-server    172.31.7.32  proxy-active   172.31.7.33  proxy-passive  
172.31.7.34  mysql-master


172.31.7.32  proxy-active 
--------------------------
install  zabbix repository
# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
# dpkg -i zabbix-release_4.0-3+bionic_all.deb
# apt-get update

安装Zabbix server,Web前端,agent
# apt-get -y  install zabbix-server-mysql zabbix-frontend-php zabbix-agent



172.31.7.34  mysql-master
-------------------------
在mysql maser安装数据库并授权zabbix使用
# apt-get install -y mysql-server mysql-client    #或者安装mariadb-server mariadb-client
# vim /etc/mysql/mysql.conf.d/mysqld.cnf   #修改监听地址
bind-address          = 0.0.0.0
# systemctl restart mysql

# mysql #进入数据库创建账户并授权
mysql> create database zabbixtest character set utf8 collate utf8_bin;
mysql> create user zabbix@"172.31.7.%" identified by '1';
mysql> grant all privileges on zabbixtest.* to zabbix@"172.31.7.%";


172.31.7.32  proxy-active 
===========================
安装mysql-client
# apt-get install -y mysql-client

远程连接mysql数据库
# mysql -uzabbix  -p1  -h172.31.7.34

修改zabbix主配置文件
# vim /etc/zabbix/zabbix_server.conf 
ListenPort=10051
DBHost=172.31.7.34
DBName=zabbixtest
DBPassword=1

启动zabbix服务
# systemctl restart zabbix-server.service 

查看zabbix-server端口开启状态
# ss -ntl
LISTEN 0       128                  [::]:10050    
# lsof -i:10050

初始化数据库
导入初始架构和数据,系统将提示您输入新创建的密码。
# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz  | mysql -uzabbix -h172.31.7.34 -p1 zabbixtest                                       #连接到自己远程主机的账号与数据库上

重新启动服务
# systemctl restart zabbix-server.service 

修改php时区
# vim /etc/zabbix/apache.conf
<IfModule mod_php7.c>         #此处改动的php7时区
   php_value date.timezone Asia/Shanghai

重新启动
# systemctl restart zabbix-server zabbix-agent apache2


172.31.7.34  mysql-master
--------------------------
查看生成的表数据
mysql> use zabbixtest;
mysql> show tables;

访问:
172.31.7.32/zabbix

image-20210512162900247

数据库主机   172.31.7.34
数据库端口   3306      0-使用默认端口
数据库名称   zabbixtest
用户         zabbix
密码         1

image-20210512163532181

Host   172.31.7.32
Port   10051
Name   Zabbix Server zhgedu

image-20210512164542191

修改前端配置
172.31.7.32
# vim /usr/share/zabbix/conf/zabbix.conf.php

image-20210512164033215

登陆Zabbix
Username
Admin
Password
zabbix

image-20210512164209052

创建成功

image-20210512164744836

image-20210512233448577

2.Zabbix简介及安装-下

编译安装zabbix:
编译安装zabbix server与agent
下载源码包
https://jaist.dl.sourceforge.net/progect/zabbix/ZABBIX%20Latest%20table  #下载地址
# pwd
# groupadd -g 1001 zabbix  #创建zabbix用户和组
# useradd -u 1001 -g  1001 zabbix 
# useradd -u 1001 -g 1001 zabbix #验证用户id

Ubuntu1804
===========
172.31.7.31
------------
apt-get install -y apache2 apache2-bin apache2-data apache2-utils fontconfig-config   fonts-dejavu-core fping libapache2-mod-php libapache2-mod-php7.2  libapr1 libaprutil1  libaprutil1-dbd-sqlite3 libaprutil1-ldap libfontconfig1 libgd3 libiksemel3 libjbig0  libjpeg-turbo8 libjpeg8 liblua5.2-0 libodbc1 libopenipmi0 libsensors4 libsnmp-base  libsnmp30 libsodium23 libssh2-1 libtiff5 libwebp6  libxpm4 php-bcmath php-common php-gd  php-ldap php-mbstring php-mysql php-xml php7.2-bcmath php7.2-cli  php7.2-common php7.2-gd  php7.2-json php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-opcache php7.2-readline  php7.2-xml snmpd ssl-cert ttf-dejavu-core libmysqlclient-dev libxml2-dev   libxml2 snmp libsnmp-dev libevent-dev openjdk-8-jdk curl  libcurl4-openssl-dev

install base 命令
# apt-get install -y   iproute2  ntpdate tcpdump  telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev  libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump  telnet traceroute
gcc  openssh-server lrzsz  tree  openssl libssl-dev libpcre3  libpcre3-dev   zlib1g-dev ntpdate tcpdump telnet traceroute iotop unzip zip

解压源码包
D:\和彩云同步文件夹\Service optimization file\Zabbix\zabbix-server-7.31\zabbix-4.0.30 .tar.gz
# cd /usr/local/src   
# tar xvf zabbix-4.0.30_.tar.gz 

 Compile install Zabbix:
# cd zabbix-4.0.30/
# ./configure --prefix=/apps/zabbix_server --enable-server --enable-agent --with-mysql  --with-net-snmp --with-libcurl --with-libxml2  --enable-java;
# make && make install


172.31.7.34    mysql-master
-----------------------------
创建新的数据库
mysql> create database zabbix_server character set utf8 collate utf8_bin;

授权
mysql> grant all privileges on zabbix_server.* to zabbix@"172.31.7.%" identified by '1';

刷新一下权限
mysql> flush privileges;

登录数据库
# mysql -uzabbix -p1 -h172.31.7.34


172.31.7.31  zabbix-server 
----------------------------
修改zabbix配置文件
# vim /apps/zabbix_server/etc/zabbix_server.conf
DBHost=172.31.7.34
DBName=zabbix_server
DBPassword=1
 
初始化数据库
创建zabbix proxy与zabbix server服务
# apt-get install -y mysql-client

安装zabbix proxy服务所需要的数据
# cd  /usr/local/src/zabbix-4.0.30/database/mysql
# mysql -uzabbix -p1 -h172.31.7.34  zabbix_server < schema.sql 

安装zabbix server服务所需的数据
# mysql -uzabbix -p1 -h172.31.7.34  zabbix_server < images.sql 
# mysql -uzabbix -p1 -h172.31.7.34  zabbix_server < data.sql 

创建普通用户
# useradd zabbix

编辑zabbix server启动配置文件:
# vim /lib/systemd/system/zabbix-server.service 
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=mysql.service
After=mysqld.service
After=mariadb.service

[Service]
Environment="CONFFILE=/apps/zabbix_server/etc/zabbix_server.conf"        #修改配置文件位置
EnvironmentFile=-/etc/default/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/apps/zabbix_server/run/zabbix_server.pid                        #修改pid文件位置
KillMode=control-group
ExecStart=/apps/zabbix_server/sbin/zabbix_server -c $CONFFILE            #修改配置文件位置
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=infinity

[Install]
WantedBy=multi-user.target

修改zabbix配置文件
# vim  /apps/zabbix_server/etc/zabbix_server.conf

PidFile=/apps/zabbix_server/run/zabbix_server.pid       #pid文件不配置起不来
AllowRoot=1
User=root

创建存放pid的目录
# mkdir /apps/zabbix_server/run -p  

启动zabbix服务
# systemctl daemon-reload
# systemctl restart zabbix-server


或者
直接启动,监听在10051,后期重启杀进程
# /apps/zabbix_server/sbin/zabbix_server -c  /apps/zabbix_server/etc/zabbix_server.conf

配置web界面
拷贝web界面程序
# mkdir /var/www/html/zabbix
# cd /usr/local/src/zabbix-4.0.30/frontends/php
# cp -a . /var/www/html/zabbix/               #拷贝php文件到apache-web目录中
# systemctl restart apache2

访问172.31.7.31/zabbix页面

image-20210513141311982

编译安装zabbix-php检查失败
修改php配置文件
# vim /etc/php/7.2/apache2/php.ini 
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone =  Asia/Shanghai

image-20210513141436840

重启apache 
# systemctl restart apache2

image-20210513142430196

数据库类型   的MySQL
数据库主机   172.31.7.34
数据库端口   3306     0-使用默认端口
数据库名称   zabbix_server
用户         zabbix
密码         1

image-20210513142536929

主持人  172.31.7.31
港口    10051
Name    Zabbix Server 

image-20210513142802600

# cd /var/www/html/zabbix/conf/
上传此文件
D:\和彩云同步文件夹\Service optimization file\Zabbix\zabbix-server-7.31\var\www\html\zabbix\conf\ zabbix.conf.php

image-20210513143236741

刷新页面

image-20210513143832228

登录
Admin  
zabbix

image-20210513143953017

image-20210513144255368

172.31.7.31
D:\和彩云同步文件夹\Service optimization file\Zabbix\zabbix-server-7.31\lib\systemd\system
配置agent启动文件
# vim /lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/apps/zabbix_server/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/default/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/apps/zabbix_server/run/zabbix_server.pid
KillMode=control-group
ExecStart=/apps/zabbix_server/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target
              
启动zabbix-agent服务
# systemctl restart zabbix-agent

查看zabbix-agent是否存活  10051

image-20210513161329668

ubuntu系统安装中文语言环境:

172.31.7.31
安装并设置中文简体语言环境
# sudo apt-get install language-pack-zh*

添加中文语言环境变量
# sudo vim /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
LANG="zh CN.UTF-8"

重新设置环境变量
# sudo dpkg-reconfigure locales

按空格选中

image-20210513162924590

按回车

image-20210513163056501

配置成功

image-20210513163248829

重启服务
# systemctl restart apache2

设置中文

image-20210513164019980

设置中文字体防止乱码
C:\Windows\Fonts

上传字体zabbix web 目录:
将windows字体文件上传至zabbix web目录,具体路径为/ZABIX/WEB/PATH/assets/fonts/,如下:
# pwd 
# cd  /var/www/html/zabbix/assets/fonts   #上传楷体字体文件到这里

# chown  zabbix.zabbix ./*   #更改权限为zabbix用户和组

修改zabbix文件调用新字体:
# pwd
# cd /var/www/html/zabbix
# vim  include/defines.inc.php
  72 define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file n     ame
 113 define('ZBX_FONT_NAME', 'simkai');

2.5.2.4:验证字体是否生效:
通常不需要重启zabblx及apache,修改后的字体文件即可直接生效。

image-20210513170102793

3.Zabbix配置 文件详解

# vim  /apps/zabbix_server/etc/zabbix_server.conf
ListenPort=10051     #zabbix-server监听端口
LogFile=/apps/zabbix_server/logs/zabbix_server.log      #修改zbbix-server的服务日志文件位置 mkdir 
/apps/zabbix_server/logs -p
LogFileSize=500    #指定日志滚动写入大小,当达到指定大小时,会删除就日志重新从头写入新日志,500M
DebugLevel=3     #指定日志级别,数字越大的越详细
PidFile=/apps/zabbix_server/run/zabbix_server.pid
SocketDir=/apps/zabbix_server/run/    #用于本机通讯的socket文件
DBHost=172.31.7.34 
DBName=zabbix_server
DBUser=zabbix
DBPassword=1
StartPollers=8   #预启动多少个实例数量
StartPreprocessors=3       #预启动工作进程数,预启动多少个进程用于处理zabbix agent数据
StartPollersUnreachable=2        #不可达主机的轮询进程的初始实例启动数量
StartTrappers=5               #预启动的Trappers进程数据,作为数据异常的报警
StartPingers=5              #ICMP ping进程的初始实例数量,zabbix通过ping检测网络设备的可用性,预启动多少个进行去监控它们的状态
StartDiscoverers=3        #预启动多少个工作进程经行主动发现,让zabbix自动添加zabbix-agent,一般不用。资源消耗比较多,每隔一段时间扫描一下各网段主机是否存活,消耗zabbix-server的cpu性能
StartHTTPPollers=3      #预启动多少http进程来响应web请求,一个进程可以处理多个web请求的
StartTimers=3        #计时器实例数量,计时器用于计算问题的发生时间和步骤同步等,记录每个事件所产生的时间,以及到时间产生报警的操作
SNMPTrapperFile=/apps/zabbix_server/run/zabbix_traps.tmp      #spmp触发器临时文件路径
StartSNMPTrapper=1         #SNMP触发器预启动数量,agent发送的信息是否超过设定的进程数量,超过了就触发报警,1为开启状态
HousekeepingFrequency=24     #多少小时清理次代理端数据库的 history数据,24小时
MaxHousekeeperDelete=1000000    #每次最多删除历史数据的行数
CacheUpdateFrequency=60         #Zabbix更新缓存 数据的频率,单位为秒,范围是1-3600 
StartDBSyncers=6               #预启动多少进程与Zabbix同步数据
HistoryCacheSize=126M         #当在Zabbix读取数据时,就会先把数据放到缓存里面.对Zabbix进行性能提升,公司一般都在1-2G
HistoryIndexCacheSize=32M    #历史数据索引缓存的大小
TrendCacheSize=16M          #用于设置划分多少系统共享内存用于存储计算出来的趋势数据,此参数值从一定程度上可影响数据库读压力,范围是128K 2G
ValueCacheSize=16M         #历史值缓存的大小,用于缓存历史数据请求的共享内存大小。
Timeout=30                 #数据获取等待超时时间,获取一个agent监控项,最长多常时间没有返回数据就认为agent挂了,连接超时
UnavailableDelay=60      #当主机不可用了,多久检查一次该主机的可用性,单位为秒,范围是1.3600
Fping6Location=/usr/bin/fping                  #fping可以ping出网络状态,alive与unreachable两种状态
TmpDir=/apps/zabbix_server/run/                            #把临时的数据放在指定的目录里面
StartProxyPollers=3                      #启用多少子进程与代理端通信,若代理较多可考虑加大此数值,范围是0-250
ProxyConfigFrequency=60              #proxy被动模式下,server多少秒同步配置文件至proxy,该参数仅用于被动模式下的代理,范围是1-3600*24*7
ProxyDataFrequency=60                #被动模式下,zabbix server间隔多少秒向proxy请求历史数据
AllowRoot=1           #允许root使用
User=root              #指定zabbix使用用户


# mkdir /apps/zabbix_server/logs -p
# systemctl restart zabbix-server.service
通过消息队列的状态查看哪个服务的接收信息比较慢, 所有为0为正常,当右队列在等待,肯定是有某个地方出现问题

image-20210514002328671

4.linux系统和tomcat监控

zabbix-agent允许访问的地址
-s    主机地址,获取那个主机的数据
-k    监控项的名称
# /apps/zabbix_server/bin/zabbix_get -s  127.0.0.1 -p 10050 -k "agent.ping" 
1                                                   #返回值为1表示正常

修改agent配置文件
# vim /apps/zabbix_server/etc/zabbix_agentd.conf
 94 Server=0.0.0.0,127.0.0.1,172.31.7.31             #允许任何一个主机获取数据 
135 ServerActive=172.31.7.31


重启服务
# systemctl restart zabbix-agent.service

测试访问结果
#  /apps/zabbix_server/bin/zabbix_get -s  172.31.7.31 -p 10050 -k "agent.ping" 
1                 


三:Zabbix监控入门基础:
学习通过aptlyum安装zabbix agent、对tomcat进行监控。
3.1:监控linux系统:
在其他linux服务器安装zabbix agent,然后添加到zabbix server以对其进行资源监控.
3.1.1: zabbix agent安装:


172.31.7.35          web1 
--------------------------
install  zabbix repository
# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
# dpkg -i zabbix-release_4.0-3+bionic_all.deb
# apt-get update
# apt-get  install zabbix-agent

配置zabbix-agent配置文件
# vim /etc/zabbix/zabbix_agentd.conf 
Server=172.31.7.31         #指向当前zabbix server
ListenPort=10050           #监听端口      
ListenIP=0.0.0.0           #监听地址
StartAgents=3              #预启动多少个进程收集本机的数据,#被动状态时默认启动的实例数(进程数),为8不监听任何端口
Hostname=172.31.7.35       #区分大小写且在zabbix server唯一的值,本机地址

启动服务
# systemctl restart zabbix-agent.service 
# systemctl enable zabbix-agent.service

查看开启端口
# ss -ntl  
LISTEN 0       128             0.0.0.0:10050   


zabbix web界面添加被监控主机:
在zabbix web管理界面添加上一步安装了zabbix agent的linux主机。
# grep -Ev '^#|^$' /etc/zabbix/zabbix_agentd.conf 

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.31.7.31
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=127.0.0.1
Hostname=172.31.7.35
Include=/etc/zabbix/zabbix_agentd.d/*.conf


配置主机
主机名称      172.31.7.35
可见的名称    172.31.7.35-web1
群组          zhgedu, 选择了 zhgedu (新) 
agent代理程序的接口
 IP地址   	 DNS名称  	连接到  	端口	    默认
172.31.7.35                 IP地址DNS  10050     移除
由agent代理程序监测  (无agent代理程序)
已启用
添加  取消           #设置完模板在添加

image-20210516193728717

设置模板

image-20210516195319283

image-20210516195404311

被动监控: 查看监控项 ,在被监控的主机上装agent,在配置文件中改参数

image-20210516195822143

监控tomcat:
学习如何通过java gateway实现对tomcat的指标进行数据采集和图形展示,如堆栈内存利用率、当前会话连接数、繁忙线程等。

image-20210516201703952

image-20210516202005020

准备JDK环境
# cd /usr/local/src
# tar xf jdk-8u221-linux-x64.tar.gz
# apt-get install openjdk-8-jdk -y

创建目录
 # mkdir /apps  && cd  /apps
 
上传tomcat包
# cd /apps
D:\百度同步文件夹\tar-xvf解包tar-cvf打包\apache-tomcat-8.5.65.tar.gz

进入解压文件,并修改脚本
# vim /apps/apache-tomcat-8.5.65/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS  
-Dcom.sun.management.jmxremote   #启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345    #默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false   #不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false            #不使用ss1认证
-Djava.rmi.server.hostname=172.31.7.35"             #tomcat主机自己的IP地址,不要写zabbix服务器的地址

开启tomcat
# /apps/apache-tomcat-8.5.65/bin/catalina.sh start

查看端口开启状态
 # ss -ntl
LISTEN0      128                 0.0.0.0:10050 
LISTEN0      100                       *:8080   
LISTEN0      50                        *:12345   
java的客户端

image-20210516211215539

image-20210516211056638

172.31.7.31
------------
启动java gataway
查看java gateway参数
# pwd
/usr/local/src/zabbix-4.0.30
# ./configure --help | grep java
  --enable-java           Turn on build of Zabbix Java gateway

配置java gataway地址
# cd  /apps/zabbix_server/sbin/zabbix_java
# vim settings.sh 
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
START_POLLERS=5          #启动多少个线程监控
TIMEOUT=30                #超时时间

启动java gataway服务
# /apps/zabbix_server/sbin/zabbix_java/startup.sh start 

查看端口是否开启
# ss -ntl
LISTEN 0       50                    *:10052        

修改zabbix-server配置文件
# vim /apps/zabbix_server/etc/zabbix_server.conf
282 JavaGateway=172.31.7.31
290 JavaGatewayPort=10052
298 StartJavaPollers=5            #启动5个进程

重启服务
# systemctl restart zabbix-server.service 


配置Java监控

image-20210516214827421

image-20210516214427118

3.2.15: Linux测试监控JMX方式:
使用java客户端cmdline-jmxclient进行测试
测试能否获取到java当前线程数和最大线程数:
 172.31.7.35:12345        #指定连接哪个服务器哪个端口进行监控
 type=ThreadPool'         #指定监控项
 currenThreadCount        #当前线程数统计
# java -jar cmdline-jmxclient-0.10.3.jar - 172.31.7.35:12345  'Catalina:name="http-nio-8080",type=ThreadPool' currenThreadCount

导入监控项模板
选择文件   D:\和彩云同步文件夹\Service optimization file\Zabbix\tomcat-template-magedu-jiege.xml
规则
更新现有的	创建新的	删除失败
群组			
主机			
模板			
模板聚合图形			
模板间的关联			
应用集			
监控项			
自动发现规则			
触发器			
图形			
Web 场景		
导入                            #上面参数保持默认

image-20210517114358445

更换模板

image-20210517115101468

查看最新数据

image-20210517115444716

5.zabbix主动模式和被动模式简介及实现

image-20210517120518819

3.3: zabbix主动与被动监控模式:
zabbix-agent主动给zabbix-server数据信息
学习主动模式与被动模式工作原理,主动模式模板制作,然后添加主机并关联主动模式模板,然后验证主动模式监控数据和图形。

3.3.1:被动模式:
zabbix agent用的是时候被调用,获取数据慢,被动zabbix-server需要打开很多随机端口
无论是模式还是被动模式,都是站在zabbix agent角度来说的工作模式,比如被动模式,是说zabix agent被动的接受zabbix server周期性发送过来的数据收集指令,在被动模式之下,zabbix server会根据主机关联的模板中的监控项和数据采集间隔时间,周期性的打开随机端口并向zabbix agent服务器的10050发起tcp连接,然后发送获取监控项数据的指令,即zabbix server发送什么指令那么zabbix agent就收集什么数据,zabbix server什么时候发送zabblx agent就什么时候采集,zabbix server不发送zabbix agent就一直不响应,所以zabbix agent也不用关心其监控项和数据采集周期问阳时问

被动模式的优点就是配置,安装后即可使用,因此也成为zabbix的默认工作模式,但是被动模式的最大问题就是会加大zabbix server的工作量,在数百甚至数千台服务器的环境下会导致zabbix server需要轮训向每个zabblx agent发送数据采集指令,如果zabbix server负载很高还会导致不能及时获取到最新数据,但由于无需其他复杂配置,被设置为了默认的工作方式。

3.3.1.1:被动模式端口状态:
# netstat -tanlp                      查看tcp连接

tcp6       0      0 172.31.7.31:41022       172.31.7.35:41329       TIME_WAIT   -                   
tcp6       0      0 172.31.7.31:41014       172.31.7.35:41329       TIME_WAIT   -                   
tcp6       0      0 172.31.7.31:40966       172.31.7.35:41329       TIME_WAIT   -                   
tcp6       0      0 172.31.7.31:60760       172.31.7.35:12345  

被动模式工作流程

image-20210517153659208

3.3.2:主动模式:
zabbix agent主动向zabbix server发起连接
主动模式是由zabbix agent主动向zabbix server的10051端口发起tcp连接请求,因此主动模式下必须在zabbix agent配置文件中指定zabbixserver的IP或者主机名(必须可以被解析为IP地址),在连接到zabbix server之前zabbix agent是不知道自己要采集那些数据以及间隔多久采集一次数据的,然后在连接到zabbix server以后获取到自己的监控项和数据采集间隔周期时间,然后再根据监控项采集数据并返回给zabbix
server,在主动模式下不再需要zabblx serve向7abbix agent发起连接请求,因此主动模式在一定程度上可减轻zabblx server打开的本地随机端口和进程数,在一定程度就减轻看zabbix server的压力。

主动模式工作流程
# grep -Ev '^#|^$' /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.31.7.31
ServerActive=172.31.7.31
Hostname=172.31.7.36
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/*.conf

image-20210518215132058

172.31.7.36   zabbix-web2-7-36
==============================
# apt-get update

上传db源包
D:\和彩云同步文件夹\Service optimization file\Zabbix\172.31.7.36-web2\zabbix-release_4.0-3+bionic_all.deb

安装zabbix-db包
# dpkg -i zabbix-release_4.0-3+bionic_all.deb

下载zabbix-agent服务
# apt  install -y zabbix-agent


# vim /etc/zabbix/zabbix_agentd.conf 
Server=172.31.7.31           
ServerActive=172.31.7.31                           #zabbix-agent会向这个地址发起连接
Hostname=172.31.7.36
Timeout=30                  #连接超时时间


启动服务
# systemctl restart zabbix-agent.service 

查看启动结果
# ss -ntl
LISTEN0       128                [::]:10050  
没有模板,使用官方模板进行监控

image-20210517163949469

修改其监控项

image-20210517164323819

image-20210517164812343

image-20210517165742072

再把修改好的监控项,添加到特定主机上去
添加特定主机     
注意:不能点全克隆,不然会把35主机的数据一起克隆给36主机

image-20210517170329165

image-20210517171254815

image-20210517171358791

自动发现主机设置时长

image-20210517174753929

监控项原型 
文件系统
网络

image-20210517223736809

6.zabbix proxy简介及安装 配置

image-20210518144754590

如果公司的服务器数量不是很多,可以采用zabbix server+主动模式,否则就使用zabbix server +主动模式+ proxy!

zabbix作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent的监控数据然后由zabbix proxy再把数据发送给zabbix server,也就是zabbix proxy 可以代替zabbix server收集监控数据,然后把数据汇报给zabbix server,所以zabbix proxy可以在一定程度上分担了zabbix server的数据收集压力,从而降低了数据的采集时间、也相应的增加了zabbix server的监控能力。
另外zabblkx proxy也区分主动模式和被动模式,通信方式与zabblx server主动模式和被动模式一样,区别足zabblx proxy由于没有zabblix agent的配置,所以zabblx proxy在主动模式下要向zabblx server周期性的向zablx server申请获取zabblix agent的监控项信息,但是zabblx proxy在被动模式下也是等待zabbix server的连接并接受zabbix server发送的监控项指令,然后再有zabbix proxy向zabbix agent发起请求获取数据。


4.2:zabbix proxy对比zbbbix server:
三=
功能           zabbxy proxy                  zabbix server
轻量级          是                            相对重量级
图形            无                            带图形控制界面
可以独立工作    是,可以独立采集数据并存储       是,即数据采集、存储、分析、展示于一体
易维护         是,配置完成后基本无需管理        维护也不难
独立数据库     保留少量最近数据                保留指定时间内的所有数据
报警通知       否,代理服务器不发送邮件通知     支持邮件、短信等告警机制


4.3: zabbix proxy部署与使用:
学zabbix proxy工作原理
安装主动模式与被动模式的zabbix proxy服务器配置
zabbix agent工作模式为主动模式与被动模式

4.3.1: zabbix proxy版本选择:
zabblx proxy的大版本必须要和zabbix server版本一致,否则会导致出现zabbix server与zabbix proxy不兼容问题,如下:


4.3.2: zabbix proxy安装:
zabbix的不同安装方式
 zabbix server 172.31.7.31
 zabbix proxy-active 主动模式: 172.31.7.32 #采用apt或者yum安装 
 zabbix proxy-passive 被动模式: 172.31.7.33 #采用编译安装
 
 zabbix agent 主动     172.31.7.36    使用: 172.31.7.32收集数据  
 zabbix agent 被动     172.31.7.35    使用: 172.31.7.33收集数据
 
 
 4.3.2.1: apt/yum安装zabbix proxy:
# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
# dpkg -i zabbix-release_4.0-3+bionic_all.deb
# apt-get update

#安装zabbix proxy
# yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath  php-mbstring mariadb
mariadb-devel java-1.8.0-openjdk-devel -y

# apt install libmysqld-dev libmysqlclient-dev libxml2-dev libxml2 snmp libsnmp-dev libevent-dev curl libcurl4-openssl-dev

# apt install zabbix-proxy-mysql




172.31.7.34-zabbix-proxy数据库
-----------------------------
创建zabbix proxy数据库
mysql> create database zabbix_proxy_active character  set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy_active.* to proxy@'172.31.7.%'  identified by '1';

mysql> create database zabbix_proxy_passive character  set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy_passive.* to proxy@'172.31.7.%'  identified by '1';



172.31.7.32-zabbix-proxy-acitve 主动模式
-----------------------------------------
D:\和彩云同步文件夹\Service optimization file\Zabbix\zabbix-server-7.31\zabbix-release_4.0-3+bionic_all.deb
# dpkg -i zabbix-release_4.0-3+bionic_all.deb
# apt-get update
# apt-get install zabbix-proxy-mysql  zabbix-agent  -y 
172.31.7.22-zabbix-proxy-passive   主动模式
-------------------------------------------
# vim  /etc/zabbix/zabbix_proxy.conf
ProxyMode=0                           # 0为主动,1为被动
Server=172.31.7.31                    # zabbix server服务器的地址或主机名
ServerPort=10051                      # zabbix server服务器的端口
Hostname=zhgedu-proxy-active      #代理服务器名称,需要与zabbix server添加代理时候的proxy name是一致的!
ListenPort=10051                      # zabbix proxy监听端口
DBHost=172.31.7.34                    #使用的数据库名称
DBName=zabbix_proxy_active            #连接致据库的用户名称
DBUser=proxy
DBPassword=1
ProxyLocalBuffer=720                   #数据至少在zabbix-proxy保存多少个小时
ProxyOfflineBuffer=720                 #zabbix-proxy连不上server了,保存的数据期限
HeartbeatFrequency=60                  #心跳间隔检测时间,默认68秒,范围G-36a8秒,被动模式不使用,检测server是否存活
ConfigFrequency=60                     #间隔多少秒从zabbix server获取监控项信息
DataSenderFrequency=60                 #在主动模式下每间隔多长时间向zabbix-server同步一次数据
StartPollers=7                         #启动多少个进程来采集数据
StartPollersUnreachable=5              #预启动多少个实例监控不可达主机
StartTrappers=5                        #触发器打开的个数
StartPingers=3                         #采集的交换机路由器的信息比较多的时候要开多点
JavaGateway=172.31.7.32                #使用java-gateway来获取tomcat的数据
JavaGatewayPort=10052
StartJavaPollers=5                     #启动多少的工作线程来采集数据
ListenIP=0.0.0.0                       #默认监听地址为0.0.0.0
HousekeepingFrequency=1                #每隔多长时间清理一次数据
CacheSize=16M                          #缓存大小
StartDBSyncers=4                       #启动多少个与数据库同步的进程
HistoryCacheSize=16M                   #历史缓存大小
Timeout=30
 
查看添加数据库结果
# mysql -uproxy -p1 -h172.31.7.34
MySQL [(none)]> show databases;
| zabbix_proxy_active 
| zabbix_proxy_passive


让zabbix在java-gateway上面获取数据
zabbix server ---> zabbix proxy-active ----> java gateway ---> tomccat
# apt-get  install zabbix-java-gateway

修改zabbix_java_gateway的配置文件
# vim /etc/zabbix/zabbix_java_gateway.conf 
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
START_POLLERS=10
TIMEOUT=30

启动java gateway服务
# systemctl restart zabbix-java-gateway.service 

查看监听端口信息
# ss -ntl
LISTEN 0       50                    *:10052   

检查配置文件
# grep "^[a-Z]" /etc/zabbix/zabbix_proxy.conf 
ProxyMode=0
Server=172.31.7.31
ServerPort=10051
Hostname=zhgedu-proxy-active 
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=172.31.7.34
DBName=zabbix_proxy_active
DBUser=proxy
DBPassword=1
ProxyLocalBuffer=720
ProxyOfflineBuffer=720
HeartbeatFrequency=60
ConfigFrequency=60
DataSenderFrequency=60
StartPollers=6
StartPollersUnreachable=3
StartTrappers=5
StartPingers=3
JavaGateway=172.31.7.32
JavaGatewayPort=10052
StartJavaPollers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
ListenIP=0.0.0.0
HousekeepingFrequency=1
CacheSize=8M
StartDBSyncers=4
HistoryCacheSize=16M
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000


导入数据库表          主动模式做代理
# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz  | mysql  -uproxy -p1  -h172.31.7.34 zabbix_proxy_active

启动zabbix-proxy服务
# systemctl restart zabbix-proxy.service 
# systemctl enable zabbix-proxy.service 

image-20210518171224350

172.31.7.33-proxy-passive
--------------------------
D:\和彩云同步文件夹\Service optimization file\Zabbix\zabbix-server-7.31\zabbix-release_4.0-3+bionic_all.deb
# dpkg -i zabbix-release_4.0-3+bionic_all.deb
# apt-get update
# apt-get install zabbix-proxy-mysql  zabbix-agent  -y 

修改配置文件
# vim  /etc/zabbix/zabbix_proxy.conf
ProxyMode=1
Server=172.31.7.31
Hostname=zhgedu-proxy-passive          #添加被动模式
ListenPort=10051
DBHost=172.31.7.34                     #添加数据库信息
DBName=zabbix_proxy_passive            #设置数据库名称
DBUser=proxy
DBPassword=1
ProxyLocalBuffer=720                   #数据至少在zabbix-proxy保存多少个小时
ProxyOfflineBuffer=720                 #zabbix-proxy连不上server了,保存的数据期限
# HeartbeatFrequency=60                #心跳间隔检测时间,默认68秒,范围G-36a8秒,被动模式不使用,检测是否存活
ConfigFrequency=60                     #间隔多少秒从zabbix server获取监控项信息
DataSenderFrequency=60                 #在主动模式下每间隔多长时间向zabbix-server同步一次数据 ,被动模式不生效
StartPollers=7                         #启动多少个线程来采集数据
StartPollersUnreachable=5             #预启动多少个实例监控不可达主机
StartTrappers=5                        #触发器打开的个数
StartPingers=3                         #采集的交换机路由器的信息比较多的时候要开多点
JavaGateway=172.31.7.32                #都咋32的机器上采集tomcat的数据
JavaGatewayPort=10052
StartJavaPollers=0
StartJavaPollers=5                     #启动多少的工作线程来采集数据
ListenIP=0.0.0.0                       #默认监听地址为0.0.0.0
HousekeepingFrequency=1                #每隔多长时间清理一次数据
CacheSize=16M                          #缓存大小
StartDBSyncers=4                       #启动多少个与数据库同步的进程
HistoryCacheSize=16M                   #历史缓存大小
Timeout=30                             #监控项超时时间,单位为秒


查看是否关联数据库
# mysql -uproxy -p1 -h172.31.7.34
MySQL [(none)]> show databases;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| zabbix_proxy_active |
| zabbix_proxy_pasive |
+---------------------+
3 rows in set (0.00 sec)


删除多余的数据库
mysql> drop database  zabbix_proxy_pasive;

导入数据库表          被动模式做代理
# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz  | mysql  -uproxy -p1  -h172.31.7.34 zabbix_proxy_passive


启动zabbix-proxy服务
systemctl restart zabbix-proxy.service 
systemctl enable zabbix-proxy.service 

image-20210518202141251

7.zabbix proxy主动及被动案例

设置主动模式监控

image-20210518210040904

设置被动模式监控

image-20210518210716810

172.31.7.35-web1
----------------- 
修改配置文件,增加允许zabbix-proxy-passive-172.31.7.33收集数据
# vim /etc/zabbix/zabbix_agentd.conf 
Server=172.31.7.31,172.31.7.33

启动配置文件
# systemctl restart zabbix-agent.service 

172.31.7.36-web2 
----------------
修改配置文件,增加允许zabbix-proxy-active-172.31.7.32收集数据
# vim /etc/zabbix/zabbix_agentd.conf 
Server=172.31.7.31,172.31.7.32
ServerActive=172.31.7.32

启动配置文件
# systemctl restart zabbix-agent.service

测试联通性
172.31.7.31-zabbix-server
# history | grep get
# /apps/zabbix_server/bin/zabbix_get  -s 172.31.7.36 -p 10050 -k "agent.ping"
1                               #1表示联通没问题

设置账号权限
创建用户组

image-20210518221055074

添加用户

image-20210518221720657

给用户授权

image-20210518223312170

登录zhangxiaoming 账号

image-20210518222419854

image-20210518223521031

允许设置账号执行命令
172.31.7.33-zabbix-proxy-passive
--------------------------------
# vim 
EnableRemoteCommands=1                 #1为允许

重启服务
# systemctl restart zabbix-proxy.service 

测试执行ping命令

image-20210518224034816

标签:59,zabbix,agent,server,Zabbix,proxy,mysql,172.31
From: https://www.cnblogs.com/zikang/p/18060645

相关文章

  • QQ 测试 AI 聊天搭子,再战 AI 社交;零一万物宣布开源 Yi-9B 模型丨 RTE 开发者日报 Vol.
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点......
  • 代码随想录算法训练营第二天| 977.有序数组的平方、 209.长度最小的子数组、 59.螺旋
    977.有序数组的平方https://leetcode.cn/problems/squares-of-a-sorted-array/description/publicstaticint[]sortedSquares(int[]nums){intleft=0;intright=nums.length-1;int[]result=newint[nums.length];intwrite=......
  • 基于CH592x的硬件I2C驱动(AHT20)调试记录
    前言:AHT20是一个I2C器件,恰好CH592芯片资源有硬件I2C我们可以尝试使用592的硬件I2C去驱动AHT20。资料:I2C接口使用指南(可见EVT中I2C例程文件下),AHT20数据手册(可以在立创商城直接下载)数据手册中对这个器件的驱动流程也有说明,分别对几个步骤进行解读: 1、根据手册提示开机后,要等待......
  • Ubuntu安装zabbix配置教程
    Ubuntu镜像下载:https://mirrors.aliyun.com/ubuntu-releases/20.04.6/ubuntu-20.04.6-live-server-amd64.isoUbuntu在vm虚拟机安装(如下未提及项均保持默认选项)1、配置软件源为阿里云,http://mirrors.aliyun.com/ubuntu 2、配置服务器名称和用户名密码 3、安装ssh服务,......
  • Vue3.0里为什么要用 Proxy API 替代 defineProperty API ?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一、Object.defineProperty定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象为什么能实现响应式通过defineProperty 两个属性,get及setget属性......
  • ABC259Ex 题解
    Solution首先考虑暴力:枚举同种颜色的格子,假设两点为\((i,j),(x,y)\),那么从\((i,j)\)到\((x,y)\)的方案数即为\(C_{x-i+y-j}^{x-i}\)。考虑当前颜色有\(B\)个,枚举的时间复杂度为\(O(B^2)\)。考虑枚举每一种颜色,算出这种颜色到其他格子方案数,有递推方程:\(f_{i,j}=f_......
  • Proxy 的 性 能 可 能 比 defineProperty 更 差
    老有人跑来跟我说Proxy和defineProperty相比,是性能的巨大提升。我一听,这不对劲啊,跟我学的知识不太一样,我明明记得Proxy性能比defineProperty更差。所以我就写了几个简单的例子来验证一下。这个例子的逻辑非常简单,我们在大数据量循环的过程中,分别用 Object.definePropert......
  • 559. N 叉树的最大深度c
    /***DefinitionforaNode.*structNode{*intval;*intnumChildren;*structNode**children;*};*/intmaxDepth(structNode*root){if(!root)return0;if(root->numChildren==0)return1;intmax=1;for(int......
  • 变量$host、$http_host、$proxy_host区别
    //如果想让Host是crmtest.aty.sohuno.com,则进行如下设置:proxy_set_headerHostcrmtest.aty.sohuno.com;//如果不想改变请求头“Host”的值,可以这样来设置:proxy_set_headerHost$http_host;//但是,如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头......
  • Kubelet安装时子节点出现:kube-proxy-7jxg4 ContainerCreating
    一般分为两种情况主节点问题和kube-proxy问题:1、查看报错:kubectldescribepodkube-proxy-7jxg4-nkube-system2、子节点查看相关报错信息journalctl-ukubelet-f可以看出是创建容器失败:1、可能是docker镜像没有导入2、网络问题,重启看一下cri-docker是否有报错信息......