当前位置: 首页 > 编程日记 > 正文

监控平台zabbix高级配置

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

12月26日任务

19.12 添加自定义监控项目

19.13/19.14 配置邮件告警

19.15 测试告警

19.16 不发邮件的问题处理

添加自定义监控项目

zabbix可以自定义监控项目,满足个性化的需求。例如网站注册量、访问量等具体监控项目就需要编写相关的脚本来监控数据,以满足具体应用的需求。

实例:监控某台web的80端口连接数,并出图(步骤如下)

  1. zabbix监控中心创建监控项目
  2. 针对该监控项目以图形展现

客户端脚本编写

  • 客户端上定义脚本
[root@client ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
##获取80端口转发连接数
netstat -ant | grep ':80' | grep -c ESTABLISHED[root@client ~]# chmod 755 /usr/local/sbin/estab.sh
  • 客户端上编辑配置文件
[root@client ~]# vim /etc/zabbix/zabbix_agentd.conf
//增加
UnsafeUserParameters=1 //表示使用自定义脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh //自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数,如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh//重启zabbix-agent服务
[root@client ~]# systemctl restart zabbix-agent
  • 到服务器端验证
//有值显示表示配置有效
[root@server ~]# zabbix_get -s 192.168.65.134 -p 10050 -k 'my.estab.count'
0

这里测试时最好保持防火墙、selinux的通畅

服务器端web配置

  • 创建监控项

在web网页配置监控项配置-->主机-->client1--> 创建监控项

新建监控项

监控项

填写监控项名称及键值

监控项图形效果预览

  • 创建触发器(报警)

选择触发条件

需要点击添加,使表达式生效


配置邮件告警

开启邮箱相关服务

登录你的163邮箱,点击设置-->POP3/SMTP/IMAP,选中POP3/SMTPIMAP/SMTP这2个服务。(开启IMAP/SMTP服务需要设置客户端授权码,该密码用于后续发邮件)

服务器web配置

创建报警媒介

新建监控项

服务器上编写发邮件脚本

# 脚本存放目录在zabbix_server.conf内定义了
[root@server ~]# grep alert /etc/zabbix/zabbix_server.conf | grep -v "#"
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@server ~]# cd /usr/lib/zabbix/alertscripts/# 编写脚本并赋予权限[root@server alertscripts]# vim mail.py
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from  subprocess import *
def sendqqmail(username,password,mailfrom,mailto,subject,content):gserver = 'smtp.163.com'gport = 25try:msg = MIMEText(unicode(content).encode('utf-8'))msg['from'] = mailfrommsg['to'] = mailtomsg['Reply-To'] = mailfrommsg['Subject'] = subjectsmtp = smtplib.SMTP(gserver, gport)smtp.set_debuglevel(0)smtp.ehlo()smtp.login(username,password)smtp.sendmail(mailfrom, mailto, msg.as_string())smtp.close()except Exception,err:print "Send mail failed. Error: %s" % err
def main():to=sys.argv[1]subject=sys.argv[2]content=sys.argv[3]sendqqmail('18367826960@163.com','你的授权码','18367826960@163.com',to,subject,content)
if __name__ == "__main__":main()[root@server alertscripts]# chmod 777 /usr/lib/zabbix/alertscripts/mail.py
  • 脚本测试
[root@server alertscripts]# python mail.py 18367826960@163.com "test" "this is a test"

创建接收邮件的用户

  • 配置用户

  • 配置报警媒介

  • 配置权限

这里需要到用户组内进行设置

创建告警动作

  • 创建动作

维护状态 非在 维护 :在维护状态时不报警

  • 修改操作: 修改默认信息为
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE}  {EVENT.TIME} 
LEVEL:{TRIGGER.SEVERITY} 
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}

配置操作的细节

  • 配置恢复操作(维护后)

最终告警配置


测试告警

这里在主机内新建一个触发器"负载"用于测试,并调整其监控项刷新时间为10s。

设置表达式{client1:system.cpu.load[percpu,avg1].last()}<1

