zabbix自定义监控进程、日志文件

zabbix自定义监控进程、日志文件

zabbix自定义监控进程

在客户端安装httpd服务

[root@node1 ~]# yum -y install httpd
[root@node1 ~]# systemctl start httpd
[root@node1 ~]# ss -antl
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port    Process    
LISTEN    0         128                0.0.0.0:22               0.0.0.0:*                  
LISTEN    0         4096               0.0.0.0:10050            0.0.0.0:*                  
LISTEN    0         128                   [::]:22                  [::]:*                  
LISTEN    0         511                      *:80                     *:*                 

编写脚本(检查服务进程)

[root@node1 ~]# mkdir /scripts
[root@node1 ~]# touch /scripts/check_process.sh
[root@node1 ~]# vim /scripts/check_process.sh 
[root@node1 ~]# cat /scripts/check_process.sh 
#!/bin/bashcount=$(ps -ef |grep -Ev "grep|$0"|grep $1|wc -l)echo $count
[root@node1 ~]# chmod +x /scripts/check_httpd.sh 
[root@node1 ~]# /scripts/check_process.sh httpd
5

开启自定义监控功能

[root@node1 ~]# cd /usr/local/etc/
[root@node1 etc]# ls
zabbix_agentd.conf  zabbix_agentd.conf.d
[root@node1 etc]# vim zabbix_agentd.conf
UnsafeUserParameters=1   /修改0为1
UserParameter=check_process[*],/scripts/check_process.sh $1   /添加此行
重启服务
[root@node1 ~]# systemctl restart zabbix_agentd
[root@node1 ~]# ss -antl
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port    Process    
LISTEN    0         128                0.0.0.0:22               0.0.0.0:*                  
LISTEN    0         4096               0.0.0.0:10050            0.0.0.0:*                  
LISTEN    0         128                   [::]:22                  [::]:*                  
LISTEN    0         511                      *:80                     *:*                 

在服务端上查看

[root@zabbix ~]# zabbix_get -s 192.168.159.147 -k check_process["httpd"]
5
[root@zabbix ~]# zabbix_get -s 192.168.159.147 -k check_process["ssh"]
5

增加监控项

在这里插入图片描述

查看可以成功获取到

在这里插入图片描述

添加触发器

在这里插入图片描述

将httpd服务停止查看是否会告警

[root@node1 ~]# systemctl stop httpd

在这里插入图片描述

zabbix自定义监控日志文件

上传log.py脚本

[root@node1 scripts]# ls
check_process.sh  log.py
[root@node1 scripts]# cat log.py 
#!/usr/bin/env python3
import sys
import redef prePos(seekfile):global curpostry:cf = open(seekfile)except IOError:curpos = 0return curposexcept FileNotFoundError:curpos = 0return curposelse:try:curpos = int(cf.readline().strip())except ValueError:curpos = 0cf.close()return curposcf.close()return curposdef lastPos(filename):with open(filename) as lfile:if lfile.readline():lfile.seek(0,2)else:return 0lastPos = lfile.tell()return lastPosdef getSeekFile():try:seekfile = sys.argv[2]except IndexError:seekfile = '/tmp/logseek'return seekfiledef getKey():try:tagKey = str(sys.argv[3])except IndexError:tagKey = 'Error'return tagKeydef getResult(filename,seekfile,tagkey):destPos = prePos(seekfile)curPos = lastPos(filename)if curPos < destPos:curpos = 0try:f = open(filename)except IOError:print('Could not open file: %s' % filename)except FileNotFoundError:print('Could not open file: %s' % filename)else:f.seek(destPos)while curPos != 0 and f.tell() < curPos:rresult = f.readline().strip()global resultif re.search(tagkey, rresult):result = 1breakelse:result = 0with open(seekfile,'w') as sf:sf.write(str(curPos))finally:f.close()return resultif __name__ == "__main__":result = 0curpos = 0tagkey = getKey()seekfile = getSeekFile()result = getResult(sys.argv[1],seekfile,tagkey)print(result)[root@node1 scripts]# chmod +x log.py 
[root@node1 scripts]# ll
total 8
-rwxr-xr-x. 1 root root   76 Jan  8 14:21 check_process.sh
-rwxr-xr-x. 1 root root 1854 Jan  8 15:10 log.py

需要有python3,没有就需要去装

[root@node1 scripts]# python -V
Python 3.9.18

监控httpd的错误日志

[root@node1 ~]# ls /var/log/httpd/
access_log  error_log
[root@node1 ~]# python /scripts/log.py /var/log/httpd/error_log 
0

测试

