一、zabbix组件说明
1、概述:
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级(稳定)的开源(免费)解决方案(基于GPL V2)
zabbix由2部分构成,zabbix server与可选组件zabbix agent
B/S结构:提供服务
C/S结构:收集数据
展示的效果是图形化图表展示,状态显示的。也就意味着它把cacti和nagios的服务综合起来了。
GPL V2特点:这个协议既讲究闭源,又讲究开源,你可以拿我的软件去开发,并且开发出来的东西可以授卖,并且以源码包的形式提供,而不是rpm包的形式。rpm包的形式下次修改一些东西的时候还需要开发者参与。
2、工作结构:

zabbix-web-GUI:zabbix图形化接口
zabbix-database:数据库mysql
zabbix-server:接收来之agent端和Proxy端的数据。
zabbix-proxy:接收来之低下zabbix-agent的数据并把数据交给zabbix-server来汇总,也就是把接收到的数据插入到数据库,然后再通过PHP语言调用分析得到结构后展示给用户看
IPMI:智能管理接口,现在常见的智能设备都是支持这种类型的
ICMP/SNMP:对于不能安装agent客户端的工具,只能拿通过ICMP/SNMP来获取数据。
3、进程构成:
zabbix安装完成后会产生5个程序:zabbix_agentd/zabbix_get/zabbix_proxy/zabbix_sender/zabbix_server /zabbix_java_gateway是可选,这个需要另外安装
zabbix_agentd:客户端守护进程,此进程收集客户端数据,例如CPU负载,内存,硬盘使用情况等,在三版本中有两个客户端:zabbix-agent和zabbix-agentd:以守护进程的方式工作。默认以守护进程的方式工作
zabbix_get:zabbix工具,单独使用的命令,通常用于排错
zabbix_sender:zabbix工具,用于发送数据给server或者Proxy,在脚本完成之后使用sender主动将数据提交
zabbix_server:zabbix服务端守护进程,所有的数据都是被提交或主动提交到zabbix_server端
zabbix_proxy:zabbix代理守护进程,功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里
zabbix_java_gateway:zabbix2.0之后引入的一个功能,顾名思义:java网关,类似agentd,但是只用于java方面,需要特别注意的是,它只能主动去获取数据,而不能被动获取数据,它的数据最终会给到server或者Proxy
4、硬件需求:

5、centos6.x和centos7.x的区别
| 文件系统 | 引导方式 | 网卡命名方式 | |
| centos6.x | ext4 | init | ethx |
| centos7.x | xfs | systemd | ensxx xxx:不连续字符串 |
xfs:单个分区更大,性能更好
二、构建zabbix监控
——>zabbix实验专题<——
操作系统:HA-server1:centos7.x-1810:网卡一:仅主机模式;网卡二:net模式
1、初始系统设置:
//1、关闭防火墙[root@server11 ~]# systemctl stop firewalld.service[root@server11 ~]# systemctl disable firewalld.serviceRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.//2、关闭selinux[root@server11 ~]# setenforce 0[root@server11 ~]# vi /etc/sysconfig/selinuxSELINUX=disabled//3、配置网卡:一块仅主机模式,一块net模式[root@server11 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO=staticONBOOT=yesIPADDR=10.10.10.11NETMASK=255.255.255.0[root@server11 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens34BOOTPROTO=dhcpONBOOT=yes[root@server11 ~]# systemctl restart network.service[root@server11 ~]# ip addr2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000inet 10.10.10.11/24 brd 10.10.10.255 scope global noprefixroute ens333: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000inet 192.168.120.128/24 brd 192.168.120.255 scope global noprefixroute dynamic ens34//4、安装基础软件包[root@server11 ~]# yum install -y net-tools //安装基础软件包[root@server11 ~]# yum install lrzsz vim gcc gcc-c++//5、更换yum源[root@server11 ~]# wget http://mirros.163.com/./help/CentOS7-Base-163.repo[root@server11 ~]# mkdir /etc/yum.repos.d/back[root@server11 ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/back/[root@server11 ~]# mkdir /etc/yum.repos.d/back[root@server11 ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/back/[root@server11 ~]# yum clean all[root@server11 ~]# yum makecache
2、安装LAMP环境
//1、部署完整的LAMP环境[root@server11 ~]# yum install -y mariadb mariadb-server httpd php php-mysql[root@server11 ~]# systemctl start httpd.service[root@server11 ~]# systemctl start mariadb.service[root@server11 ~]# systemctl enable httpd.service[root@server11 ~]# systemctl enable mariadb.service//mysql和mariadb不同点是mysql会自己进行初始化,而mariadb则不会,需要我们手动初始化。//2、初始化mariadb[root@server11 ~]# mysql_secure_installationSet root password? [Y/n] yNew password: 123456Re-enter new password: 123456Remove anonymous users? [Y/n] yDisallow root login remotely? [Y/n] yRemove test database and access to it? [Y/n] yReload privilege tables now? [Y/n] y[root@server11 ~]# mysql -uroot -pEnter password: 123456MariaDB [(none)]> exit
3、安装zabbix程序
//1、安装zabbix-server[root@server11 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm[root@server11 ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX //导入rpm包的秘钥[root@server11 ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent //zabbix-server-mysql:连接数据方案 zabbix-web-mysql:提供web界面Install 3 Packages (+27 Dependent packages)Total download size: 13 MInstalled size: 60 MInstalled:zabbix-agent.x86_64 0:3.2.11-1.el7 zabbix-server-mysql.x86_64 0:3.2.11-1.el7 zabbix-web-mysql.noarch 0:3.2.11-1.el7Dependency Installed:OpenIPMI.x86_64 0:2.0.27-1.el7 OpenIPMI-libs.x86_64 0:2.0.27-1.el7 OpenIPMI-modalias.x86_64 0:2.0.27-1.el7dejavu-fonts-common.noarch 0:2.33-6.el7 dejavu-sans-fonts.noarch 0:2.33-6.el7 fontpackages-filesystem.noarch 0:1.44-8.el7fping.x86_64 0:3.10-1.el7 gnutls.x86_64 0:3.3.29-9.el7_6 iksemel.x86_64 0:1.4-2.el7.centoslibX11.x86_64 0:1.6.7-3.el7_9 libX11-common.noarch 0:1.6.7-3.el7_9 libXau.x86_64 0:1.0.8-2.1.el7libXpm.x86_64 0:3.5.12-1.el7 libjpeg-turbo.x86_64 0:1.2.90-8.el7 libpng.x86_64 2:1.5.13-8.el7libxcb.x86_64 0:1.13-1.el7 net-snmp-libs.x86_64 1:5.7.2-49.el7_9.1 nettle.x86_64 0:2.7.1-8.el7php-bcmath.x86_64 0:5.4.16-48.el7 php-gd.x86_64 0:5.4.16-48.el7 php-ldap.x86_64 0:5.4.16-48.el7php-mbstring.x86_64 0:5.4.16-48.el7 php-xml.x86_64 0:5.4.16-48.el7 t1lib.x86_64 0:5.1.2-14.el7trousers.x86_64 0:0.3.14-2.el7 unixODBC.x86_64 0:2.3.1-14.el7 zabbix-web.noarch 0:3.2.11-1.el7Complete!//2、初始化数据库:[root@server11 ~]# mysql -u root -pEnter password: 123456MariaDB [(none)]> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';Query OK, 0 rows affected (0.00 sec)//3、读入数据库[root@server11 ~]# ls /usr/share/doc/zabbix-server-mysql-3.2.11/create.sql.gz/usr/share/doc/zabbix-server-mysql-3.2.11/create.sql.gz //数据库的模板文件[root@server11 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/[root@server11 zabbix-server-mysql-3.2.11]# zcat create.sql.gz | mysql -uroot -p zabbix //zcat:解压并查看,相当于先解压再通过cat命令将其打开;把它交给mysql -uroot -p zabbix:用户Enter password: 123456[root@server11 zabbix-server-mysql-3.2.11]# mysql -uroot -p //查看是否还原成功Enter password: 123456MariaDB [(none)]> use zabbixMariaDB [zabbix]> show tables; //数据表显示//4、 启动zabbix服务[root@server11 ~]# vim /etc/zabbix/zabbix_server.confDBHost=localhost //数据库连接授权方案,默认情况下是本地ip,所以写localhostDBName=zabbixDBUser=zabbixDBPassword=zabbix[root@server11 ~]# systemctl start zabbix-server[root@server11 ~]# systemctl enable zabbix-server//5、编辑zabbix前端PHP配置[root@server11 ~]# vim /etc/httpd/conf.d/zabbix.conf //安装zabbix-server-web软件包时导入的软件包php_value max_execution_time 300php_value memory_limit 128Mphp_value post_max_size 16Mphp_value upload_max_filesize 2Mphp_value max_input_time 300php_value always_populate_raw_post_data -1php_value date.timezone Asia/Shanghai //时区设置为亚洲上海,其他的默认//6、重启Apache服务生效[root@server11 ~]# systemctl restart httpd//7、调整时间同步[root@server11 ~]# yum install -y ntpdate[root@server11 ~]# date -s 07:37:00//8、访问网页:默认是http://10.10.10.11/zabbix;若是不嵌入zabbix这个字段,可以修改一下Apache[root@server11 ~]# vim /etc/httpd/conf/httpd.confDocumentRoot "/usr/share/zabbix/"[root@server11 ~]# systemctl restart httpd.service//访问http://10.10.10.11 //不需要加载zabbix字段就可以直接访问了。
4、修改中文乱码问题
//1、wind+R > fonts > 拷贝微软雅黑字体改名为msyh.ttf > /usr/share/zabbix/fonts //默认的书写格式是:ttf[root@server11 ~]# mv mysh.ttf /usr/share/zabbix/fonts/[root@server11 ~]# chmod a+x /usr/share/zabbix/fonts/mysh.ttf//2、修改zabbix php 页面配置,将'graohfont'修改为msyh[root@server11 ~]# vim /usr/share/zabbix/include/defines.inc.phpdefine('ZBX_GRAPH_FONT_NAME', 'mysh'); // font file name//3、解释性语言,保存生效,不需要重启。