新建监控项

点击监测中 --> 仪表盘,问题出现,邮箱成功接收到告警邮件

新建监控项


问题处理

在测试中,由于我报警媒介类型设置中脚本名称写错导致邮件无法发送(报找不到文件错误),修改后正常接收邮件。

常用的排查错误的步骤:

  1. 告警媒介类型

    脚本名称、参数及其顺序

  2. 邮件脚本

    脚本存储路径、脚本是否可用、脚本权限

  3. 用户

    用户群组设置、报警媒介选择、权限是否读写

  4. 动作

    触发条件、操作、恢复操作是否配置正确

配置主动、被动模式

在主机(模板)的监控项内配置

模式选择

默认是zabbix客户端即被动模式;主动模式需要选择zabbix客户端(主动式)

转载于:https://my.oschina.net/u/3964535/blog/2993420

相关文章:

linux内存实际占用分析

作者: 黄永兵/译 出处:51CTO.com 阅读提示&#xff1a;本文是为那些经常疑惑的人准备的&#xff0c;“为什么一个简单的KDE文本编辑器要占用25M内存&#xff1f;”导致大多数人认为许多Linux应用程序&#xff0c;特别是KDE或GNOME程序都象ps报告一样臃肿...【51CTO.com独家译文…

CentOS 6.5 下Vim 配置图解

分享个CentOS 6.5 下Vim 配置图文详解&#xff0c;希望对大家有所帮助。 1. 登录并进入你常用的用户名下&#xff0c;查看其主目录 命令&#xff1a; # su xxx $ cd xxx $ ls -a 2.查看并建立目录和文件 首先看你的主目录~/ 下是否有.vimrc文件&#xff0c;没有就输入指令 $ to…

【ACM】杭电OJ 1106 函数atoi

函数atoi是把字符串转化成整数的函数&#xff0c;头文件为 #include "stdlib.h" e.g. 运行环境&#xff1a;Dev-C 5.11 杭电1106 调用了sort函数&#xff0c;运行的时间相对长一些。 #include "stdio.h" #include "string.h" #include "…

docker-dockerfile

docker文件存储驱动dockerfile镜像构建指令示例dockekr镜像是只读的&#xff0c;对容器修改的内容&#xff0c;一旦容器退出&#xff0c;所有的内容将会丢失。镜像是分层的&#xff0c;最上的一层为读写层&#xff08;写时复制和用时分配&#xff09; 文件系统存储驱动&#xf…

proc/[pid]/maps 文件解释

proc/[pid]/maps 文件解释 查看进程的虚拟地址空间是如何使用的。 该文件有6列&#xff0c;分别为&#xff1a; 地址&#xff1a;库在进程里地址范围 权限&#xff1a;虚拟内存的权限&#xff0c;r读&#xff0c;w写,x,s共享,p私有&#xff1b; 偏移量&#xff1a;库在进程里…

【ACM】UVa 1339

【题目】&#xff1a;给定两个长度相同且不超过100的字符串&#xff0c;判断是否能把其中一个字符串的各个字母重排&#xff0c;然后对26个字母做一一映射&#xff0c;使得两个字符串相同。输入两个字符串&#xff0c;输出“YES”或者“NO”。 【分析】&#xff1a;既然字母可…

springBoot PUT请求接收不了参数的解决办法

2019独角兽企业重金招聘Python工程师标准>>> 做项目的时候&#xff0c;想把接口写标准点&#xff0c;于是在更新内容的时候采用put提交内容&#xff0c;但是提交内容时总是获取不到参数&#xff0c;总是选择参数为null。 首先贴出我的put的方法控制器的代码 和之前的…

七牛云内容审核服务被选为「上海首批人工智能创新产品」

近日&#xff0c;上海人工智能应用场景建设实施计划正式发布&#xff0c;这是全国首次面向人工智能应用场景需求的征集计划。上海 10 大人工智能应用场景、19 个具体点位需求和 60 个人工智能创新产品集中首发&#xff0c;其中&#xff0c;上海七牛信息技术有限公司&#xff08…

