集群监控

文章目录

  • 四、Zabbix 监控服务器 【常用】
    • 4.1 Zabbix 介绍
      • 4.1.1 Zabbix 是什么?
      • 4.1.2 Zabbix 工作架构
      • 4.1.3 Zabbix 进程构成
      • 4.1.4 Zabbix 硬件需求
    • 4.2 构建 Zabbix 监控服务器
      • 实验环境
      • 4.2.1 安装 LAMP 环境
      • 4.2.2 安装 Zabbix 程序 (服务端)
      • 4.2.3 通过 web 安装 zabbix
      • 4.2.4 添加本机监控 (被监控端)
      • 4.2.5 在web页面添加监控主机
        • 中文乱码问题
    • 4.3 添加主机/自动发现
      • 4.3.1 添加监控主机
      • 4.3.2 自动添加(批量添加监控节点)
        • 4.3.2.1 服务器初始化
        • 4.3.2.2 配置自动发现动作
        • 4.3.2.3 配置自动发现规则
    • 4.4 Zabbix 监控 Nginx 并发(自定义监控项、模板)
      • 4.4.1 源码编译安装 Nginx 服务器并开启状态统计模块
      • 4.4.2 编写 Nginx 监控脚本,在被监控端
      • 4.4.3 导入模板,配置nginx监控主机
    • 4.5 web场景 / 组合图
      • 4.5.1 web场景
      • 4.5.2 组合图
      • 4.6 Zabbix 联合钉钉实现终端报警
      • 4.6.1 报警设置 (web页面)
      • 4.6.2 钉钉实现终端报警
        • 4.6.2.1 添加钉钉机器人
        • 4.6.2.2 zabbix-server服务端操作
        • 4.6.2.3 web页面配置

四、Zabbix 监控服务器 【常用】

使用的最多

实验环境

4.1 Zabbix 介绍

4.1.1 Zabbix 是什么?

zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 ( 基于 GPL V2 ) zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent

4.1.2 Zabbix 工作架构

常用组件

zabbix agent:部署在被监控主机上,负责收集被监控主机的数据,并将数据发送给zabbix server。

zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等。

zabbix database:用于存储所有zabbix的配置信息、监控数据的数据库。

zabbix web:zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上。

zabbix proxy:可选组件,用于分布式监控环境中,zabbix proxy代表server端,完成局部区域内的信息收集,最终统一发往server端。

集群监控_第1张图片

Zabbix监控原理:

Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当Zabbix监控某个具体的项目,改项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)

4.1.3 Zabbix 进程构成

zabbix 安装完成后会产生 5 个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、 zabbix_server,zabbix_java_gateway 是可选,这个需要另外安装

  1. zabbix_agentd: 部署在被监控主机上,客户端守护进程,此进程收集客户端数据,例如 cpu 负载、内存、硬盘使用情况 等

  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.1.4 Zabbix 硬件需求

#  图先欠着

Zabbix监控概念

主机(host):                被监控的网络设备,可以写IP或者DNS;
主机组(host group):        主机组用于管理主机,可以批量设置权限;
监控项(item):              具体监控项,items值由独立的keys进行识别;
触发器(trigger):           为某个items设置触发器,达到触发器会执行action动作;
事件(event):               例如达到某个触发器,称之为一个事件;
动作(action):              对于特定事件事先定义的处理方法,默认可以发送信息及发送命令;
报警升级(escalation):       发送警报或执行远程命令的自定义方案,如隔5分钟发送一次警报,共发送5次等。
媒介(media):               发送通知的方式,可以支持Mail、SMS、Scripts等;
通知(notification):        通过设置的媒介向用户发送的有关某事件的信息;
远程命令                      达到触发器,可以在被监控端执行命令;
模板(template):            可以快速监控被监控端,模块包含:item、trigger、graph、screen、application;
web场景(web scennario)      用于检测web站点可用性,监控HTTP关键词;
web前端(frontend):         Zabbix的web接口;
图形(graph)                 监控图像;
屏幕(screens)               屏幕显示;
幻灯(slide show)            幻灯显示;