zabbix-web配置安装
默认初始页:Next step

检测PHP的相关依赖,都是OK,Next step

数据库名称密码:zabbix:zabbix,Next step

输出的默认信息;Next step

输出信息;Next step

恭喜你安装部署成功;Finish

默认的用户名密码:Admin:zabbix

更改默认字体为中文:Administration——>Users——>Admin——>Language——>Chinese(zh_CN)——>Update——刷新——>中文显示——>END
——>监控本机服务<——
5、添加客户端
[root@server11 ~]# vim /etc/zabbix/zabbix_agentd.confServer=10.10.10.11 //服务器端地址# ListenPort=10050 //使用的是tcp的10050端口ServerActive=10.10.10.11Hostname=10.10.10.11 //本机地址,或者可解析的主机名[root@server11 ~]# systemctl start zabbix-agent[root@server11 ~]# systemctl enable zabbix-agent[root@server11 ~]# netstat -antp |grep :10050 //监听状态,并且是在zabbix把它启用的。tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 12849/zabbix_agentdtcp6 0 0 :::10050 :::* LISTEN 12849/zabbix_agentd
在控制页面把它添加监控上。
添加主机
配置——>主机——>创建主机——>主机名称:zabbix-server(必须英文)——>可见名称:zabbix服务器——>群组:Zabbix servers——>agent代理程序的接口:IP地址:10.10.10.11(若是域名需添加DNS服务器);端口:10050——>
模本——>链接指示器:选择:Template APP HTTP Service;Template ICMP Ping;Template OS Linux——>添加——>
主机——>添加——>END

