zabbix的简单操作(查看监控,自定义监控和钉钉监控报警)
zabbix是一种监控软件,我用的是centos7.5版本
一:我已经添加好主机了,接下来就是看看怎么查看监控内容的
1.打开zabbix服务的web网页
2.检测最新数据,要在最新数据中筛选
3.查看图像
二: 上面只是最简单的查看客户机的方法,接下来演示一下自定义监控
1.zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁 盘、网卡等常规监控, 只要新加主机关联此模板,就可自动添加这些监控项
自定义监控项,在zabbix server上创建监控项前可以先使用zabbix_get来判断脚本是否正确。
在zabbix server端使用yum安装zabbix_get
命令:cd /etc/yum.repos.d/
配置yum源
命令:rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
命令:yum -y install zabbix-get.x86_64
可以使用zabbix_get -help查看用法
注意:zabbix_只能在服务端操作
然后继续操作
命令:zabbix_get -s 192.168.175.102 -p 10050 -k "system.uname"
注释:-s 客户端的IP -p 客户端端口,默认10050 -k 监控项的key
2.实现自定义监控
自定义语法
UserParameter=<key>,<shell command>
UserParameter=login-user,who|wc -l
UserParameter=login-user,/bin/sh /server/scripts/login.sh
3.agent注册(客户端)
命令:cd /etc/zabbix/zabbix_agentd.d/
命令:vim userparameter_login.conf
UserParameter=login-zabbix1,who|wc -l
UserParameter=login-zabbix2,who|wc -l
UserParameter=login-zabbix3,who|wc -l
注意:key名字要唯一
然后重启服务
命令:systemctl restart zabbix-agent.service
然后在服务端进行测试
命令:zabbix_get -s 192.168.175.103 -p 10050 -k "login-zabbix1"
命令:zabbix_get -s 192.168.175.103 -p 10050 -k "login-zabbix2"
命令:zabbix_get -s 192.168.175.103 -p 10050 -k "login-zabbix3"
因为在客户端就注册了三个用户,所以没有login-zabbix4,就会报错
4.在服务端注册(网页操作)
(1)点击配置------>点击模板------>点击创建模板
(2)按照操作要求填写
ceshi login-zabbix
(3)创建应用集
点击应用集----->创建应用集
(4)创建监控项
点击监控项------>创建监控项
(5)创建触发器
(6)创建图形
点击图形------>创建图形
(7)主机关联模板
点击配置---->主机
一个主机可以关联多个模板
测试一下,在浏览器上同时开启四个zabbix网页
我用火狐浏览器添加了四个,谷歌浏览器上就报警了,这样就配置成功了
三:监控报警
(1)第三方报警平台(钉钉)
先指定要发送的群,在群里创建机器人
添加机器人
可以参考 “说明文档”
创建测试文档
vim ceshi.sh
curl 'https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51' \ #添加自己的webhook
-H 'Content-Type: application/json' \
-d '{"msgtype": "text",
"text": {
"content": "告警"
}
}'
然后执行测试,如果成功会在钉钉上发送消息
(2)查看默认脚本存放位置
命令:cat /etc/zabbix/zabbix_server.conf|grep AlertScriptsPath
命令:cd /usr/lib/zabbix/alertscripts #进入默认脚本目录
注意:这次脚本是用python写的所以需要配置python环境才行
命令:yum -y install python-pip #安装python
命令:pip install requests #安装依赖包
注意:如果安装失败,请配置阿里云yum源
命令:mkdir ~/.pip #创建阿里云pip
命令:vim /root/.pip/pip.conf #写入下以内容
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
看见这些说明安装成功,然后开始写脚本
命令:vim /usr/lib/zabbix/alertscripts/dingding.py #内容如下
curl 'https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51' \
-H 'Content-Type: application/json' \
-d '{"msgtype": "text",
"text": {
"content": "告警"
}
}'
[root@localhost alertscripts]# cat dingding.py
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51"
user=sys.argv[1]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
user
],
"isAtAll": False
}
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/local/zabbix/logs/dingding.log"):
f=open("/usr/local/zabbix/logs/dingding.log","a+")
else:
f=open("/usr/local/zabbix/logs/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n" + str(text))
f.close()
命令:chown zabbix.zabbix dingding.py #添加权限
命令:mkdir -p /usr/local/zabbix/logs #添加消息文件
命令:touch /usr/local/zabbix/logs/dingding.log #添加消息文档
命令:chown -R zabbix.zabbix /usr/local/zabbix/logs/dingding.log #给消息文档添加权限
命令:chown -R zabbix.zabbix /usr/local/zabbix/logs #给消息文件添加权限
然后在测试一下,是不是在钉钉发送消息
命令:./dingding.py test 185xxxxxxxx "这个条测试信息,忽略"
注意:这个号码意思是你发送的群里有这个号码,引号里的内容是在钉钉的关键字里设置的
(3)在zabbix网页里设置
三个参数
创建报警媒介. 三个参数分别是:ALERT.SENDTO ALERT.SUBJECT ALERT.MESSAGE
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
接下来配置动作
点击配置------>动作
{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}
下图表示触发5次动作,每隔120秒触发一次,告警发给 admin 用户,用钉钉媒介发送.
恢复参数
{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}
其他默认
测试将虚拟机关机一下,钉钉上弹出警告,ok完成
总结:。。。。。。。。。。。此处省略一万字
zabbix的简单操作(查看监控,自定义监控和钉钉监控报警)的更多相关文章
- zabbix的简单操作(监控客户端MySQL数据包库)
环境准备: 192.168.175.102 zabbix服务端 192.168.175.106 zabbix客户端(监控MySQL) 命令:iptables -F #清空防火 ...
- zabbix的简单操作(proxy代理分布式监控)
分布式监控 作用:分担压力,减轻负载,多机房监控 通过zabbix proxy的搭建,zabbix server可以远程从proxy获取到数据,这里的环境相当于zabbix server具有一个公网i ...
- zabbix的简单操作(自动发现)
zabbix需要监控很多服务器,比如公司进购一批新的服务器,如何自动添加到zabbix服务上 自动发现: zabbix Server主动发现所有客户端,然后将客户端记录下来 自动注册: zabbix ...
- zabbix 自定义key与参数Userparameters监控脚本输出
1.修改agent配置文件: 通过yum安装的zabbix-agent配置文件路径为/etc/zabbix/zabbix_agentd.conf 里面定义我们自己配置文件路径:Include=/etc ...
- Zabbix学习之路(七)之Nginx的状态监控
1.安装nginx [root@linux-node2 ~]# yum install -y nginx [root@linux-node2 ~]# mkdir /etc/zabbix/zabbix_ ...
- 云监控自定义HTTP状态码说明
您在使用站点监控时,返回的6XX状态码均为云监控自定义HTTP状态码,具体含义如下表所示: 状态码 含义 备注 610 HTTP连接超时 监测点探测您的网站时出现连接超 ...
- 建设DevOps统一运维监控平台,全面的系统监控 Zabbix VS Nagios VS Open-Falcon OR Prometheus
前言 随着Devops.云计算.微服务.容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器.虚拟机.物理机不一而足.面对动辄几百上千个虚拟机.容 ...
- zabbix监控web应用日志报警并发送消息到钉钉
首先在钉钉上开启钉钉机器人功能 说明:自定义关键词是zabbix发送过来的消息内容必须含有你定义的ERROR或者error字段,否则消息无法发送过来 ip地址段:一般都是zabbix-server的I ...
- zabbix监控钉钉报警
1. bash脚本 #!/bin/bash to=$1 subject=$2 text=$3 #此处的 xxxxx 就是刚刚复制存留的 api 接口地址. curl -i -X POST \ 'htt ...
随机推荐
- 直连网(directly-connected networks)个数的计算
直连网分为两种,point-to-point link和multiple access link, 如图: 对一个网络数直连网个数时,以上两种link都要计算.例子如下: 1. How many di ...
- python学习笔记:(十)函数
python中定义函数使用def关键字,一般格式如下: def 函数名(参数列表): 函数体 如: #无参数 def helloworld(): print("Hello World!&qu ...
- Jmeter安装篇(win10)
参考博文:https://blog.csdn.net/a13124837937/article/details/79628838 以下是我按照参考博文进行的实际操作过程,此篇只为记录,尽量精简内容. ...
- Nginx日志监控工具
ngxtop是一个基于python的程序,可以在Python上安装.ngxtop通过实时解析nginx访问日志, 并将结果(nginx服务器的有用指标)输出到终端. 主要的功能 当前有效请求 总请求计 ...
- 《Python编程从0到1》笔记5——图解递归你肯定看完就能懂!
本小节的示例比较简单,因为在每次递归过程中原问题仅缩减为单个更小的问题.这样的问题往往能够用简单循环解决.这类递归算法的函数调用图是链状结构.这种递归类型被称为“单重递归”(single recurs ...
- python 并发编程 基于线程池实现并发的套接字通信
不应该让服务端随着 并发的客户端数量增多,而无数起线程,应该用线程池,限制线程数量,控制最大并发数 io密集型程序,最大并发数是2 客户端 from socket import * client = ...
- 为什么要malloc()?何时要malloc()?如何使用malloc()?
今日写程序,突然想到一个问题,为什么有时候不要malloc,为什么有时候要呢!好好查资料才了解到一些原理. 函数原型:void *malloc(unsigned int num_bytes); //分 ...
- Hbase 0.92.1 Replication
原集群 服务器名称 服务 sht-sgmhadoopnn-01 Master,NameNode,JobTracker sht-sgmhadoopdn-01 RegionServer,DataNode, ...
- java学习笔记 - 线程池(一)
线程池(Thread Pool):把一个或多个线程通过统一的方式进行调度和重复使用的技术,避免了因为线程过多而带来使用上的开销 优点:(面试题)可重复使用已有线程,避免对象创建.消亡和过度切换的性能开 ...
- CF 11D A Simple Task 题解
题面 这道题的数据范围一看就是dfs或状压啦~ 本文以状压的方式来讲解 f[i][j]表示目前的节点是i,已经经历过的节点的状态为j的简单环的个数: 具体的转移方程和细节请看代码: PS:(i& ...