4.2 构建 Zabbix 监控服务器

实验环境

centos 7

yum 可用

最小化安装

关闭防火墙与 selinux

两个网卡,一个仅主机模式,一个 nat 模式

[root@localhost ~]$ yum -y install lrzsz vim gcc gcc-c++

4.2.1 安装 LAMP 环境

zabbix需要有 lamp 环境

[root@zabbix ~]$ yum -y install mariadb mariadb-server httpd php php-mysql gcc gcc-c++
#安装 mariadb http php , 数据库 centos7 是 mariadb 与 MySQL 一样
[root@zabbix ~]$ systemctl start httpd && systemctl enable httpd 
[root@zabbix ~]$ systemctl start mariadb && systemctl enable mariadb

[root@zabbix ~]$ mysql_secure_installation # mariadb不会自动初始化,手动 mariadb 初始化
……………
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): #mysql的root密码,还没设置,直接回车即可
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y #是否设置root密码,输入y是
New password: root  #输入密码123
Re-enter new password: root #再次数据密码,两次需要一致
Password updated successfully!
Reloading privilege tables..
 ... Success!
....
Remove anonymous users? [Y/n] y #移除匿名用户,输入y是
....
Disallow root login remotely? [Y/n] y #拒绝远程登陆,输入y是
....
Remove test database and access to it? [Y/n] y #移除测试数据库,输入y是
....
Reload privilege tables now? [Y/n] y #刷新权限表,输入y是
....
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
————————————————
[root@zabbix ~]$ mysql -uroot -p #登录数据库
Enter password:  #密码
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> quit;

4.2.2 安装 Zabbix 程序 (服务端)

[root@zabbix ~]$ rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm 
#显示安装进度,从官方yum源安装
[root@zabbix ~]$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX #导入密钥
[root@zabbix yum.repos.d]$ yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
#安装zabbix连接数据库,web页面,agent部署在被监控的主机上
#被监控端只需要部署agent即可

初始化数据库(zabbix-server端操作)

[root@zabbix ~]$ mysql -uroot -p123
………………
MariaDB [(none)]> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
#debian 这样做导入会报错,(解决:create database zabbix)
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
#导入zabbix初始化数据

[root@zabbix ~]$ cd /usr/share/doc/zabbix-server-mysql-3.2.11/
[root@zabbix zabbix-server-mysql-3.2.11]$ zcat create.sql.gz | mysql -uroot -p zabbix
Enter password: 123
#zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix -e "use zabbix;"
#zcat,先解压,在通过cat打开

[root@zabbix zabbix-server-mysql-3.2.11]$ mysql -uroot -p123 << EOF #查看表
> use zabbix;
> show tables;
> EOF
………………

配置zabbix_server的配置文件

[root@zabbix ~]$ cd 
[root@zabbix ~]$ vim /etc/zabbix/zabbix_server.conf 
DBHost=localhost #连接数据库地址 81行
DBName=zabbix #连接数据库名 91行
DBUser=zabbix #连接数据库用户名 107行
DBPassword=zabbix #连接数据库用户密码 115行
[root@zabbix ~]$ systemctl start zabbix-server && systemctl enable zabbix-server 

编辑Zabbix前端的PHP配置,zabbix_web

[root@zabbix ~]$ vim /etc/httpd/conf.d/zabbix.conf
        php_value date.timezone Asia/Shanghai #取消注释,修改时区为上海 19行 
[root@zabbix ~]$ systemctl restart httpd

调整同步时间

[root@zabbix ~]$ yum -y install ntpdate
[root@zabbix ~]$ ntpdate cn.pool.ntp.org

修改apached的配置文件设置访问路径


[root@zabbix ~]$ vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html" #修改为/usr/share/zabbix/ 119行
[root@zabbix ~]$ systemctl restart httpd

