需求:使用syslog-ng记录服务器的日志信息并把每个用户的操作都记录下来并保存至mysql数据库里,前面介绍了syslog-ng的安装和配置及记录至mysql。这里只介绍bash记录history的用户信息及操作:
将history记录到syslog上面,并实时的传送到了远端的日志集中服务器上。
方法:使用bash4.1的新功能:历史命令保存到syslog!然后使用syslog-ng构建集中型日志服务器收集主机日志。
1、下载bash:
#wget http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz
#tar zxvf bash-4.1.tar.gz –C /tmp/bash-4.1
#cd /tmp/bash-4.1
2、修改源码
(根据个人需要,我只保留了pid,uid,sid等,参数请看目录下的shell.c中):
文件bashhist.c大约708行的位置开始,修改成以下一段:
 if (strlen(line) < SYSLOG_MAXLEN)
    syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY: PID=%d UID=%d User=%s CMD=%s", getpid(),
current_user.uid,current_user.user_name,line);
  else
    {
      strncpy (trunc, line, SYSLOG_MAXLEN);
      trunc[SYSLOG_MAXLEN - 1] = '\0';
      syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY (TRUNCATED): PID=%d UID=%d User=%s CMD=%s", getpid(),
current_user.uid,current_user.user_name, trunc);
    }
}
注:
ppid:跟踪sh切换后的用户
Sid: 跟踪 su 切换后的用户
第二段代表log长度超过600后使用的语句
修改config-top.h文件
view source
print?
1 /*#define SYSLOG_HISTORY*/
2 修改为
3 #define SYSLOG_HISTORY
编译安装
# ./configure  && make && make install
修改用户配置:
将用户的bash换成现在的bash4.1
# vi /etc/passwd
wsg:x:501:501::/home/wsg:/usr/local/bin/bash
这样日志就会记在/var/log/messages

转载于:https://blog.51cto.com/shugao/703044

syslog-ng记录history日志相关推荐

  1. syslog记录history历史记录

    工作中可能会有无聊的***在你服务器上转悠,***智商都不错,所有离开的时候就会删除history记录.怎么办才能记录下用户的历史记录呢? 原理:将history记录到syslog上面,并实时的传送到 ...

  2. linux查询日志命令加过滤,Linux记录-筛选日志sed、find、tail,du,awk命令

    1.查看某一段时间的日志 #cat hdfs-audit.log | sed -n '/2018-04-11 10:00:00/,/2018-04-11 10:01:00/ p' | more   - ...

  3. syslog(),closelog()与openlog()--日志操作函数

    为了满足某些目的,进行日志记录是很有必要的. 在典型的 LINUX 安装中,/var/log/messages 包含所有的系统消息,/var/log/mail 包含来自邮件系统的其它日志消息, /va ...

  4. Appfuse:记录操作日志

    appfuse的数据维护操作都发生在***form页面,与之对应的是***FormController,在Controller中处理数据的操作是onSubmit方法,既然所有的操作都通过onSubmi ...

  5. (转载)把syslog接收的远程日志从/var/log/messages中分开

    今天突然要配置Linux的syslog服务器,摸了一早上才弄好.记录远程机器发来的syslog消息倒是容易(网上到处都是),不过按照默认的设置,syslog会将所有信息都给写入 /var/log/me ...

  6. slf4j注解log报错_SpringBoot自定义日志注解,用于数据库记录操作日志,你用过吗?...

    大家好,我是程序员7歌! 今天我将为大家讲解如何通过自定义注解记录接口访问日志.一般的开发中,有两种方式可以记录日志信息,第一种:把接口日志信息保存到日志文件中,第二种:把接口操作日志保存到数据库中, ...

  7. 【系统审计】syslog协议及其实现日志转发到syslog服务器

    一.syslog协议       linux系统中大部分日志是通过一种syslog机制产生和维护的.syslog是一种协议,分为客户端和服务器端.客户端产生日志,服务器端接收日志.并对接收的日志做出保 ...

  8. Linux记录操作日志

    history命令可以查看最近1000条命令. 调整history命令的大小: vi /etc/profile HISTSIZE=1000 #改为 history日志文件默认是保存在.bash_his ...

  9. 日志监控:syslog日志和snmptrap日志

    SNMP 的定义与组成 SNMP协议:简单网络管理协议,通过网络管理软件可以集中式对多台设备进行统一管理,并且可以直观的看到网络设备的运行情况.而且可以通过网管软件对设备进行相应的配置, SNMP 系 ...

最新文章

  1. 在Ubuntu上安装Odoo 11(企业版)
  2. LeetCode 626. Exchange Seats
  3. linux swftools java_linux安装openoffice与SWFtools工具
  4. javascript 中的call和apply
  5. 【cocos2d-x从c++到js】06:Google的继承写法解析
  6. 知识图谱最新权威综述论文解读:时序知识图谱部分
  7. 培训学web前端前景如何?
  8. 重量级Orchard模块发布 - 模块生成工具RaisingStudio.ModuleGenerator
  9. 排序趟[置顶] Java和C实现的冒泡排序(基本思想)
  10. Iper3打流时所支持的UDP协议是真的UDP吗?
  11. arcgis python计算面积_如何在ARCMAP里面计算面积
  12. 微信模拟地理位置_伪装微信地理位置
  13. IBM Spectrum LSF RTM
  14. 安全专业委员会发言_护理专业委员会发言稿
  15. TLS1.3TLS1.2形式化分析
  16. svg图片在vue项目中的应用
  17. Jexl表达式引擎(1)
  18. 正负数在计算机中的表示(原码反码补码)及位运算
  19. ndk编译 错误:dlopen failed:cannot locate symbol 一个符号 referenced by 你的库.so/.a lang.UnsatisfiedLinkErr
  20. wxpython的简单使用【代码实现】

热门文章

  1. PTA最大子列和问题
  2. # 取字典的值_python3的列表、元组、字典的复习和推导式和生成器小结
  3. microsoft visual c++ 编译c语言,Microsoft Visual C++ 程序的部署方法
  4. datagrid在MVC中的运用02-结合搜索
  5. 2019年一半已过,这些大前端技术你都GET了吗?- 下篇
  6. SpringDataRedis的简单案例使用
  7. Icicle is not a symbol o chillness but a sign of warming.
  8. postgresql安装之后修改默认用户密码
  9. 动画效果-基础动画设置(改变大小,改变透明度,翻转,旋转,复原)
  10. [Cocos2d-html5]关于压缩