[root@node1 ~]# cd /var/log/httpd/
[root@node1 httpd]# ls
access_log  error_log
[root@node1 httpd]# echo "Error" >> error_log
发现结果是1
[root@node1 ~]# python /scripts/log.py /var/log/httpd/error_log 
1

修改配置文件

[root@node1 httpd]# rm -rf /tmp/logseek (下次查看时同时需要删除,否则无法生成新的)
[root@node1 httpd]# cd /usr/local/etc/
[root@node1 etc]# ls
zabbix_agentd.conf  zabbix_agentd.conf.d
[root@node1 etc]# vim zabbix_agentd.conf
UserParameter=check_logs[*],/scripts/log.py $1 $2 $3   /添加此行
重启服务
[root@node1 etc]# systemctl restart zabbix_agentd

给zabbix用户设置权限

[root@node1 etc]# cd /var/log/httpd/
[root@node1 httpd]# ls
access_log  error_log
[root@node1 httpd]# ll
total 4
-rw-r--r--. 1 root root    0 Jan  8 14:09 access_log
-rw-r--r--. 1 root root 2889 Jan  8 15:22 error_log
[root@node1 httpd]# setfacl -m u:zabbix:rx /var/log/httpd/
[root@node1 httpd]# getfacl /var/log/httpd/
getfacl: Removing leading '/' from absolute path names
# file: var/log/httpd/
# owner: root
# group: root
user::rwx
user:zabbix:r-x
group::---
mask::r-x
other::---

在服务端查看

[root@zabbix ~]# zabbix_get -s 192.168.159.147 -k check_logs["/var/log/httpd/error_log"]
1

添加监控项
在这里插入图片描述

添加触发器

在这里插入图片描述

手动添加错误查看效果

[root@node1 ~]# echo "Error" >> /var/log/httpd/error_log

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/778370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

filebox在线文件管理工具V1.11.1.1查分吧修改自用版免费分享[PHP]

* 基于:https://down.chinaz.com/soft/35899.htm * 查分吧 修改自用版今日对外分享(自2016年1.10版本以来一直用他云开发:Web环境即时看效果) * 也可以用于本人很多txt/csv通用查询系统的在线管理后台管理数据 * 默认登陆账号filebox密码nidemima * 修改账号密码:21-22行;获取…

通过WSL在阿里云上部署Vue项目

参考&#xff1a; 阿里云上搭建网站-CSDN博客 云服务器重装 关闭当前运行实例 更换操作系统&#xff0c;还有其他的进入方式。 选择ubuntu系统&#xff08;和WSL使用相同的系统&#xff09;。 设置用户和密码。发送短信验证码。 新系统更新。秒速干净的新系统设置完成。 这…

es6 Class基本语法和继承

es6 Class基本语法 class的基本语法&#xff1a; ES6 的class只是一个语法糖&#xff0c;它的绝大部分功能&#xff0c;ES5 都可以做到&#xff0c;新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已 传统用构造函数生成实例 function Point(x, y) {th…

Golang基础-5

Go语言基础 介绍 基础 切片 切片声明 切片初始化 切片基础操作 多维切片 介绍 本文介绍Go语言中切片(slice)(切片声明、切片初始化、切片基础操作、多维切片)等相关知识。基础 切片 切片(slice)是对数组的一个连续片段的引用,切片是一个引用类型。切片是长度可变的数组,…

基于单片机锂电池电量检测数码管显示系统设计

**单片机设计介绍&#xff0c;基于单片机锂电池电量检测数码管显示系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机锂电池电量检测数码管显示系统设计的主要目标是实时、准确地检测锂电池的电量&#xff0c;并…

Java中变量a = 3中的3是存储在栈还是堆?

1、栈区&#xff08;stack&#xff09; 由编译器自动分配释放&#xff0c;存放函数的参数值&#xff0c;局部变量的值等。 2、堆区&#xff08;heap&#xff09; 是一个可动态申请的内存空间&#xff08;其记录空闲内存空间的链表由操作系统维护&#xff09;&#xff0c;在j…

状态模式实战运用

目录 前言 UML plantuml 类图 实战代码 Form State Client 前言 通常一个完整的业务流程中&#xff0c;会经历多个阶段&#xff0c;每个阶段即一个业务状态&#xff0c;不同状态下对应这不同的业务处理逻辑。 无脑堆砌 if else 做判断然后选择对应的业务处理其实也能…

JavaScript es6之前实现继承的方法

1.原型链继承 function Parent() {this.parentProperty true; }function Child() {this.childProperty false; }Child.prototype new Parent();var child new Child(); console.log(child.parentProperty ); // true 优点&#xff1a; 简单直观可以继承原型上的属性和方…