浏览器输入10.1.1.11(zabbix服务端的IP)或者10.1.1.11/zabbix 访问

4.2.3 通过 web 安装 zabbix

1. 下一步
集群监控_第2张图片

2. 检测的php的相关依赖,点击下一步

集群监控_第3张图片

3. 配置数据库相关信息

集群监控_第4张图片

4. zabbix服务器端的相关信息,默认就行,下一步
集群监控_第5张图片

5. 输出了刚才设置的信息,直接点下一步

集群监控_第6张图片

6. 安装成功

集群监控_第7张图片

7. 然后就跳到登录界面了,用户名是Admin,密码是zabbix

集群监控_第8张图片

8. 配置server web展示显示中文

集群监控_第9张图片

4.2.4 添加本机监控 (被监控端)

#修改被监控端的配置文件,agent前面已经安装
[root@centos1 ~]$ vim /etc/zabbix/zabbix_agentd.conf 
Server=10.10.10.11 #zabbix-server的IP
# ListenPort=10050 默认监听段口是tcp10050

ServerActive=10.10.10.11 #zabbix-server的IP

Hostname=10.10.10.11 #本机的ip地址,或者可解析的主机名,但要与web界面一致

[root@centos1 ~]$ systemctl restart zabbix-agent && systemctl enable zabbix-agent
[root@centos1 ~]$ netstat -natp |grep 10050
tcp    0    0 0.0.0.0:10050   0.0.0.0:*   LISTEN   11107/zabbix_agentd 
tcp6   0    0 :::10050             :::*   LISTEN   11107/zabbix_agentd 

4.2.5 在web页面添加监控主机

点击配置—主机,删除这个停用的监控,自己进行配置

集群监控_第10张图片
点击创建主机
集群监控_第11张图片

下面是主机的添加过程

首先创建一个主机组
配置-----> 主机群组-----> 创建主机群组(web页面右上角)-----> 添加组名,如:Zabbix agents(在弹出框中输入组名)----->添加

添加一个主机
配置 ----->主机 -----> 右上角在群组那里选择Zabbix agents-----> 点击创建主机

集群监控_第12张图片

给此主机引用一条模板,模板定义了监控那些选项数据
添加打勾后划到最下面选择

集群监控_第13张图片

然后点击模板弹框下面的选择,这里就会添加上刚才勾选的,然后点击添加才能添加上

集群监控_第14张图片

下面是添加完后的效果图

集群监控_第15张图片

最后看下图形效果
检测中-----> 图形----->然后就是选择要看什么了,如下图:

集群监控_第16张图片

中文乱码问题

在 win10 中 win+R 键输入 fonts 选择一种字体文件复制到 zabbix 主机
集群监控_第17张图片
集群监控_第18张图片

然后字体上传到zabbix-server服务器

[root@zabbix ~]$ mv msyh.ttc /usr/share/zabbix/fonts/
[root@zabbix ~]$ cd /usr/share/zabbix/fonts/
[root@zabbix fonts]$ mv msyh.ttc msyh.ttf && chmod a+x msyh.ttf
[root@zabbix  fonts]$ vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME',           'graphfont'); // font file name
改为
define('ZBX_GRAPH_FONT_NAME',           'msyh'); // font file name

刷新页面 替换字体完成

集群监控_第19张图片

4.3 添加主机/自动发现

4.3.1 添加监控主机

监控另外一台linux服务器(10.1.1.12) 本次使用的是centos7系统,选择对应的版本,centos6源码包也提供了

[root@web-1 ~]$ yum -y install  httpd zabbix-agent-3.2.1-1.el7.x86_64.rpm
#上传安装包进行安装
[root@web-1 ~]$ systemctl start httpd && systemctl enable httpd 
[root@web-1 ~]$ echo "hello" > /var/www/html/index.html #修改默认网页
[root@web-1 ~]$ curl localhost #查看默认网页
hello
[root@web-1 ~]$ vim /etc/zabbix/zabbix_agentd.conf 
Server=10.1.1.11 #zabbix-server的ip
# ListenPort=10050 默认监听段口是tcp10050
ServerActive=10.1.1.11 #zabbix-server的ip
Hostname=10.1.1.12 #本机的ip地址,或者可解析的主机名