linux动态库命名规则

说道“动态库版本兼容”&#xff0c;很多人头脑中首先蹦出的就是“Dll Hell”。啊&#xff0c;这曾经让人头疼的难题。时至今日&#xff0c;这个难题已经很好地解决了。 在进一步讨论之前来思考一个问题&#xff1a;Linux下为什么没有让人头痛的“DllHell”&#xff1f; 回答…

如何在同一系统里同时启动多个Tomcat

需要在同一系统里启动多个tomcat,应该怎么处理? tomcat是个服务程序&#xff0c;需要占用几个通讯端口&#xff0c;所以默认情况是不能启动多个tomcat,如果要启动多个tomcat,需要修改配置文件&#xff0c;通过在配置文件设置不同的通讯端口就可以做到.文件 %TOMCAT_HOME%/conf…

【ACM】Uva 455

【题目】&#xff1a;如果一个字符串可以由某个长度为k的字符串重复多次得到&#xff0c;则称该串以k为周期。输入一个长度不超过80的字符串&#xff0c;输出其最小正周期。 注意以下几点&#xff1a; 1、它的最小正周期一定可以被它的长度整除。 2第一个大循环下 i 可以等于…

前端自动化构建工具webpack (二)之css和插件加载总结

1. webpack只识别js文件&#xff0c;其他文件都需要转换成js文件。所有文件都是模块; 2. css解析 css需要css-loader ---》style-loader -----》less-loader less文件还需要less-loader &#xff08;注意书写顺序&#xff09; 3. plugins&#xff1a;他是一个数组&#…

使用command对象操作数据库

