Zabbix

发布时间 2023-08-16 22:37:45作者: 李八一

环境搭建

Zabbix简介

	在企业网络运维过程中,运维工程师必须随时关注各服务器和网络的运行状况,以便及时发现问题,尽可能减少故障的发生。当网络中的设备,服务器等数量较多时,为了更加方便,快捷的获得监控信息,通常会借助于一些集中监测软件。就目前而言,有服务器的地方就少不了监控系统,所以行业内就有一句俗话叫"无监控,不运维"∵
	Zabbix是一个基于web界面的企业级开源监控软件由C语言编写,提供分布式系统监控与网络监控功能,具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表,图表的绘制等功能。检测的对象可以是linux或windows服务器,也可以是路由器,交换机等网络设备,通过SNMP(简单网络管理协议),zabbix agent,ping,端口监视等方法提供对远程网络服务器等监控数据收集等功能,并提供通知机制使系统管理员可以快速定位,解决系统中存在的各种问题,官方网址是http://www.zabbix.com
	
	Zabbix通过C/S模式采集数据,通过B/S模式在 web端展示和配置
	Server端:通过收集SNMP 和 agent发送的数据,写入 MySQL 数据库,再通过php+nginx在 web 前端展示
	被监控端:主机安装agent方式采集数据,网络设备通过SNMP方式采集数据

zabbix监控原理


image-20230104091758646

zabbix架构图

image-20230104083651315

组件说明:
zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行
database storage:专用于存储所有配置信息,以及由zabbix收集的数据
web interface: zabbix的图形接口
proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力
agent:部署在被监控的主机上,负责收集主机本地数据如 cpu、内存、数据库等数据发往server端或proxy端


