GrayLog+nxlog采集邮箱登录日志csv文件并实现邮箱异地登录钉钉机器人告警

场景如下

某厂商邮箱的登录日志为xlsx/csv格式

只有如下四个字段 登录时间,邮箱地址,登录IP,登录方式

(图片可点击放大查看)

想要根据邮箱地址关联出员工姓名,工号等相关

并且GeoIP地址库根据IP地址查询登录IP所在地理位置信息

比如登录的IP地理位置是非国内地址时实现钉钉机器人告警

实现思路及实践参考链接

1、csv是否可以转成sylog格式的日志发到GrayLog

解决办法:nxlog xm_csv功能

方法来源链接地址:

https://nxlog.co/question/6063/nxlog-read-multiple-csv-files-and-send-it-siem
https://gitlab.com/nxlog-public/contrib/-/blob/master/guide_configs/xm_gelf_example_csv-nxlog.conf

(图片可点击放大查看)

2、利用GrayLog的lookup table+pipeline处理功能进行关联查询,实现关联出员工工号,员工姓名等其他字段

解决办法:这个之前有实现过,移植过来即可

3、GrayLog告警+PrometheusAlert告警模板实现钉钉告警时呈现出相关告警字段

解决办法:这个之前有实现过,告警模板修改即可

具体实现的详细步骤如下

1、GrayLog服务器安装nxlog-ce并配置读取csv文件

yum localinstall nxlog-ce-2.11.2190-1_rhel7.x86_64.rpm 
cp /etc/nxlog.conf /etc/nxlog.conf_bak
echo > /etc/nxlog.conf
vi /etc/nxlog.conf

修改为如下内容

## This is a sample configuration file. See the nxlog reference manual about the
## configuration options. It should be installed locally under
## /usr/share/doc/nxlog-ce/ and is also available online at
## http://nxlog.org/docs

########################################
# Global directives                    #
########################################
User nxlog
Group nxlog

LogFile /var/log/nxlog/nxlog.log
LogLevel INFO

########################################
# Modules                              #
########################################
<Extension _syslog>
    Module      xm_syslog
</Extension>

<Extension gelf>
    Module      xm_gelf
</Extension>

<Extension charconv>
    Module              xm_charconv
    AutodetectCharsets  gbk,utf-8, euc-jp, utf-16, utf-32, iso8859-2
</Extension>

<Extension csv>
    Module      xm_csv
    Fields      $time, $email_address, $loginIP, $method
    FieldTypes  string, string, string,string
    Delimiter   ,
</Extension>

<Input file>
    Module      im_file
    File        "/home/nxlog/login.csv"
    Exec        csv->parse_csv();
</Input>

<Output udp>
    Module      om_udp
    Host        192.168.31.230
    Port        12201
    OutputType  GELF_UDP
</Output>

<Route csv_to_gelf>
    Path        file => udp
</Route>

(图片可点击放大查看)

启动nxlog服务

cd /home/
mkdir nxlog
chown -R nxlog:nxlog nxlog/
cd nxlog
rz上传邮件登录日志的csv文件
chown -R nxlog:nxlog login.csv 
chmod 777 login.csv 
firewall-cmd --add-port=12201/udp --permanent 
firewall-cmd --reload
systemctl restart nxlog
systemctl enable nxlog
如果有报错排查nxlog的运行日志
tail -f /var/log/nxlog/nxlog.log 

说明:只有csv文件发生变化时才会产生日志

2、GrayLog配置GELF INPUT用于接收日志

(图片可点击放大查看)

(图片可点击放大查看)

并配置相应的Stream

(图片可点击放大查看)

3、配置LookupTable和Pipeline

LookupTable配置过程及相关csv文件截图如下

(图片可点击放大查看)

(图片可点击放大查看)

(图片可点击放大查看)

pipeline规则语法如下

rule "email2username_lookup_table"
when 
  //  true
   has_field("email_address") AND
   is_not_null(lookup_value("email2username",to_string($message.email_address)))
then 
    let email_addresslookup_multivalue = lookup("email2username",to_string($message.email_address));
    let email_addressmultivalue = split("#",to_string(email_addresslookup_multivalue.value));
    set_field("Employee_Username",to_string(email_addressmultivalue[0]));
    //debug($message.Employee_Username);
    set_field("Employee_Mobile",to_string(email_addressmultivalue[1]));
     //debug($message.Employee_Mobie);
    set_field("Employee_alias_emailaddress",to_string(email_addressmultivalue[2]));
    //debug($message.Employee_alias_emailaddress);
     set_field("Employee_ID",to_string(email_addressmultivalue[3]));
     //debug($message.Employee_ID);
end

(图片可点击放大查看)

pipeline的配置,并应用到对应的Stream中

(图片可点击放大查看)