三、添加监控主机/自动发现,nginx并发监控
1、添加监控主机
//1、在HAserver2:10.10.10.12下源码编译安装Nginx服务器并开启状态统计模块//将zabbix-agent-3.2.1-1.el7.x86_64.rpm上传至服务器并安装zabbix-agent.rpm包[root@serve12 ~]# yum install -y zabbix-agent-3.2.1-1.el7.x86_64.rpm[root@serve12 ~]# systemctl restart httpd[root@serve12 ~]# echo "this is zabbix-agent 10.10.10.12" >> /var/www/html/index.html[root@serve12 ~]# curl localhostthis is zabbix-agent 10.10.10.12//2、zabbix客户端配置[root@serve12 ~]# vim /etc/zabbix/zabbix_agentd.confServer=10.10.10.11ServerActive=10.10.10.11Hostname=10.10.10.12[root@serve12 ~]# systemctl start zabbix-agent.service[root@serve12 ~]# systemctl enable zabbix-agent.service[root@serve12 ~]# netstat -anpt |grep :10050tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 9731/zabbix_agentdtcp6 0 0 :::10050 :::* LISTEN 9731/zabbix_agentd//3、在监控控制页面添加
添加主机
配置——>主机——>创建主机——>主机名称:zabbix-server(必须英文)——>可见名称:zabbix服务器——>群组:Apache——>agent代理程序的接口:IP地址:10.10.10.12(若是域名需添加DNS服务器);端口:10050——>
模本——>链接指示器:选择:Template APP HTTP Service;Template ICMP Ping;Template OS Linux——>添加——>
主机——>添加——>END
2、zabbix监控nginx端服务器
//zabbix客户端配置//4、在HAserver2:10.10.10.12下源码编译安装Nginx服务器并开启状态统计模块[root@serve12 ~]# systemctl stop httpd.service //同时占用80端口,冲突,所以关闭//将nginx-1.2.6.tar.gz上传至服务器[root@serve12 nginx-1.2.6]# useradd -s /sbin/nologin -M nginx[root@serve12 ~]# tar -zxvf nginx-1.2.6.tar.gz[root@serve12 ~]# cd nginx-1.2.6/[root@serve12 nginx-1.2.6]# yum install -y pcre pcre-devel zlib zlib-devel[root@serve12 nginx-1.2.6]# ./configure --help |grep status--with-http_stub_status_module //查找状态统计模块[root@serve12 nginx-1.2.6]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module[root@serve12 nginx-1.2.6]# make && make install//5、写入网站并启动nginx[root@serve12 nginx-1.2.6]# echo "this is HA server2:10.10.10.12 nginx zabbix-agent-web" >> /usr/local/nginx/html/index.html[root@serve12 nginx-1.2.6]# /usr/local/nginx/sbin/nginx[root@serve12 nginx-1.2.6]# curl localhostthis is HA server2:10.10.10.12 nginx zabbix-agent-web//6、修改nginx配置文件,启用监控功能;并重载nginx[root@serve12 ~]# vim /usr/local/nginx/conf/nginx.conflocation / {root html;index index.html index.htm; //默认不需更改}location /nginx-status{ //添加该内容,启用监控功能stub_status on;}[root@serve12 ~]# /usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@serve12 ~]# kill -HUP $( cat /usr/local/nginx/logs/nginx.pid) //重载一下nginx
通过Chrome访问:http://10.10.10.12/nginx-status查看当前的连接状态