<<< 记
监控流程:
	agentd 需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbixserver端, zabbix server将数据存储到数据库中, zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式:
	主动模式: agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxye
	被动模式: server向agent请求获取监控项的数据, agent返回数据。
	zabbix运行条件:
		Server:
			Zabbix Server 需要运行在LAMP环境下,对硬件要求低
		Agent:
			目前已有的agent基本支持市面常见的OS,包含Linux、HP (Unix>、Oracle (Solaris)windows
等
		SNMP:
			支持各类常见的网络设备;
>>>

zabbix的监控架构
	在实际监控架构中, zabbix根据网络环境、监控规模等分了三种架构: server-client 、master-node-client、server-proxy-client三种。
1、server-client架构
	也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理,直接由zabbixserver和zabbix agentd 之间进行数据交互。适用于网络比较简单,设备比较少的监控环境(500台以内)
2、server-proxy-client架构	
	其中 proxy 是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd 发来的数据暂时存放,而后再提交给server 。一般适用于跨机房、跨网络的中型网络架构的监控(上千台)。
3、master-node-client 架构
	该架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步(上万台)。
	
	优点
	开源,不花钱
	设备性能要低
	支持设备多
	支持分布式集中管理
	开放式接口,扩展性强
	缺点
	无厂家支持,出现问题解决比较麻烦
	需在被监控主机上安装agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。

zabbix_get_gateway
	zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。


架构图最简单的一种server-client架构(500台以内)

​ agent

Server agent

​ agent

注释:就是一个Server管理多个agent端

第二种server-proxy-client架构 (上千台)

​ agent

​ proxy agent

Server

​ proxy agent

​ agent

​ 注释:就是Server管理proxy端,proxy代理再去管理agent

第三种master-node-client(上万台)

image-20230104095023132

Grafana简介:
	Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和 OpenTSDB.作为数据源。以 InfluxDB(由go语言编写,是一个开源,分布式,时间序列,事件,可度量和无外部依赖的数据库)作为底层数据库;
	Grafana,主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。

zabbix功能
	数据采集
		可用性和性能检查
		支持SNMP 
		(trapping或polling),IPMI,JMX,..Mware.的监控
		自定义检测。
		按照自定义时间间隔收集所需数据
		通过server / proxy和 agent 来执行监控。
	灵活阙值定义
		可以定义灵活的问题阈值,称为触发器(triggers),从后端数据库调用数值
	高度可配置的告警
		可以自定义警告升级(escalation),接受者及告警方式。
		告警信息可以配置并允许使用宏(macro)变量
		通过远程命令实行自动化动作(action)
	实时绘图
		通过内置的绘图方法实现监控数据实时绘图,
	Web监控能力
		Zabbix可以模拟鼠标单击网站并检查其功能性和响应时间。
	广泛的可视化选项。
		能够创建自定义图表,可以组合多个项到一个单一的视图中网络拓扑。
		自定义屏幕和侧边栏作为仪表盘( dashboard)样式显示报告,
		监视资源的高级视图(商业)。
	历史存储
		用数据库来存储数据
		配置历史,
		内置的管理程序
	容易配置
		添加监控设备作为主机。
		一旦在数据库中,主机即可被监控
		将模版应用到监控监控设备。
	使用模板
		模版中的可以组监控
		模版中可以继承其他模版
	网络发现
		网络设备的自动发现。
		代理(agent)自动注册
		自动发现文件系统,网络接口,SNMP OID 。
	快速的web接口
		Web前端采用php编写
		按照自定义的方式单击审计日志
	Zabbix API
		Zabbix API 提供可编程接口面向 Zabbix.大规模操作,方便第三方软件集成,
		安全的用户认证,
	权限系统
		某些用户可以受限于某些试图
	功能齐全且易于扩展的代理(agent) 
		部署在监控目标上,
		Linux和 windows上都可以部署
		用C语言写的,高性能且内存占用小。 
	二进制守护进程
		可移植
	通过使用zabbix proxy可以轻松进行远程监控。


主机:被监控的服务器的信息
主机组: 多个同种类型的主机集合

环境准备

cs-7 server
cs-7 agent
win10 agent

安装nginx

yum -y install pcre-devel zlib-devel openssl-devel elinks geoip-devel elinks   
#安装nginx相关依赖

#“pcre-devel 是使用PCRE做二次开发时所需要的开发库,包括头文件等,这也是编译Nginx所必须使用的
#zlib-devel库
#用于编译的时候连接的库之类的文件
#文本浏览器;
#是一套含IP数据库的软件工具


useradd  -M -s /sbin/nologin nginx  
#创建nginx启动用户但不创建家目录并把shell环境改为sbin/nologin

tar xf nginx-1.23.1.tar.gz  
#解压nginx软件包

mkdir /opt/nginx   
#创建nginx安装目录

chown -R nginx.nginx /opt/nginx    
#递归修改/opt/nginx的属主属组为nginx

cd nginx-1.23.1    
#进入解压好nginx软件包中

./configure \
--prefix=/opt/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module

make && make install  
#编译二进制安装nginx

ls /opt/nginx/
#查看nginx是否安装成功

#创建nginx软链接显示创建过程,并把创建好的链接,链接到usr/local/bin/下

ln -sv /opt/nginx/sbin/nginx /usr/local/bin/    

ll  /usr/local/bin/nginx
#确认源文件链接到目标目录
nginx -t
#检测nginx配置文件是否有问题
nginx
#启动nginx
ps aux|grep nginx     
#检测nginx服务是否启动成功

安装mysql 8(zabbix5.0 可基于mysql5.7,zabbix6.0基于mysql8)

cd   
#返回root家目录

yum -y install libaio  
#安装mysql 8相关依赖

#curl -sO https://repo.mysql.com//mysql80-community-release-el7-5.noarch.rpm


rpm -ivh mysql80-community-release-el7-5.noarch.rpm    
#安装mysql软件包并显示进度和详细过程
yum clean all     
#清除yum缓存
yum makecache   
#建立yum缓存
#yum install -y mysql-community-server mysql-community-devel 
#安装mysql8版本,用yum网络安装

yum localinstall -y *.rpm     
#安装mysql8版本

vim /etc/my.cnf     
#编辑mysql主配文件d

[mysqld]
skip_ssl
#开启HTTPS后会出现内存不足,那是因为,在开启HTTPS访问时会在Apache中新开了一个开放了443端口的虛拟机。为了性能,通常我们会禁用SSL
datadir=/var/lib/mysql        
#mysql数据存放位置
socket=/var/lib/mysql/mysql.sock  
#mysql.sock套接字文件存放位置
log-error=/var/log/mysqld.log    
#mysql错误日志文件存放位置
pid-file=/var/run/mysqld/mysqld.pid  
#mysqldip

systemctl start mysqld  
#启动mysqld

 ps aux|grep mysqld     
 #查看mysqld进程
 


mysql -uroot -p$(cat /var/log/mysqld.log  | grep password | awk -F"root@localhost: " '{print $2}')
 #查看mysqld日志文件过滤mysqld密码并将其文件中第二行内容打印出来(直接登录mysqld中)


ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Admin.123';
#登录mysqld后更改数据库密码,密码为Admin.123


create database zabbix character set utf8mb4 collate utf8mb4_bin;
#创建名为zabbix的数据库,库的编码格式为utf8


create user 'zabbix'@'%' identified by 'Zabbix.123';
#创建名为zabbix的mysql用户并允许所有主机进行访问,用户名密码为Zabbix.123


grant all privileges on zabbix.* to 'zabbix'@'%';
#给zabbix用户授对zabbix数据库中的所有表有所有权限

\q  
#退出mysqld


安装php

yum -y install gcc-c++ libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel gd sqlite sqlite-devel net-snmp-devel oniguruma oniguruma-devel perl perl-devel httpd-devel libevent-devel fping
#安装PHP相关依赖
yum -y remove libzip      
#删除系统自带的libzip软件包

tar xf libzip-1.2.0.tar.gz 
#解压libzip软件包,一个c仓库

cd libzip-1.2.0   
#进入到解压好的libzip软件包中

./configure 
#检测环境是否有问题

make && make install    
#编译二进制并安装

vim /etc/profile  
#编辑编辑profile配置文件 (在配置文件的末行插入)
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"  
#将mysql相关命令追加到全局变量中使系统能够识别

. /etc/profile  
#重读全局变量

source /etc/profile 
#重读配置文件

useradd -r -s /bin/nologin www  
#创建启动php www用户和用户家目录,并将shell环境改为 /bin/nologin

id www   
#查看确认

提示:cd返回家目录

tar xf php-7.4.30.tar.xz  
#解压php软件包

cd php-7.4.30   
#进入到解压好的php软件包中

#编译
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--enable-fpm \
--with-bz2 \
--enable-gd \
--with-mysqli=mysqlnd \
--enable-mysqlnd \
--with-jpeg \
--with-freetype \
--with-zlib-dir \
--with-iconv-dir=/usr/local/ \
--enable-soap \
--enable-ftp \
--enable-mbstring \
--enable-exif \
--with-curl \
--enable-bcmath \
--enable-sockets \
--enable-calendar \
--with-gettext \
--with-pdo-mysql=mysqlnd \
--disable-fileinfo \
--with-ldap \
--with-openssl \
--with-pear \
--with-xmlrpc \
--with-libdir=lib64 \
--with-pcre-jit \
--with-pear \
--with-xsl \
--with-zlib \
--with-mhash \
--enable-inline-optimization \
--enable-mbregex \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--with-zip

make  
#将文件编译成二进制
make install   
#安装

cp /opt/zabbix/php-7.4.30 /php.ini-production /usr/local/php/lib/php.ini 

cp /root/php-7.4.30/php.ini-production /usr/local/php/lib/php.ini 
#将php配置文件拷贝到 /usr/local/php/lib/并取名为php.ini

vim /usr/local/php/lib/php.ini   
#编辑php主配文件
max_execution_time = 300      
max_input_time = 300
memory_limit = 128M
post_max_size = 32M
upload_max_filesize = 2M
max_file_uploads = 20
extension=bcmath.so   
#950
date.timezone = Asia/Shanghai  
#定义mysql时区(962)
mysqli.default_port = 3306
#mysql默认端口
mysqli.default_socket = /tmp/mysql.sock
#mysql套接字文件(1165)

cp /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf #将php-fpm.conf.default改为php-fpm.conf 


vim /usr/local/php/etc/php-fpm.conf 
#编辑php进程主配置文件
pid = run/php-fpm.pid  
#将其注释打开
#将www.conf.default改为www.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default  /usr/local/php/etc/php-fpm.d/www.conf
vim /usr/local/php/etc/php-fpm.d/www.conf    
#编辑www.conf(用户)配置文件
user = www 
#启动服务的用户
group = www  
#启动服务的组
listen = 0.0.0.0:9000  
#允许所有主机访问php的9000端口

ln -sv /usr/local/php/bin/* /usr/local/bin/  
#创建软链接将php所有命令链接到 /usr/local/bin/下并显示创建过程

ln -sv /usr/local/php/sbin/* /usr/local/sbin/
#创建软链接,并显示创建过程
php-fpm -c /usr/local/php/lib/php.ini -y /usr/local/php/etc/php-fpm.conf   
#启动php
php -fpm 
#启动php,2种都可
ps aux|grep php   
#查看php进程
netstat -anpt|grep 9000 
#过滤9000 端口是否开启

整合nginx和php

vim /opt/nginx/conf/nginx.conf 
#编辑nginx主配置文件

    location / {
        root   html;
        index  index.php index.html index.htm;    #添加index.php页面
    }

       location ~ \.php$ {    
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /opt/nginx/html$fastcgi_script_name;  #将其他注释打开只改这行
            include        fastcgi_params;
       }



killall nginx  
#杀死nginx
nginx -t
#查看nginx配置文件是否有问题
nginx 
#启动nginx
ps aux|grep nginx  
#查看nginx进程



#安装zabbix
注:cd 返回root家目录
tar xf zabbix-6.0.7.tar.gz     
#解压zabbix软件包
cd zabbix-6.0.7/
#进入到解压要zabbix软件包中

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
#编译
make   
#编译二进制文件
make install   
#安装azbbix



#将zabbix所需的数据导入到数据库中


mysql -uzabbix -pZabbix.123 zabbix < /root/zabbix-6.0.7/database/mysql/schema.sql 

mysql -uzabbix -pZabbix.123 zabbix < /root/zabbix-6.0.7/database/mysql/images.sql

mysql -uzabbix -pZabbix.123 zabbix < /root/zabbix-6.0.7/database/mysql/data.sql 



useradd -M -s /sbin/nologin zabbix    
#创建zabbix启动用户但不创建家目录,并将shell环境改为sbin/nologin

chown -R zabbix.zabbix /usr/local/zabbix/   
#递归修改zabbix的属主属组

id zabbix  
#查看zabbix的属主属组

mkdir /usr/local/zabbix/logs   
#创建zabbix日志目录

chown -R zabbix.zabbix /usr/local/zabbix/logs/  
#再次递归修改zabbix的属主属组



cp -p /usr/local/zabbix/etc/zabbix_server.conf{,.bak}  
#备份zabbix主配置文件,并保持文件原权限

cp -p /usr/local/zabbix/etc/zabbix_agentd.conf{,.bak}  
#备份zabbix被监控端主配置文件,并保持文件原权限



vim /usr/local/zabbix/etc/zabbix_server.conf    
#编辑zabbix主配置文件

LogFile=/usr/local/zabbix/logs/zabbix_server.log    
#zabbix日志文件存放位置

PidFile=/tmp/zabbix_server.pid
#zabbixpid存放位置

DBHost=192.168.1.7   
#指定连接数据库的主机ip

DBName=zabbix   
#数据库名称

DBUser=zabbix  
#连接数据库用户

DBPassword=Zabbix.123  
#连接数据用户密码

DBSocket=/var/lib/mysql/mysql.sock     #存放数据库套接字文件位置

Timeout=4

LogSlowQueries=3000

Include=/usr/local/etc/zabbix_server.conf.d/*.conf



vim /usr/local/zabbix/etc/zabbix_agentd.conf   
#编辑zabbix被监控端主配置文件

LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
#被监控端 zabbix日志文件存放位置

Server=192.168.1.7  
#指定被监控端的ip

ServerActive=192.168.1.7  
#指定serveractive ip

Hostname=localhost   
#指定主机名

Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf



mkdir /usr/local/etc/zabbix_server.conf.d   
#创建zabbix主配置目录

mkdir /usr/local/etc/zabbix_agentd.conf.d  
#创建被监控端zabbix主配置目录

cp -ar /root/zabbix-6.0.7/ui /opt/nginx/html/  
#将zabbix页面拷贝到/opt/nginx/html/ 下

chown -R nginx.nginx /opt/nginx/html/ui    
#递归修改nginx的属主属组



/usr/local/zabbix/sbin/zabbix_server     
#启动zabbix服务

/usr/local/zabbix/sbin/zabbix_agentd   
#启动zabbix被监控端

ps aux|grep zabbix    
#查看zabbix进程

浏览器访问:http://192.168.1.128/ui/

mv zabbix.conf.php /opt/nginx/html/ui/conf/zabbix.conf.php   
#将下载的zabbix.conf.php文件移动到/opt/nginx/html/ui/conf/下

chown -R nginx.nginx /opt/nginx/html/ui 
#递归修改ui目录的属主属组改为nginx

zabbix监控网络服务

zabbix监控windows

image-20221018172557160

image-20221018172619690

image-20221018173057827

image-20221018173200893

image-20221018173316368

image-20221018173416313

image-20221018173448907

image-20221018173728313

zabbix服务端配置

再服务端启动nginx php zabbix后访问:http://192.168.1.128/ui/

image-20221018174056342

image-20221018174240438

image-20221018174306930

image-20221018174401125

image-20221018174457866

image-20221018174522455

image-20221018174648252

image-20221018174709354

image-20221018174757248

image-20221018174818049

image-20221018175136670

image-20221018175310698

image-20221018175331651

image-20221018175512201

image-20221018175604801

image-20221018175831879

image-20221018175910536

image-20221018180325352

Zabbix监控网络设备

安装GNS

image-20221018180834919

image-20221018180853443

image-20221018180913455

image-20221018180939573

image-20221018181009336

image-20221018181053669

image-20221018181243120

image-20221018181329654

image-20221018181229197

image-20221018181402744

image-20221018181431016

image-20221018181513080

image-20221018181625512

image-20221018181736259

image-20221018182720211

image-20221018182759839

image-20221018182823942

image-20221018182913619

image-20221018182930924

image-20221018183044703

image-20221018183114249

image-20221018183212831

image-20221018183255005

image-20221018183311146

image-20221018183354271

image-20221018183549275

image-20221018183615573

image-20221018183641854

image-20221018183712427

image-20221018183748305

image-20221018183827958

image-20221018184023067

image-20221018184041975

image-20221018184110700

image-20221018184326959

选择ok和Apply都可以

image-20221018184448211

image-20221018184520135

image-20221018184531220

image-20221018184610790

image-20221018184646707

image-20221018185009548

image-20221018185201470

image-20221018185224653

在这个输入
conf t
int f0/0i
ip add 192.168.1.111 255.255.255.0
no sh
#开启网络设备
exit 
no ip routing
snmp-server community centos RO
snmp-server enable traps
snmp-server host 192.168.1.128 centos

image-20221018185802752

在zabbix添加设备

image-20221018190500300

image-20221018190532151

image-20221018190610220

image-20221018190729761

image-20221018190840679

image-20221018190909160

image-20221018190949475

image-20221018191106292

image-20221018191235861

直接选择刚才创建的network组就行

image-20221018191334986

image-20221018191520811

image-20221018191917130

image-20221018191955813

image-20221018192025429

image-20221018192101661

image-20221018192144227

在点一下更新

image-20221018192246117

image-20221018192324196

image-20221018192401264

image-20221018192503909

image-20221018192603966

image-20221018192637383

image-20221018192714723

等待5秒后刷新为绿色

查看图形

image-20221018193302864

image-20221018193035311

zabbix监控linux主机

[root@li ~]# scp zabbix-6.0.7.tar.gz root@192.168.1.129:/root/

192.168.1.128 监控端
192.168.1.129 被监控端

#在被监控端执行
yum -y install libxml2-devel libcurl-devel pcre-devel ntpdate 
#安装zabbix相关依赖
tar xf zabbix-6.0.7.tar.gz   
#解压zabbix软件包
cd zabbix-6.0.7/ 
#进入到解压好的软件包中
#编译
./configure --prefix=/usr/local/zabbix --enable-agent --with-net-snmp --with-libcurl --with-libxml2  
make   
#编译二进制
make install  
#安装zabbix
cp /root/zabbix-6.0.7/misc/init.d/tru64/zabbix_agentd /etc/init.d/    //复制启动脚本
vim /etc/init.d/zabbix_agentd    
#编译被监控端主配置文件
DAEMON=/usr/local/zabbix/sbin/zabbix_agentd  
//更改为安装路径
chmod +x /etc/init.d/zabbix_agentd   
//添加执行权限
useradd -M -s /sbin/nologin zabbix      
//创建程序用户
chown -R zabbix:zabbix /usr/local/zabbix/	
//授权安装目录
mkdir /usr/local/zabbix/logs  
#创建被监控端日志目录
chown -R zabbix:zabbix /usr/local/zabbix/logs  
#递归修改logs目录的属主,属组;改为zabbix
cp /usr/local/zabbix/etc/zabbix_agentd.conf{,.bak}  
#备份被监控端主配置文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf   
#编辑被监控端的主配置文件
PidFile=/tmp/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=192.168.1.7
ServerActive=192.168.1.7
Hostname=localhost
Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
mkdir /usr/local/etc/zabbix_agentd.conf.d
/etc/init.d/zabbix_agentd start		
#启动agent客户端
netstat -anptl|grep 10050    
#过滤其端口

image-20221018203852372

image-20221019083924559

image-20221019084144755

image-20221019084432022

image-20221019084500015

image-20221019084636994

image-20221019084855642

image-20221019085223239

image-20221019090111832

image-20221019090140024

zabbix邮件报警

Zabbix自定义监控项

自定义监控项过程:
创建项目、触发器、图形,验证监控效果;

自定义简介
	以上关联的 Linux by Zabbix agent模板基本涵盖了所有系统层面的监控,包括了我们最关注的几项: ping、load、cpu使用率、memory、disk、网卡流量等等,当然有些触发器的阀值可能需要根据服务器的自身情况进行修改。

下面添加自定义服务器内存使用检测项,在此配置一个监控项为:内存使用70M进行警告提醒:
1.修改客户端zabbix_agentd.conf 配置文件,最后一行添加:UserParameter=memory_userd,free -mlgrep Memlawk '{print $3}'
介绍:
语法:UserParameter=key,shell command
监控key值: memory_userd, key值可以随意编写,但是一会需要在 web页面创建监控项时指定key值;
Shell命令或脚本: free -m|grep Mem|awk '{print $3}'
注:在zabbix_server端可以使用zabbix_get -s agent端ip地址 -p 10050 -k key 名通过此命令可以查看agent端key的监控值;


zabbix监控linux主机

被监控端执行
rz zabbix-6.0.7.tar.gz
yum -y install libxml2-devel libcurl-devel pcre-devel ntpdate
tar xf zabbix-6.0.7.tar.gz
cd zabbix-6.0.7
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make
#编译
make install
#安装
cp /root/zabbix-6.0.7/misc/init.d/tru64/zabbix_agentd /etc/init.d/
#复制启动脚本
vim /etc/init.d/zabbix_agentd
DAEMON=/usr/local/zabbix/sbin/zabbix_agentd
#更改为安装路径
chmod +x /etc/init.d/zabbix_agentd
#添加执行权限
useradd -M -s /sbin/nologin zabbix
#创建程序用户
chown -R zabbix:zabbix /usr/local/zabbix/
#授权安装目录
mkdir /usr/local/zabbix/logs
chown -R zabbix:zabbix /usr/local/zabbix/logs
cp /usr/local/zabbix/etc/zabbix_agentd.conf{,.bak}
vim /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=192.168.1.128
#zabbix服务端ip
ServerActive=192.168.1.128
#zabbix服务端ip
Hostname=localhost
#本机的主机名
Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
mkdir /usr/local/etc/zabbix_agentd.conf.d
/etc/init.d/zabbix_agentd start
/启动 agent客户端
netstat -anotl|grep 10050

image-20221019120551262

image-20221019120619749

image-20221019121058459

image-20221019121139959

image-20221019120915567

image-20221019120942518

#agent端配置
vim /usr/local/zabbix/etc/zabbix_agentd.conf
UserParameter=memory_userd,free -m|grep Mem|awk '{print $3}'
/etc/init.d/zabbix_agentd restart
[root@localhost ~]# /etc/init.d/zabbix_agentd stop
[root@localhost ~]# /etc/init.d/zabbix_agentd start
restart
#Server端测试获取信息
/usr/local/zabbix/bin/zabbix_get -s 192.168.1.129 -k memory_userd

image-20221019133255438

image-20221019134419066

image-20221019135030350

image-20221019135058875

image-20221019141431837

image-20221019141643272

image-20221019141743591

image-20221019141953590

image-20221019142043690

image-20221019142219930

image-20221019142310568

image-20221019142457226

image-20221019142528462

image-20221019142605764

image-20221019142648835

image-20221019142817797

image-20221019142836535

image-20221019142933953

image-20221019143113638

image-20221019144410700

image-20221019144440432

image-20221019144606524

image-20221019144659186

image-20221019144807782

zabbix邮件报警

image-20221019150152297

image-20221019150239241

邮件报警方式

利用邮件smtp协议进行邮件报警

image-20221019150705536

image-20221019150748834

image-20221019151257679

image-20221019151358192

image-20221019151429487

image-20221019151509316

image-20221019151553097

image-20221019151618568

image-20221019151628642

image-20221019151715989

image-20221019151805149

image-20221019151922308

image-20221019152010059

image-20221019152126977

image-20221019152203554

image-20221019152243238

image-20221019152316374

image-20221019152348213

image-20221019152409202

image-20221019152449687

image-20221019152518090

image-20221019152625974

image-20221019152649565

image-20221019152821188

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障已恢复!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

image-20221019153102458i20221019153102458

image-20221019153144047

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障已恢复!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

image-20221019153457215

image-20221019153540117

停止zabbix server服务的agent查看邮箱效果(等待10分钟)
[root@localhost ~]# /etc/init.d/zabbix_agentd stop

kill `ps auxgrep zabbix_agent[awk '{print $2}'`

image-20221019154110342

/etc/init.d/zabbix_agentd start

image-20221019160255985

利用脚本进行邮件报警

#在服务端执行
yum -y install mailx dos2unix
[root@li ~]# vim /etc/mail.rc 
set from=ljh200503102022@163.com smtp=smtp.163.com
set smtp-auth-user=ljh200503102022@163.com smtp-auth-password=GCTRELGEYWOTBHRZ
set smtp-auth=login
#添加到文件末尾
[root@li ~]# echo "aaaa"|mail -s "test mail" ljh200503102022@163.com
#测试
[root@li ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
AlertscriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
#在最后一行添加,这个是邮件报警脚本目录路径

vim /usr/local/zabbix/share/zabbix/alertscripts/mail.sh
#编写报警邮件脚本,调整mail命令语法位置,使用dos2unix命令转换字符,避免收到邮件不显示正常邮件内容而出现ATTO0001.bin的错误;
#邮件报警脚本
#!/bin/bash
#export.UTF-8
bt=$2
#定义发送标题
sjr=$1
#定义收件人
FILE=/tmp/mailtmp.txt
#定义文件路径
echo "$3" >$FILE
/usr/bin/dos2unix -k $FILE
#使用dos2unix命令转换字符,避免收到邮件不显示正常邮件内容出现ATT001.bin的错误
/bin/mail -s "$bt" "$sjr" <$FILE
#执行发送邮件



chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/mail.sh
chmod 777 /usr/local/zabbix/share/zabbix/alertscripts/mail.sh
touch /tmp/mailtmp.txt
chmod 777 /tmp/mailtmp.txt
chown zabbix.zabbix /tmp/mailtmp.txt
/usr/local/zabbix/share/zabbix/alertscripts/mail.sh ljh200503102022@163.com "test mail2" "test mail zabbix"
#测试脚本是否成功

配置zabbix监控邮件报警
操作思路
操作思路
监控--创建报警媒介类型--更新用户使用的报警媒介类型--创建动作(根据触发器触发)--验证;

image-20221019165158295

image-20221019165219915

输入创建的报警媒介类型的名称,指定类型为脚本的方式,并且输入zabbix_server端/usr/local/zabbix/share/zabbix/alertscripts目录下的脚本名称,确保脚本的归属是zabbix,并且脚本的权限是777,下边设置脚本参数,也就是发送邮件的语法:脚本收件人标题内容,必须严格按照此标准填写;
三个脚本参数如下
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

image-20221019165751776

image-20221019165917366

image-20221019165931519

image-20221019170045453

image-20221019170127625

image-20221019170500510

image-20221019170529179

image-20221019170718172

image-20221019170735863

image-20221019170752959

image-20221019170841971

image-20221019170858363

image-20221019171003724

image-20221019171050745image-20221019171120324

image-20221019171238733

image-20221019171401239

image-20221019171434762

image-20221019171536344

image-20221019171747266

image-20221019171816448

image-20221019172009132

image-20221019172124859

停止zabbix server服务的agent查看邮件效果(等待10分钟)
[root@localhost ~]# /etc/init.d/zabbix_agentd stop

zabbix钉钉报警

基于钉钉机器人实现钉钉报警

配置钉钉机器人文档说明:https://open.dingtalk.com/document/robots/custom-robot-access

image-20221019184647983

image-20221019185515485

image-20221019185702483

image-20221019192130209

image-20221019192150052

image-20221019192306306

image-20221019192357069

image-20221019192520416

image-20221019192537818

image-20221019192659866

image-20221019192838313

https://oapi.dingtalk.com/robot/send?access_token=09431b2cffffeb9a735955f53f790fd2697ba6c6dc2fd23d10598c13c38ffc14
#脚本格式及先后顺序必须这样写负责会报错,这个脚本写到服务端
cat /usr/local/zabbix/share/zabbix/alertscripts/dingding.sh
vim /usr/local/zabbix/share/zabbix/alertscripts/dingding.sh

#!/bin/bash
to="$1"
subject="$2"
text="$3"
/usr/bin/curl 'https://oapi.dingtalk.com/robot/send?access_token=09431b2cffffeb9a735955f53f790fd2697ba6c6dc2fd23d10598c13c38ffc14' \
 -H 'Content-Type: application/json' \
 -d '
{
    "msgtype":"text",
    "text": {
        "content":"'"$text"'"
    },
    "at": {
        "atMobiles":[
            "15128878379"
        ],
        "isAtAll": true
    }
}'

chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/dingding.sh 
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/dingding.sh

image-20221019194142463

image-20221019194225407

脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

image-20221019194510175

image-20221019195021301

image-20221019195040718

image-20221019195121990

image-20221019195147242

image-20221019195319288

image-20221019195338919

image-20221019195435291

image-20221019195509149

image-20221019195623080

image-20221019195648884

image-20221019195741549

image-20221019195812144

image-20221019195839990

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障已恢复!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

image-20221019200129831

image-20221019200157538

image-20221019200304969

image-20221019200448610

image-20221019200523001

测试停止zabbix_agent等待10分钟

zabbix主被动

Zabbix主被动模式简介(记)

zabbix agent检测分为主动(agent active)和被动(agent)两种形式的区别如下:
	主动: agent请求server 获取监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
	被动: server向agent请求获取监控项的数据, agent返回数据

主动模式流程:
	agent 端每隔一段时间主动向服务器发起连接请求,server端收到请求,查询agent 端需要的监控项目,发送给客户端,客户端收集数据发送到服务器,结束
	
被动模式流程
	agent端打开一个端口默认为10050,等待server来获取数据,agent端收集数据发送到server,结束(默认是被动模式)

配置zabbix被动模式

ttagent源码编译安装
c
useradd -M -s /sbin/nologin zabbix
yum -y install libxml2-devel libcurl-devel pcre-devel ntpdate curl-devel
tar xf zabbix-6.0.7.tar.gz
cd zabbix-6.0.7
./configure --prefix=/usr/local/zabbix --enable-agent --with-net-snmp --with-libcurl --with-libxml2
make
make installe-
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=192.168.80.43
ServerActive=192.168.80.43
Hostname=node1e
/usr/local/zabbix/sbin/zabbix_agentd

在192.168.1.128/ui上配置监控linux主机,因为上面的笔记这里就不在做了

zabbix_server (主动监控)
端口:10051
zabbix_agent (被动监控)
端口:10050

被动监控
500台机器都需要server来监控  会造成server端负载压力大  获取不到agent端的监控数据 
缺点:
批量添加主机麻烦
优点:
添加单台机器简单

主动监控

配置主动模式

[root@localhost ~]# /etc/init.d/zabbix_agentd stop
[root@localhost ~]#  vim /usr/local/zabbix/etc/zabbix_agentd.conf
#这是agentd主配置文件
#Server=192.168.1.128
#注释这一行#如果设置为纯主动模式,则应该注释掉这一条指令#Server=192.168.80.43
StartAgents=0
#客户端 agent模式。设置为0表示启用主动模式,而被动模式被关闭,但被监控端的zabbix_agentd不监听本地端口
ServerActive=192.168.80.43
#主动模式的server IP地址,服务端IP
Hostname=node1
#客户端的hostname,不配置则使用主机名注:纯主动模式下的zabbix agent,只能支持Zabbix Agent (Active)类型的监控
killall zabbix_agentd
[root@localhost ~]# /etc/init.d/zabbix_agentd start
tail -f /usr/local/zabbix/logs/zabbix_agentd.log

image-20221020075616094

image-20221020075713108

image-20221020075802621

image-20221020075929297image-20221020080003679

image-20221020080048322

image-20221020080106263

image-20221020080137020

image-20221020080436306

image-20221020080546576

查看图形 如果有的话证明监控成功

配置自动发现

应用场景
	常规监控主机流程,安装agent客户端,在server界面配置新增一台主机即可.但是如果一次性需要监控上百台主机,这样一台台安装配置就很麻烦,这个时候就需要用到zabbix自动发现功能,扫描到指定网段内10050端口的主机后自动添加相应主机(前提是客户端都已经安装了agent,可以利用ansible来实现批量安装agent)

原理
	zabbix_sever 根据配置的自动发现规则去扫描指定IP段内的主机 zabbix_agent端口是否能通,如果端口通了再根据自动发现动作里面配置的规则添加到对应的组以及添加对应的监控模板;
步骤:
1.被监控端服务器安装agent客户端(使用批量化工具安装);
⒉.配置好zabbix_agentd.conf 
3.在zabbix管理系统中添加自动发现规则;
4.在zabbix管理系统中添加自动发现动作;

zabbix自动发现基于

主机IP
自动发现检查
自动发现物件
自动发现规则
自动发现状态
agent 代理程序
接收的值
服务端口
服务类型
在线/不在线

网络发现的两个阶段
1. Discovery发现
	Zabbix定期扫描网络规则的ip范围,每个规则中都定义了一组需要检测的服务,在这些ip范围内进行逐个扫描

2.  Actions 动作(Zabbix的所有Action都基于发现事件的)
发送消息
添加主机
移除主机
添加到主机群组
自主机群组移除
与模板关联
自模板断开连接
启用主机
停用主机
设置主机清单模式

修改agent端配置

[root@localhost logs]# /etc/init.d/zabbix_agentd stop
[root@localhost logs]# cp /usr/local/zabbix/etc/zabbix_agentd.conf.bak  /usr/local/zabbix/etc/zabbix_agentd.conf
[root@localhost logs]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.logs
Server=192.168.1.128
ServerActive=192.168.1.128
Hostname=localhost
[root@localhost logs]# /etc/init.d/zabbix_agentd start
[root@localhost logs]# ps aux | grep zabbix

创建自动发现规则

image-20221020083246615

image-20221020083313429

image-20221020083449460

名称自定义

image-20221020083713557

image-20221020083803317

image-20221020083853663

image-20221020083942104

image-20221020084049761

image-20221020084157205

image-20221020084243800

image-20221020084332152

image-20221020084409037

image-20221020084543822

image-20221020084655002

image-20221020084741997

image-20221020084818938

image-20221020084914701

image-20221020085056692

image-20221020085124941

image-20221020085206830

等待30分钟

Zabbix监控MySQL、Apache、Nginx应用实战案例

	Zabbix对第三方应用软件的监控主要有两个工作难点,一个是编写自定义监控脚本,另一个是编写模板并导入Zabbix Web。编写自定义监控脚本要根据监控需求定制,而编写模板文件有些难度,不过网上已经有很多已经写好的模板,可以直接拿来使用,所以,Zabbix对应用软件的监控其实并不难。

环境搭建部署

[root@localhost ~]# yum -y install zlib pcre pcre-devel openssl openssl-devel
[root@localhost ~]# useradd -s /sbin/nologin www
https://nginx.org/en/download.html
#在官网上下载nginx包
rz 
tar xf 
cd
[root@localhost nginx-1.15.0]# ./configure \
--user=www \
--group=www \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/subsys/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-pcre

make
make install

cd



Zabbix监控MySQL应用实战

	本节首先要介绍的是Zabbix对MySQL的监控,这个是最简单的,因为Zabbix已经自带了MySQL监控的模板,只需要编写一个监控MySQL的脚本即可,所以对MySQL的监控可以分成两个步骤完成。

Zabbix添加自定义监控MySQL脚本

#!/bin/bash
#主机地址/IP
MYSOL_HOST='127.0.0.1'
# 端口
MYSOL_PORT='3306'
# 数据连接
MYSQL_CONN=" /usr/bin/mysqladmin -h${MYSQL_HOST} -P${MYSQL_PORT}"
# 参数是否正确
if [ $# -ne "1" ];then
	echo "arg error!" 
fi
# 获取数据
case $1 in
	Uptime)
		result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"
        echo $result;;
	Com_update)
		result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`
		echo $result
		;;
	Slow_queries)
		result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"
        echo $result;;
	Com_select)
		result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`
		echo $result
		;;
	Com_rollback)
		result=`${MYSQL_CONN} extended-status lgrep -w "Com_rollback|"cut -d"|" -f3`
		echo $result
		;;
	Questions)
		result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"
		echo $result
		;;
	Com_insert)
		result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`
		echo $result
		;;
	Com_delete)
		result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`
		echo $result
		;;
	Com_commit)
		result=`${MYSOL_CONN} extended-status |grep-w "Com_commit" cut -d"|" -f3`
		echo $result
		;;
	Bytes_sent)
		result=`${MYSQL_CONN} extended-status|grep -w "Bytes_sent"|cut -d"|" -f3`
		echo $result
		;;
	Bytes_received)
		result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`
		echo $result
		;;
	Com_begin)
		result=`${MYSQL_CONN} extended-status |grep-w"Com begin" cut -d"|" -f3`
		echo $result
		;;
	*)	
    echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
		;;
	esac
此脚本很简单,就是通过mysqladmin命令获取MySQL的运行状态参数。因为要获取MySQL运行状态,所以需要登录到MySQL中获取状态值,但这个脚本中并没有添加登录数据库的用户名和密码信息,原因有两个,一个是密码添加到脚本中很不安全,另一个是在MySQL5.7版本后,在命令行输入明文密码,会提示如下信息:
mysgladmin: [Warning] Using a password on the command line interfac
can be insecure.
对待这个问题的解决方法是,将登录数据库的用户名和密码信息写入/etc/my.cnf文件中,类似如下:
[mysqladmin]
user=root
passwd=Admin.123
这样,通过mysqladmin在命令行执行操作的话,会自动通过root用户和对应的密码登录到数据库中。

Zabbix anent端配置

	要监控MySQL,就需要在MySQL服务器上安装Zabbix agent,然后开启agent的自定义监控模式,将上面脚本放到Zabbix agent端的/etc/zabbix/shell目录下,然后进行授权:
	
	vim /usr/local/zabbix/share/zabbix/alertscripts/chcek_mysql.sh
#!/bin/bash
#主机地址/IP
MYSOL_HOST='127.0.0.1'
# 端口
MYSOL_PORT='3306'
# 数据连接
MYSQL_CONN=" /usr/bin/mysqladmin -h${MYSQL_HOST} -P${MYSQL_PORT}"
# 参数是否正确
if [ $# -ne "1" ];then
	echo "arg error!" 
fi
# 获取数据
case $1 in
	Uptime)
		result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"
        echo $result;;
	Com_update)
		result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`
		echo $result
		;;
	Slow_queries)
		result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"
        echo $result;;
	Com_select)
		result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`
		echo $result
		;;
	Com_rollback)
		result=`${MYSQL_CONN} extended-status lgrep -w "Com_rollback|"cut -d"|" -f3`
		echo $result
		;;
	Questions)
		result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"
		echo $result
		;;
	Com_insert)
		result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`
		echo $result
		;;
	Com_delete)
		result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`
		echo $result
		;;
	Com_commit)
		result=`${MYSOL_CONN} extended-status |grep-w "Com_commit" cut -d"|" -f3`
		echo $result
		;;
	Bytes_sent)
		result=`${MYSQL_CONN} extended-status|grep -w "Bytes_sent"|cut -d"|" -f3`
		echo $result
		;;
	Bytes_received)
		result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`
		echo $result
		;;
	Com_begin)
		result=`${MYSQL_CONN} extended-status |grep-w"Com begin" cut -d"|" -f3`
		echo $result
		;;
	*)	
    echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
		;;
	esac
	
	  
	chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/chcek_mysql.sh
	vim /usr/local/etc/zabbix_agentd.conf.d/mysql.conf