[root@web-1 ~]$ systemctl start zabbix-agent && systemctl enable zabbix-agent

添加主机遇上面步骤一样

集群监控_第20张图片
集群监控_第21张图片
集群监控_第22张图片

4.3.2 自动添加(批量添加监控节点)

如果服务器比较多,一台一台在web页面配置比较麻烦,接下来配置自动发现规则,自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法

4.3.2.1 服务器初始化

两台 centos7 服务器
10.1.1.13——agent(被监控端)
10.1.1.14——agent(被监控端)

[root@web-2 ~]$ scp [email protected]:/root/zabbix-agent-3.2.1-1.el7.x86_64.rpm
[root@web-2 ~]$ yum -y install  httpd zabbix-agent-3.2.1-1.el7.x86_64.rpm
#拷贝被监控端 rpm 包并安装
[root@web-2 ~]$ systemctl start httpd && systemctl enable httpd
[root@web-2 ~]$ echo "hello" >> /var/www/html/index.html
[root@web-2 ~]$ curl localhost
hello
[root@web-2 ~]$ vim /etc/zabbix/zabbix_agentd.conf 
Server=10.1.1.11 #zabbix-server的ip
# ListenPort=10050 默认监听段口是tcp10050
ServerActive=10.1.1.11 #zabbix-server的ip
Hostname=10.1.1.13 #本机的ip地址,或者可解析的主机名
#另一台 web-3 IP是 10.1.1.14 其余步骤一致
[root@web-2 ~]$ systemctl start zabbix-agent && systemctl enable zabbix-agent

配置自动发现步骤
在web页面点击**【配置】**------> 【自动发现】----->【**创建发现规则】添加一个自动发现规则,定时扫描一个网段的机器有没有在线,然后在 【配置】------> 【动作】----->【事件源】**选择自动发现的动作,告诉他,一旦自动发现 发现了一台机器后,就添加到主机监控里

4.3.2.2 配置自动发现动作

【配置】------> 【动作】----->【事件源】选择自动发现的动作,然后点击【创建动作】

集群监控_第23张图片

接下来就会跳转动作配置页面

集群监控_第24张图片

**然后点击操作,添加操作细节,最后点击 【添加】 **

集群监控_第25张图片

4.3.2.3 配置自动发现规则

在web页面点击**【配置】------> 【自动发现】----->【创建发现规则】**添加一个自动发现规则

集群监控_第26张图片

接下来就会跳转自动发现规则配置页面

集群监控_第27张图片
集群监控_第28张图片

然后点击【监测中】------> 【自动发现】会发现两台主机已经被自动发现

集群监控_第29张图片

以后 10.1.1.13-100 范围的 IP 主机都会被自动发现并添加

集群监控_第30张图片

4.4 Zabbix 监控 Nginx 并发(自定义监控项、模板)

把10.10.10.12服务从zabbix-web配置页面删掉,然后停了这台主机的httpd服务

使用之前10.10.10.12服务器操作

4.4.1 源码编译安装 Nginx 服务器并开启状态统计模块

源码编译安装 Nginx 服务器

[root@web-1 ~]$ systemctl stop httpd && systemctl disable httpd #关闭 htpd 以防端口被占用
[root@web-1 ~]$ tar -xf nginx-1.2.6.tar.gz && cd nginx-1.2.6 #上传源码包并解压
[root@web-1 nginx-1.2.6]$ yum -y install pcre pcre-devel.x86_64 zlib zlib-devel gcc gcc-c++
#使用本地 yum 源安装依赖等
[root@web-1 nginx-1.2.6]$ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module 
[root@web-1 nginx-1.2.6]$ meke && meke install #编译安装
[root@web-1 nginx-1.2.6]$ echo $?
[root@web-1 nginx-1.2.6]$ echo "123123" > /usr/local/nginx/html/index.html 
[root@web-1 nginx-1.2.6]$ /usr/local/nginx/sbin/nginx #启动
[root@web-1 nginx-1.2.6]$ curl localhost
123123

