暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

原创|NO.A.0016|——|监控集群|zabbix3.2|中文乱码|zabbix-agent|钉钉告警||2台server|

Java BBS 2021-03-08
413

一、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是可选,这个需要另外安装

  1. zabbix_agentd:客户端守护进程,此进程收集客户端数据,例如CPU负载,内存,硬盘使用情况等,在三版本中有两个客户端:zabbix-agent和zabbix-agentd:以守护进程的方式工作。默认以守护进程的方式工作

  2. zabbix_get:zabbix工具,单独使用的命令,通常用于排错

  3. zabbix_sender:zabbix工具,用于发送数据给server或者Proxy,在脚本完成之后使用sender主动将数据提交

  4. zabbix_server:zabbix服务端守护进程,所有的数据都是被提交或主动提交到zabbix_server端

  5. zabbix_proxy:zabbix代理守护进程,功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里

  6. 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.service
Removed 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/selinux
SELINUX=disabled
//3、配置网卡:一块仅主机模式,一块net模式
[root@server11 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.10.10.11
NETMASK=255.255.255.0
[root@server11 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens34
BOOTPROTO=dhcp
ONBOOT=yes
[root@server11 ~]# systemctl restart network.service
[root@server11 ~]# ip addr
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 10.10.10.11/24 brd 10.10.10.255 scope global noprefixroute ens33
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 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_installation
Set root password? [Y/n] y
New password: 123456
Re-enter new password: 123456
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
[root@server11 ~]# mysql -uroot -p
Enter password: 123456
MariaDB [(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 M
Installed size: 60 M
Installed:
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.el7
Dependency 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.el7
dejavu-fonts-common.noarch 0:2.33-6.el7 dejavu-sans-fonts.noarch 0:2.33-6.el7 fontpackages-filesystem.noarch 0:1.44-8.el7
fping.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.centos
libX11.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.el7
libXpm.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.el7
libxcb.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.el7
php-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.el7
php-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.el7
trousers.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.el7
Complete!
//2、初始化数据库:
[root@server11 ~]# mysql -u root -p
Enter password: 123456
MariaDB [(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: 123456
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables; //数据表显示
//4、 启动zabbix服务
[root@server11 ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost //数据库连接授权方案,默认情况下是本地ip,所以写localhost
DBName=zabbix
DBUser=zabbix
DBPassword=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 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_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.conf
DocumentRoot "/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.php
define('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.conf
Server=10.10.10.11 //服务器端地址
# ListenPort=10050 //使用的是tcp的10050端口
ServerActive=10.10.10.11
Hostname=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_agentd
tcp6 0 0 :::10050 :::* LISTEN 12849/zabbix_agentd

在控制页面把它添加监控上。

  1. 添加主机

  • 配置——>主机——>创建主机——>主机名称: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 localhost
this is zabbix-agent 10.10.10.12
//2、zabbix客户端配置
[root@serve12 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=10.10.10.11
ServerActive=10.10.10.11
Hostname=10.10.10.12
[root@serve12 ~]# systemctl start zabbix-agent.service
[root@serve12 ~]# systemctl enable zabbix-agent.service
[root@serve12 ~]# netstat -anpt |grep :10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 9731/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 9731/zabbix_agentd
//3、在监控控制页面添加


  1. 添加主机

  • 配置——>主机——>创建主机——>主机名称: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 localhost
this is HA server2:10.10.10.12 nginx zabbix-agent-web
//6、修改nginx配置文件,启用监控功能;并重载nginx
[root@serve12 ~]# vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.html index.htm; //默认不需更改
}
location /nginx-status{ //添加该内容,启用监控功能
stub_status on;
}
[root@serve12 ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: 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/bash


HOST="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 active
1
//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 requests
7443
//开启授权自定义脚本的监控。
[root@serve12 ~]# mv nginx-status.sh /etc/zabbix/zabbix_agentd.d/
[root@serve12 ~]# vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=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 requests
102549
//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 requests
150100
//说明客户端已经通过脚本的形式检测到脚本的值了。
//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.html
this is HA-server12:10.10.10.12 web-test

通过Chrome访问:http://10.10.10.12/test.html


——>zabbix聚合图形,绘制图形;放置公司比较重要的监控信息<——

  • 检测中——>聚合图形——>创建聚合图形——>名称:重要信息——>添加——>重要信息——>编辑聚合图形——>更改——>图形:选择:CPU load——>添加:时间——>END

六、报警设置:zabbix 联合钉钉实现终端报警

  1. 头像图标——>正在发送消息——>前端响应——>播放声音:10S——>更新——>告警会发生告警声音——>END

  • QQ:需要每隔24小时扫描登录

  • 微信:需要企业微信,还需要企业微信APP登录

  • 钉钉:最优方案

1、钉钉配置

  • +加号——>群名称:zabbix报警——>添加用户:最少2人——>确定——>群机器人——>自定义——>添加——>名称:zabbix——>webhook:复制——>设置说明:设置方案:curl类型发送——>END

[root@server11 ~]# vim token.sh 
#!/bin/bash
to=$1
subject=$2
text=$3
curl '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 firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

2、安装LAMP环境

wget http://mirros.163.com/./help/CentOS7-Base-163.repo
yum clean all
yum makecache
yum install -y mariadb mariadb-server httpd php php-mysql
systemctl enable httpd
systemctl restart httpd
systemctl enable mariadb
systemctl restart mariadb
mysql_secure_installation

3、安装zabbix程序

rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.3l7.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent
//初始化数据库:
mysql -u root -p
CREATE 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.1
zcat creat.sql.gz |mysql -uroot -p zabbix
//启动zabbix服务
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
systemctl start zabbix-server
systemctl enable zabbix-server
//编辑zabbix前端PHP配置
vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -l
php_value date.timezone Asia/Shanghai
//调整时间同步
yum install -y ntpdate
ntpdate cn.pool.ntp.org
//重启Apache服务生效
systemctl restart httpd

4、修改中文乱码问题

//wind+R > fonts > 拷贝微软雅黑字体改名为msyh.ttf > /usr/share/zabbix/fonts
vim /usr/share/zabbix/include/defines.inc.php
//修改zabbix php 页面配置,将'graohfont'修改为msyh
dnfine('ZBX_GRAPH_FONT_NAME','msyh');

5、添加客户端

vim /usr/local/zabbix/etc/zabbix_agentd.configure
LogFile=/tmp/zabbix_agentd.log
Server= 192.168.1.195
ServerActive = 192.168.1.195
Hostname = 192.168.1.195
rpm -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/bash


HOST="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加入配置文件,然后重启agentd
cat /usr/local/zabbi-3.0.0/etc/zabbix_agentd.conf|grep nginx
UserParameter=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






文章转载自Java BBS,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论