STM32使用USART发送数据包指令点亮板载LED灯

电路连接&#xff1a; 连接显示屏模块&#xff0c;显示屏的SCL在B10&#xff0c;SDA在B11。 程序目的&#xff1a; 发送LED_ON指令打开板载LED灯&#xff0c;发送LED_OFF关闭板载LED灯&#xff0c;与上一个博客不同&#xff0c;这个实际上是实现串口收发文本数据包。 …

FFMPEG C++封装(二)

4 详细设计 这章是FFMPEG C封装库的详细设计。 4.1 Init 该模块初始化FFMPEG库。 4.1.1 Init定义 namespace media { namespace sdk { void MEDIASDK_EXPORT Init(); } }函数说明&#xff1a; Init 初始化FFMPEG库&#xff0c;该函数可调用多次。 4.1.2 Init实现 name…

enscan自动化主域名信息收集

enscan下载 Releases wgpsec/ENScan_GO (github.com) 能查的分类 实操&#xff1a; 首先打开linux 的虚拟机、 然后把下面这个粘贴到虚拟机中 解压后打开命令行 初始化 ./enscan-0.0.16-linux-amd64 -v 命令参数如下 oppo信息收集 运行下面代码时 先去配置文件把coo…

极狐GitLab 14.4 重点功能解读,和禅道集成啦【二】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 更多关于极狐GitLab &#xff1…

如何购买阿里云服务器?2024年阿里云服务器购买流程分享

很多新手用户不知道阿里云服务器购买的流程&#xff0c;不清楚该如何选购云服务器配置才能既满足需求又不会掉“坑”里&#xff0c;为此笔者整理了2024年购买阿里云服务器的完整流程&#xff0c;分为通过云服务器ECS产品页下单购买和通过阿里云活动购买云服务器两种最常见的购买…

速锐得解码广汽智能数字技术车型埃安Y纯电动CAN数据DBC控制策略

随着电动化、智能化、信息化、数字化、网联化、共享化技术的不断应用与汽车行业出行趋势加深&#xff0c;为进一步巩固关键技术优势以及稳供控本、提升盈利能力&#xff0c;整车厂加速推进新能源产业链垂直整合。广汽埃安就是最为杰出的代表&#xff0c;他们不仅布局了芯片&…

大话设计模式之迪米特法则

迪米特法则&#xff0c;也称为最少知识原则&#xff08;Law of Demeter&#xff09;&#xff0c;是面向对象设计中的一个重要原则&#xff0c;其核心思想是降低耦合度、减少对象之间的依赖关系&#xff0c;从而使系统更加灵活、易于维护和扩展。 根据迪米特法则&#xff0c;一…

DataX-Oracle新增writeMode支持update

目录 前言 第一步下载源码 第二步修改源码 1、Oraclewriter 2、WriterUtil 2.1、修改getWriteTemplate方法 2.2、新增onMergeIntoDoString与getStrings方法 3、CommonRdbmsWriter 3.1、修改startWriteWithConnection 3.2、修改doBatchInsert 3.3、修改fillPreparedStatem…

Web Components使用(一)

在使用Web Components之前&#xff0c;我们先看看上一篇文章Web Components简介&#xff0c;其中提到了相关的接口、属性和方法。 正是这些接口、属性和方法才实现了Web Components的主要技术&#xff1a;Custom elements&#xff08;自定义元素&#xff09;、Shadow DOM&#…

轻松解决Composer常见错误

引言&#xff1a; Composer作为PHP的一个重要组成部分&#xff0c;为PHP开发者提供了非常方便的依赖管理工具。但是&#xff0c;难免会在使用中遇到一些常见的错误&#xff0c;如连接错误、内存限制错误、版本冲突错误、锁定文件错误和类未找到错误等。这些错误可能会影响我们…

vue3 项目中引入tailwindcss

Tailwind CSS 的工作原理是扫描所有 HTML 文件、JavaScript 组件以及任何 模板中的 CSS 类&#xff08;class&#xff09;名&#xff0c;然后生成相应的样式代码并写入 到一个静态 CSS 文件中。 官网&#xff1a;https://www.tailwindcss.cn/docs/installation 在项目中使用过…

C#手术麻醉信息系统全套商业源码,自主版权,支持二次开发 医院手麻系统源码

手术麻醉信息系统是HIS产品的中的一个组成部分&#xff0c;主要应用于医院的麻醉科&#xff0c;属于电子病历类产品。医院麻醉监护的功能覆盖整个手术与麻醉的全过程&#xff0c;包括手术申请与排班、审批、安排、术前、术中和术后的信息管理提供支持。 手术麻醉信息系统可与EM…