4、日志查询效果如下

可以看到关联查询出来的字段都出来了

(图片可点击放大查看)

5、配置并优化PrometheusAlert告警模板

(图片可点击放大查看)

6、GraylogAlert告警条件配置

(图片可点击放大查看)

(图片可点击放大查看)

(图片可点击放大查看)

7、最终的告警效果如下

(图片可点击放大查看)

8、总结

当然这个只是简单的功能实现的测试过程还有很多细节问题需要考虑

例如由于csv文件是一次性导入,这样会出现瞬间钉钉机器人告警数量过大,触发1分钟20条的阈值,导致告警不再产生的情况

需要用一种方式每几秒读几行csv日志文件的方式避免一次性导入造成日志量过大告警停止的问题

这个应该好实现,后续再优化

原文地址:https://cloud.tencent.com/developer/article/2187559

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


电脑钉钉直播声音小怎么处理? 1、声音设置里面,调一下输出设备,把有一个名为扬声器的打开,如果还不行去桌面右下角那个小喇叭设置一下声音输出用扬声器。
12 月 28 日上午,钉钉在杭州正式开启 7.0 版本产品发布会。发布会上,钉钉总裁叶军详细解读了钉钉 7.0 版本的新功能,同时推出了汉仪字库为其量身打造的定制字体“钉钉进步体”。钉钉官方宣布,联合汉仪字库共同打造
      亲们或许不知道钉钉如何创建企业团队的详细操作,那么今天小编就讲解钉钉创建企业团队的操作步骤哦,希望能够帮助到大家呢。
      说起钉钉相信大家应该都不陌生,那么你们晓得绑定支付宝吗?以下就带来了钉钉中绑定支付宝的简单步骤方法。
      最近钉钉软件的使用人群在迅速提高,很多员工都开通了智能办公电话,下文分享的就是钉钉开通智能办公电话的方法,大家可以参考一下哦。
      最近钉钉软件的使用人群在迅速提高,很多老师在直播时都喜欢白板功能,下文分享的就是钉钉中白板功能使用教学,大家可以参考一下哦。
      最近钉钉软件的使用人群在迅速提高,那么怪如何打开专注模式呢?下文分享的就是钉钉开启专注模式的方法,大家可以参考一下哦。
      最近钉钉软件的使用人群在迅速提高,有伙伴在咨询关于认证数字化教师的相关问题,下文分享的就是钉钉认证数字化教师的方法,大家可以参考一下哦。
      最近钉钉软件的使用人群在迅速提高,很多伙伴对于主管管理部门权限的打开不会操作,下文分享的就是钉钉主管管理部门权限打开方法,大家可以参考一下哦。
      刚接触钉钉软件的上班族,打卡后想要查看打卡结果该如何操作呢?下文分享的就是钉钉中查看打卡结果的方法,大家可以参考一下哦。
      很用户都在使用钉钉软件,那么你们知道消息直通车该如何开启呢?下文讲述的就是钉钉开通消息直通车的操作方法,感兴趣的用户可以参考一下哦。
      伙伴下载好使用钉钉时,就会显示未激活的情况,那么该如何处理呢?下面小编为大家整理一下关于钉钉显示未激活处理方法,希望这些方法能够帮助到大家。
      钉钉软件大家都知道吧,那么更新后的员工健康功能该如何使用呢?下文讲述的就是钉钉员工健康功能使用说明,希望大家喜欢。
      很老师都在使用钉钉软件,那么如果是要更改老师任课科该如何操作呢?下文讲述的就是钉钉更改老师任课科目的方法,希望大家喜欢。
      很老师都在使用钉钉软件,那么如果是英语老师该如何布置作业呢?下文讲述的就是钉钉群中给学生布置英语作业的方法,希望大家喜欢。
      最近钉钉软件的使用人群在迅速提高,新用户们对于知识库一定还比较的陌生,下文分享的就是钉钉知识库使用介绍,大家可以参考一下哦。
      很多企业都在使用钉钉软件上微课,那么你们知道企业微课该如何上吗?下文讲述的就是钉钉中看企业微课的操作步骤,感兴趣的用户可以参考一下哦。
      很用户都在使用钉钉软件,那么你们知道家校本教师该如何改作业呢?下文讲述的就是钉钉中家校本教师判作业方法,感兴趣的用户可以参考一下哦。
      最近钉钉软件的使用人群在迅速提高,首先传图识字是新用户们都很苦恼的问题,下文分享的就是钉钉传图识字操作方法,大家可以参考一下哦。
      大家在使用钉钉软件之前都会实名认证吧,那么如何借助借助支付宝进行实名认证呢?下文讲述的就是钉钉借助支付宝进行实名认证的方法,感兴趣的用户可以参考一下哦。