网站广告文案,做网站不搭建本地环境,windows2008 网站部署,小学网站建设方案之前写过一篇是基于zabbix 5.4的实现文章#xff0c;但是不太详细#xff0c;最近已经有两个小伙伴在zabbix 6上操作#xff0c;发现触发器没有str函数#xff0c;所以更新一下本文#xff0c;基于zabbix 6 0x01 来看看效果
高危指令出发问题告警#xff1a; 发出邮件告… 之前写过一篇是基于zabbix 5.4的实现文章但是不太详细最近已经有两个小伙伴在zabbix 6上操作发现触发器没有str函数所以更新一下本文基于zabbix 6 0x01 来看看效果
高危指令出发问题告警 发出邮件告警 通过历史记录回溯用户指令 0x02 如何实现命令记录
1Linux操作系统可以通过history命令查询执行的历史命令信息 2BASH在每次显示PS1之前都会执行PROMPT_COMMAND定义的内容 -- 可以理解为每次用户在命令行点击一个回车之后PROMPT_COMMAND都会被执行一次 3利用上面两个特性就可以实现命令行的记录 实现修改Linux系统的/etc/bashrc文件
# 创建命令行记录文件
log_file/var/log/cmd.log
# 如果是root的话就创建文件
if [[ $UID -eq 0 ]];then# 判断文件是否存在不存在就创建if [ ! -f $log_file ]thentouch $log_filechmod 777 $log_filechattr a $log_filefi
fi
# 定义PROMPT_COMMAND的内容为函数__set_prompt
export PROMPT_COMMAND__set_prompt
# 定义PROMPT_COMMAND变量为只读变量
readonly PROMPT_COMMAND
# 定义最后一个history id
Last_Hit_Numhistory 1 | awk {print $1}
__set_prompt (){local EXIT$? # 定义命令执行的结果 # 获取本次命令执行的history idexport Cur_HIT_NUMhistory 1 | awk {print $1} # 如果本次执行的命令和上次执行的命令一样则id没有变化不需要进行记录# 如果这里不处理空白回车也会导致记录记录的值就是上次执行的命令if [[ $Cur_HIT_NUM -ne $Last_Hit_Num ]];then# 判断命令是否执行成功if [[ $EXIT -ne 0 ]];thenecho 执行时间$(date %y-%m-%d %T) 用户$(who am i | awk {print \$1\ \\$2\ \\$5}) 当前目录$(pwd) 执行命令$(history 1 | sed s/^[ \t]*//g | cut -d -f2-) 执行失败 $log_fileelseecho 执行时间$(date %y-%m-%d %T) 用户$(who am i | awk {print \$1\ \\$2\ \\$5}) 当前目录$(pwd) 执行命令$(history 1 | sed s/^[ \t]*//g | cut -d -f2-) 执行成功 $log_filefifi# Cur_Hit_Num赋值给Last_Hit_Numexport Last_Hit_Num$Last_Hit_Numreturn $EXIT
}退出用户重新登录或者source一下/etc/bashrc使之生效。
查看记录是否成功 0x03 在Zabbix上配置监控
1创建一个模板Linux_Securtiry 2创建监控项Linuxshell 键值是logrt[/var/log/cmd.log,,,,,,,,]
3新建一个触发器触发告警,添加表达式 4监控项选择上面创建的监控项功能选择find()O为匹配模式我们用like和数据库中的like是一样的意思V是需要匹配的值结果为1填完之后点插入即可。 插入之后就会生成一条表达式 find(/Linux_Security/logrt[/var/log/cmd_log,,,,,,,,],,like, rm )1
如果要匹配多个命令可以复制表达式使用or连接如
find(/Linux_Security/logrt[/var/log/cmd_log,,,,,,,,],,like, rm )1 or
find(/Linux_Security/logrt[/var/log/cmd_log,,,,,,,,],,like, touch )1 or
find(/Linux_Security/logrt[/var/log/cmd_log,,,,,,,,],,like, vi )1最后把问题时间生成模式设置为多重即可。 以下操作沿用5.4的配置没有更新 5配置一个发送邮件的动作 0x04 测试一下 执行命令 查看Zabbix告警 可以看到已经发送了邮件啥时候发恢复邮件呢等最后一条命令不是高危命令就执行恢复了。 查看告警邮件 选择问题点击历史记录可以查看历史的命令记录 --完我是运维少年欢迎关注我的微信公众号~