//7、编写nginx监控脚本,在被监控端#!/bin/bashHOST="127.0.0.1"PORT="80"#检测nginx进程是否存在function ping {/sbin/pidof nginx | wc -l}#检测nginx性能function active {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'}function reading {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'}function writing {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'}function waiting {/usr/bin/curl "http://$HOST:#PORT/nginx-status/" 2>/dev/null| grep 'Waiting' | awk' {print $6}'}function accepts {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print$1}'}function handled {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print $2}'}function requests {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print $3}'}#执行function$1// :$s/ngx_status/nginx-status/g //替换全部内容为nginx-status;共替换了7行//为脚本赋予可执行权限,并测试脚本可否执行[root@serve12 ~]# chmod a+x nginx-status.sh[root@serve12 ~]# bash nginx-status.sh active1//8、在HA server13下写入一个循环,让其一直访问10.10.10.12下的nginx主页[root@server13 ~]# while 2>1 //无限循环访问> do> curl 10.10.10.12> done[root@server13 ~]# while 2>1 ; do curl 10.10.10.12 //1s访问一次;比无限循环慢一点> sleep 1s> done//9、在HA server12下查看访问状态及当前的请求数。[root@serve12 ~]# bash nginx-status.sh requests7443//开启授权自定义脚本的监控。[root@serve12 ~]# mv nginx-status.sh /etc/zabbix/zabbix_agentd.d/[root@serve12 ~]# vim /etc/zabbix/zabbix_agentd.confUnsafeUserParameters=1 //1表示开启自定义脚本监控UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx-status.sh $1 //格式:第一个指定的key,就是调取的函数名称[root@serve12 ~]# systemctl restart zabbix-agent.service[root@serve12 ~]# /etc/zabbix/zabbix_agentd.d/nginx-status.sh requests102549//10、此刻虽然授权到了,但是不知道zabbix-agent和脚本进行交互监控待测试[root@server11 ~]# yum install -y zabbix-get[root@server11 ~]# zabbix_get -s 10.10.10.12 -k 'nginx.status[requests]'151099[root@serve12 ~]# /etc/zabbix/zabbix_agentd.d/nginx-status.sh requests150100//说明客户端已经通过脚本的形式检测到脚本的值了。//11、下列在Chrome下配置性能监控导入性能脚本的方式检测。
为了让性能能够引入的话,需要导入性能脚本
配置——>模板——>导入:模板:zbx_export_templates.xml——>导入成功后再点击模板NGINX——>下拉显示:Template App NGINX——>监控项:会显示一些列的监控列表:包括触发器——>
配置——>主机——>创建主机——>主机名称:nginx-1——>可见名称:nginx服务器——>新建群组:nginx——>地址:10.10.10.12——>端口:10050——>模板:Template App NGINX,Template ICMPPing,Template OS Linux——>添加——>主机:添加——>END

——>zabbix监控web场景,聚合图形<——
1、添加一个新的web场景的功能
配置——>主机——>nginx-1服务器——>应用集——>创建应用集——>名称:http-code:添加——>web场景:创建web场景——>名称:http-code——>应用集:http-code——>客户端:Chrome 38.0(Windows)——>
步骤——>添加——>名称:http-code——>URL:http://10.10.10.12/test.html(建议大家新建一个测试网页:测试方案一)——>要求的状态码:200——>添加——>
认证——>无
主机——>添加——>END

触发器——>创建触发器——>名称:web场景检测异常!!!——>严重性:严重——>表达式:添加:监控项:Response code for step “http-code" of scenario ”http-code“——>功能:最新 的T值不是N——>N:200——>插入——>
表达式:{nginx-1:web.test.in[http-code,http-code,bps].time(0)}<>200 and {nginx-1:web.test.in[http-code,http-code,bps].time(1)}<>200 and {nginx-1:web.test.in[http-code,http-code,bps].time(2)}<>200 ——> 添加——>
点击触发器查看:——>END
测试test网页是否运行正常:
[root@serve12 ~]# rm -rf /usr/local/nginx/html/test.html删除测试页面 //告警出现,严重警告[root@serve12 ~]# echo "this is HA-server12:10.10.10.12 web-test " >>/usr/local/nginx/html/test.html[root@serve12 ~]# curl localhost/test.html //重新添加页面。恢复正常this is HA-server12:10.10.10.12 web-test
测试方案一:
[root@serve12 ~]# echo "this is HA-server12:10.10.10.12 web-test " >>/usr/local/nginx/html/test.html[root@serve12 ~]# curl localhost/test.htmlthis is HA-server12:10.10.10.12 web-test
通过Chrome访问:http://10.10.10.12/test.html