开启健康检测

[root@web-1 nginx-1.2.6]$ vim /usr/local/nginx/conf/nginx.conf
...
server {

        location / {
            root   html;
            index  index.html index.htm;
        }
        #添加如下内容
        location /nginx-status { #开启健康统计
                stub_status on;
        }

.......
}
.....
[root@web-1 nginx-1.2.6]$ /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@web-1 nginx-1.2.6]$ kill -HUP $( cat /usr/local/nginx/logs/nginx.pid ) #重载

浏览器访问 IP/nginx-status
集群监控_第31张图片

4.4.2 编写 Nginx 监控脚本,在被监控端

[root@web-1 nginx-1.2.6]$ cd
[root@web-1 ~]$ vim nginx-status.sh
#!/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

[root@web-1 ~]$ chmod a+x nginx-status.sh #赋予权限
[root@web-1 ~]$ bash nginx-status.sh active
1
[root@web-1 ~]$ mv nginx-status.sh /etc/zabbix/zabbix_agentd.d/


#10.1.1.13执行操作
[root@web-2 ~]$ while 2>1
do
curl 10.10.10.12
done

将自定义的 UserParameter 加入配置文件,然后重启 agentd

[root@web-1 ~]$ vim /etc/zabbix/zabbix_agentd.conf 
UnsafeUserParameters=1 #是否开启自定义脚本,改为1
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx-status.sh $1 #添加这一行

[root@web-1 ~]$ systemctl restart zabbix-agent.service

zabbix_get 获取数据 (10.1.1.11)
zabbix-server端操作

[root@zabbix ~]$ yum -y install zabbix-get-3.2.11-1.el7.x86_64.rpm 
[root@zabbix ~]$ zabbix_get -s 10.1.1.12 -k 'nginx.status[requests]' 
102402
[root@zabbix ~]$ zabbix_get -s 10.1.1.12 -k 'nginx.status[ping]' 
1

4.4.3 导入模板,配置nginx监控主机

然后在web配置页面,点击**【 配置 】-----> 【 模板 】------>【 导入 】**

集群监控_第32张图片
集群监控_第33张图片
然后配置nginx主机监控

【配置】-------->【主机】--------->【创建主机】

集群监控_第34张图片

然后添加模板

集群监控_第35张图片

刚刚添加的已经生效

集群监控_第36张图片

4.5 web场景 / 组合图

web场景用于模拟客户端访问,检测服务器是否还正常

组合图把重要的参数放到一张图展示

4.5.1 web场景

创建web场景

【配置】------>【主机】------->【nginx服务器】------>【创建应用集】

集群监控_第37张图片

创建 【应用集】

集群监控_第38张图片

添加

集群监控_第39张图片

htpd-code 有了后选择 【web场景】

集群监控_第40张图片

创建 【web场景】

集群监控_第41张图片

选择**【步骤】,点击【添加】**

集群监控_第42张图片

会弹出web方案步骤页面

集群监控_第43张图片

最后点击**【场景】,点击下面的【添加】**,场景构建完成

集群监控_第44张图片

#nginx服务器添加一个测试页面10.10.10.12
[root@web-1 ~]$ echo “test” >> /usr/local/nginx/html/test.html

场景只会收集http-code,并不会报警,所以还要创建触发器

【配置】-------->【主机】--------->选择 nginx-服务器-1,然后点击**【触发器】**

集群监控_第45张图片

点击 【创建触发器】

集群监控_第46张图片

会跳转到触发器配置页面

集群监控_第47张图片

已经创建完成并启用了

在这里插入图片描述

删除测试页面
[root@web-1 ~]$ rm -f /usr/local/nginx/html/test.html