1.Command对象查询数据库 protected void Button1_Click(object sender, EventArgs e){//读取web.config节点配置string strcon ConfigurationManager.ConnectionStrings["testjm"].ConnectionString;//实例化sqlConnection对象SqlConnection con new SqlConnectio…

浅析C语言之uint8_t / uint16_t / uint32_t /uint64_t

一、C语言基本数据类型回顾 在C语言中有6种基本数据类型&#xff1a;short、int、long、float、double、char 1、数值类型 1&#xff09;整型&#xff1a;short、int、long 2&#xff09;浮点型&#xff1a;float、double 2、字符类型&#xff1a;char 二、typedef回顾 …

【ACM】UVa 489 刽子手游戏(自顶向下)

【题目】 Hangman Judge是一个猜英文单字的小游戏&#xff08;在电子字典中常会看到&#xff09;&#xff0c;游戏规则如下&#xff1a; 1、答案单字写在纸上&#xff08;每个字元一张纸&#xff09;&#xff0c;并且被盖起来&#xff0c;玩家每次猜一个英文字元&#xff08;le…

ssh远程执行多个命令

shell远程执行&#xff1a; 经常需要远程到其他节点上执行一些shell命令&#xff0c;如果分别ssh到每台主机上再去执行很麻烦&#xff0c;因此能有个集中管理的方式就好了。一下介绍两种shell命令远程执行的方法。 前提条件&#xff1a; 配置ssh免密码登陆 对于简单的命令&am…

【ACM】魔方矩阵

输出魔方矩阵 1、将1放在第一行中间一列&#xff1b; 2、从2开始直到nn止各数依次按下列规则存放&#xff1b;每一个数存放的行比前一个数的行数减1&#xff0c;列数加1&#xff1b; 3、如果上一个数的行数为1&#xff0c;则下一个数的行数为n&#xff08;指最下一行&#x…

iOS 秒数转换成时间,时,分,秒

//转换成时分秒 - (NSString *)timeFormatted:(int)totalSeconds{ int seconds totalSeconds % 60; int minutes (totalSeconds / 60) % 60; int hours totalSeconds / 3600; return [NSString stringWithFormat:"%02d:%02d:%02d",hours, minutes,…

charles和Fiddler感觉哪个更好用

1.fiddler还可以抓HTTPS的包&#xff0c;解析出来都可以2.charles更直观&#xff0c;可能是我先用charles的缘故。charles遍历一个站点&#xff0c;可以右键另存&#xff0c;保存全站文件资源。扒站首选&#xff0c; charles也可以抓https&#xff0c;我改游戏也是抓的https包

systemd用法

一、开机启动 对于那些支持 Systemd 的软件&#xff0c;安装的时候&#xff0c;会自动在/usr/lib/systemd/system目录添加一个配置文件。 如果你想让该软件开机启动&#xff0c;就执行下面的命令&#xff08;以httpd.service为例&#xff09;。 $ sudo systemctl enable http…

C#实现php的hash_hmac函数

from:http://blog.csdn.net/ciaos/article/details/12618487 PHP代码示例如下<?php $res1 hash_hmac("sha1","signatureString", "secret");echo $res1."\n";//ee1b654aa861c41fd5813dc365ef106c9801f8f6echo base64_encode($res…

【ACM】杭电OJ 2015

注意输出格式&#xff01;&#xff01;&#xff01;&#xff01; #include <iostream> #include <cstring> using namespace std; int main () {int m,n,i,sum,flag;while(cin>>n>>m){sum0;flag0;for(i1;i<n;i){sum(2*i);flag;if(flagm){sum/m;cou…

AGC002[BCDEF]题解

F是计数于是就做&#xff08;kan ti jie&#xff09;了 B - Box and Ball 模拟一下 每个盒子开一个d表示有的球数 可能存在红球的打个标记 传递一下就行了 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 2002…

物联网11种通信协议

今天的网络通信技术也是日新月异&#xff0c;有众所周知的WIFI、Bluetooth、Zigbee、2G、3G、4G蜂窝网络&#xff0c;也有新兴的LiFi、AirGig、量子通信等&#xff0c;更有物联网产业爆发前夜&#xff0c;市场衍生出来的一些比较有前景的通信技术&#xff0c;如以窄带物联网NB&…

php 数组的使用

2019独角兽企业重金招聘Python工程师标准>>> 一、字符串和对象&#xff0c;数组之间的相互转换 public function index(){$product array();$product["name"] "apple";$product["price"] 6000;$products array();$products[] $pr…

【ACM】图像旋转

逆时针 //图像旋转 #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> using namespace std; int main () {int a[105][105];int m,n,i,j;while(scanf("%d%d",&n,&m)!EOF)//n行m列 {for(i0;i<n;i…

do一下来了一个redux

导语 一开看redux的时候还是比较蒙的&#xff0c;感觉比较绕&#xff0c;但是又好像是那么回事&#xff0c;接触一个新概念的时候可能都是如此&#xff0c;多去接触就熟悉了&#xff0c;今天就来分享下redux的三大核心为什么就能如此神奇的施展魔法&#xff0c;干撸完源码&…

JavaMail API 概述

JavaMail API提供了一种与平台无关和协议独立的框架来构建邮件和消息应用程序。 JavaMail API提供了一组抽象类定义构成一个邮件系统的对象。它是阅读&#xff0c;撰写和发送电子信息的可选包&#xff08;标准扩展&#xff09;。 JavaMail 规定&#xff0c;用于构造一个接口&am…

利用c语言结构体和union实现类似c++的public,private的实现

最近在看strongswan源代码&#xff0c;看到strongswan的代码框架很有意思&#xff0c;用C语言实现类的思想。当我们编写完一个模块&#xff0c;我们需要提供的是H的文件给其他模块使用&#xff0c;我们希望H文件中就只能包含一些公有函数&#xff0c;和一些类型的申明&#xff…

【ACM】连续出现的字符

【描述】给定一个字符串&#xff0c;在字符串中找到第一个连续出现k次的字符 【输入】第一行包含一个正整数k&#xff0c;表示至少需要连续出现的次数。1<k<1000。第二行包含需要查找的字符串。字符串的长度在1到1000之间&#xff0c;且不包含任何空白字符。 【输出】若…