——>zabbix聚合图形,绘制图形;放置公司比较重要的监控信息<——
检测中——>聚合图形——>创建聚合图形——>名称:重要信息——>添加——>重要信息——>编辑聚合图形——>更改——>图形:选择:CPU load——>添加:时间——>END

六、报警设置:zabbix 联合钉钉实现终端报警
头像图标——>正在发送消息——>前端响应——>播放声音:10S——>更新——>告警会发生告警声音——>END
QQ:需要每隔24小时扫描登录
微信:需要企业微信,还需要企业微信APP登录
钉钉:最优方案
1、钉钉配置
+加号——>群名称:zabbix报警——>添加用户:最少2人——>确定——>群机器人——>自定义——>添加——>名称:zabbix——>webhook:复制——>设置说明:设置方案:curl类型发送——>END
[root@server11 ~]# vim token.sh#!/bin/bashto=$1subject=$2text=$3curl 'https://oapi.dingtalk.com/robot/send?access_token=0dc26faede3a38a0499446d1bf98294fa4ee9dccd85ce67d7413b5f37b74666e' \-H 'Content-Type: application/json' \-d '{"msgtype": "text","text": {"content": "'"$text"'"},"at":{"atMobiles": [ "'"$1"'" ],"isAtAll": false}}'[root@server11 ~]# chmod a+x token.sh[root@server11 ~]# chown zabbix.zabbix token.sh[root@server11 ~]# ./token.sh 1 2 3 //测试一下:1给谁,2标题,3内容[root@server11 ~]# vim /etc/zabbix/zabbix_server.conf/usr/lib/zabbix/alertscripts //找到脚本存放目录[root@server11 ~]# mv /root/token.sh /usr/lib/zabbix/alertscripts/ //将脚本移至该目录
管理——>报警媒介类型——>创建报警媒介类型——>名称:钉钉——>类型:脚本——>脚本名称:token.sh——>脚本参数(图一)——>添加。
操作信息——>配置——>动作——>创建动作——>名称:钉钉——> 计算方式:和——>新的触发条件:触发器示警度>=未分类——>添加——>操作——>默认操作步骤持续时间:3600S默认接收人信息(图二)——>维护期间暂停操作——>步骤:1-5次;持续时间:120分钟——>操作类型:发送消息——>发送到用户:Admin(Zabbi-Administrator)——>仅发送:钉钉——>END
恢复信息——>同步操作信息——>END
授权——>管理——>用户——>Admin——>报警媒介——>添加——>类型:钉钉——>收件人:手机号:000000000000(图四)——>添加——>END
图一

图二

图三

图四
断掉网卡查看告警信息