稍等一会就可以看到页面报警了

集群监控_第48张图片

添加上即可恢复
[root@web-1 ~]$ echo “test” > /usr/local/nginx/html/test.html

4.5.2 组合图

【监测中】------> 【聚合图形】------->【创建聚合图形】
集群监控_第49张图片

跳转到聚合图形配置页面

集群监控_第50张图片

选择刚刚创建的聚合图形

集群监控_第51张图片

编辑聚合图形

集群监控_第52张图片

更改

集群监控_第53张图片

添加一个监控项的图形

集群监控_第54张图片

点击+号,就会又多一列,然后点击 【更改】

集群监控_第55张图片

添加时钟

集群监控_第56张图片

以此类推添加

集群监控_第57张图片

4.6 Zabbix 联合钉钉实现终端报警

4.6.1 报警设置 (web页面)

点击这个小人,正在发送的消息,设置报警信息

集群监控_第58张图片

断开服务器测试,不同的警告就会对应不同的声音

4.6.2 钉钉实现终端报警

4.6.2.1 添加钉钉机器人

  1. 登陆钉钉,创建一个群聊,最少两个人集群监控_第59张图片

  2. 添加机器人

集群监控_第60张图片
集群监控_第61张图片

  1. 机器人设置
    集群监控_第62张图片

会有一个webhook,复制下来。后面会有用

https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxx

4.6.2.2 zabbix-server服务端操作

[root@zabbix ~]$ vim tocken.sh
#!/bin/bash
to=$1 #给谁
subject=$2 #标题
text=$3 #内容
curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxx' \ #改成自己的
-H 'Content-Type: application/json' \
-d '
{"msgtype": "text",
"text": {
"content": "'"$text"'"
},
"at":{
"atMobiles": [ "'"$1"'" ],
"isAtAll": false
}
}'

[root@zabbix ~]$ chmod a+x token.sh 
[root@zabbix ~]$ chown zabbix.zabbix token.sh 
[root@zabbix ~]$ ./token.sh 1 2 告警 #机器人的设置关键字(告警),所以必须有关键字

把tocken脚本放到/usr/lib/zabbix/alertscripts/目录下
[root@zabbix ~]$ cp -a token.sh /usr/lib/zabbix/alertscripts/

遇到的报错1 {"errcode":43002,"errmsg":"需要POST请求"}curl: (6) Could not resolve host: ; 未知的错误 ./token.sh.bak:行6: -H: 未找到命令
原因 :windows 复制粘贴格式或字符出现了问题
解决 : 手动敲一遍,
遇到的报错2 [root@zabbix ~]$ ./token.sh 1 2 3 {"errcode":300001,"errmsg":"param error"}
原因 : 机器人没有 3 这个关键字
解决 : 3 换成机器人的关键字 或 添加关键字

4.6.2.3 web页面配置

1. 创建媒体类型
【配置】------> 【报警媒介类型】----->,然后点击【创建媒介类型】

集群监控_第63张图片
2. 添加监控方式

监控方式添加参数

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

集群监控_第64张图片

3. 创建报警动作
【配置】------> 【动作】----->【触发器】,然后点击**【创建动作】**

集群监控_第65张图片

接下来就会跳转动作配置页面

集群监控_第66张图片

4.错误报警信息参数
点击操作 ,添加操作细节

标题(默认接收人)改为:
故障{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}

集群监控_第67张图片

5. 错误恢复报警信息设置

点击恢复操作,添加操作细节

标题(默认接收人)改为:
恢复{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}

集群监控_第68张图片

6. 给用户绑定媒体

**【管理】------>【用户】**选择Admin

集群监控_第69张图片
集群监控_第70张图片
集群监控_第71张图片

断掉 nginx 服务器的网卡测试

集群监控_第72张图片

稍等三分钟

集群监控_第73张图片

恢复网卡后 (稍等两分钟)

集群监控_第74张图片

你可能感兴趣的:(linux,linux,centos,zabbix,nagios)