1、监控方式添加参数
{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}
2、错误报警信息参数
//标题改为故障{ERIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障//信息改为告警主机:{HOSTNAME1}告警时间:{EVENT.DATE}{EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息:{TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}
3、错误恢复报警信息设置
//标题改为恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}:{TRIGGER.NAME}故障//信息改为告警主机:{HOSTNAME1}告警时间:{EVENT.DATE}{EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息:{TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}
=================================END==================================
辅助文本
二、构建zabbix监控服务器
1、初始化系统设置
//1、初始化系统设置systemctl stop firewalldsystemctl disable firewalldsetenforce 0sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
2、安装LAMP环境
wget http://mirros.163.com/./help/CentOS7-Base-163.repoyum clean allyum makecacheyum install -y mariadb mariadb-server httpd php php-mysqlsystemctl enable httpdsystemctl restart httpdsystemctl enable mariadbsystemctl restart mariadbmysql_secure_installation
3、安装zabbix程序
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.3l7.noarch.rpmrpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIXyum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent//初始化数据库:mysql -u root -pCREATE DATABASE zabbix DEFAULT CHARACTET SET utf8 COLLATE utf8_bin;grant all privileges on zabbix.* to zabbix@localhost identified by'zabbix';//读入数据库cd /usr/share/doc/zabbix-server-mysql-3.2.1zcat creat.sql.gz |mysql -uroot -p zabbix//启动zabbix服务vim /etc/zabbix/zabbix_server.confDBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=zabbixsystemctl start zabbix-serversystemctl enable zabbix-server//编辑zabbix前端PHP配置vim /etc/httpd/conf.d/zabbix.confphp_value max_execution_time 300php_value memory_limit 128Mphp_value upload_max_filesize 2Mphp_value max_input_time 300php_value always_populate_raw_post_data -lphp_value date.timezone Asia/Shanghai//调整时间同步yum install -y ntpdatentpdate cn.pool.ntp.org//重启Apache服务生效systemctl restart httpd
4、修改中文乱码问题
//wind+R > fonts > 拷贝微软雅黑字体改名为msyh.ttf > /usr/share/zabbix/fontsvim /usr/share/zabbix/include/defines.inc.php//修改zabbix php 页面配置,将'graohfont'修改为msyhdnfine('ZBX_GRAPH_FONT_NAME','msyh');
5、添加客户端
vim /usr/local/zabbix/etc/zabbix_agentd.configureLogFile=/tmp/zabbix_agentd.logServer= 192.168.1.195ServerActive = 192.168.1.195Hostname = 192.168.1.195rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm
三、添加监控主机/自动发现,nginx并发监控
1、添加监控主机
//1、源码编译安装Nginx服务器并开启状态统计模块//2、zabbix客户端配置//——>1、编写nginx监控脚本,在被监控端#!/bin/bashHOST="127.0.0.1"PORT="80"#检测nginx进程是否存在function ping {/sbin/pidof nginx | wc -l}#检测nginx性能function active {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'}function reading {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'}function writing {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'}function waiting {/usr/bin/curl "http://$HOST:#PORT/nginx-status/" 2>/dev/null| grep 'Waiting' | awk' {print $6}'}function accepts {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print$1}'}function handled {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print $2}'}function requests {/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print $3}'}#执行function$1//——>2将自定义的UserParameter加入配置文件,然后重启agentdcat /usr/local/zabbi-3.0.0/etc/zabbix_agentd.conf|grep nginxUserParameter=naginx.status[*],/usr/local/zabbix-3.0.0/scropts/ngx-status.sh $1//killall zabbix_agentd//usr/local/zabbix-3.0.0/sbin/zabbix_agentd//——>3zabbix_get获取数据/usr/local/zabbix-3.0.0/bin/zabbix_get -s 10.10.1.121 -k 'nginx.status[accepts]'9570756/usr/local/zabbix-3.0.0/bin/zabbix_get -s 10.10.1.121 -k 'nginx.status[ping]'
六、报警设置:zabbix 联合钉钉实现终端报警
1、监控方式添加参数
{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}
2、错误报警信息参数
//标题改为故障{ERIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障//信息改为告警主机:{HOSTNAME1}告警时间:{EVENT.DATE}{EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息:{TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}
3、错误恢复报警信息设置
//标题改为恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}:{TRIGGER.NAME}故障//信息改为告警主机:{HOSTNAME1}告警时间:{EVENT.DATE}{EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息:{TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}
END
声明:JavaBBS论坛主要用于IT技术专题的交流学习,为开源技术爱好者提供广泛、权威的技术资料。若您在技术专题有更好的想法或者建议,欢迎交流!!!




推荐阅读
Recommended reading


JavaBBS
Git → https://www.javabbs.cn/git
JavaBBS大数据→ https://www.javabbs.cn/dsj
JavaBBS云存储→ https://www.javabbs.cn/ycc
JavaBBS数据库→ https://www.javabbs.cn/sjk
JavaBBS云计算→ https://www.javabbs.cn/yjs
JavaBBSIT.Log→ https://www.javabbs.cn/itl
JavaBBSNginx→ https://www.javabbs.cn/ngx
JavaBBSzabbix→ https://www.javabbs.cn/zbx
JavaBBSJavaSE→ https://www.javabbs.cn/jse JavaBBS社区文章→ https://www.javabbs.cn/bwz
JavaBBS社区资料→ https://www.javabbs.cn/bzl





