一、cgroup
1、介绍
Linux Cgroups 提供了对一组进程及将来子进程的资源控制、控制和统计能力,这些资源包括CPU、内存、存储、网络等。通过Cgroups 可以方便的限制某个进程的资源占用,并可以实时监控进程的监控和统计信息。
2、案例
hubble-agent作为公共资源,也需要进行资源使用的限制,我们的资源限制做在了进行启动命令中,命令如下:
sudo cgset -r memory.limit_in_bytes=300M
即内存使用限制为300MB,超过300MB之后,系统就会kill掉hubble-agent进程。
另外,hubble-agent也做了CPU使用的限制:
sudo cgset -r cpu.cfs_quota_us=200000 ${app}
sudo cgset -r cpu.cfs_period_us=1000000 ${app}
执行命令:vim /opt/soft/hubble/agent/control,可看到hubble-agent进程配置的资源
如果修改了,需要重启hubble-agent进程生效:systemctl restart hubble-agent
./control restart也可以重启进程,但是由于涉及到权限问题,可能会修改失败:
查看hubble-agent内存限制的目录:cat /sys/fs/cgroup/memory/hubble-agent/memory.limit_in_bytes
查看hadoop-basic-collector插件的内存使用限制:cat /sys/fs/cgroup/memory/hubble_plugin_hadoop-basic-collector/memory.limit_in_bytes
注意:hubble-agent和插件的内存限制是独立的
二、auditd进程
1、介绍
auditd是Linux系统的安全审计工具,它负责将审计记录写入磁盘。
2、什么是审计记录?
审计记录就是:哪个进程,什么时间干了什么事件
3、auditd将审计记录存在哪里了?
/var/log/audit/audit.log
如下所示:
4、auditd作用是什么?
其实就是把审计日志归类,linux内核本身默认就会将所有日志(包括审计日志)打印到/var/log/message中
5、实践案例
有用户给了一些audit的日志,问hubble-agent是不是有问题?
根据以上信息,看了下涉及到hubble-agent的日志,pid是31324,那么首先去看下这个进程是不是hubble-agent:
进程不存在,可见,不是hubble-agent进程, 应该是hubble-agent中执行的插件。
去确认下是不是插件,那么看是不是同一个uid即可。从日志中看到uid=1000。
分别从/etc/shadow 和 /etc/passwd两个文件看下是否有uid为1000,结果却是和hubble-agent是一个组的:
那么,业务的问题就有结论了,不是hubble-agent的问题,而是hubble-agent下某个插件在执行而已,并不能看出hubble-agent的问题
三、epel源简介
1、简介
EPEL(Extra Packages for Enterprise Linux)是一个由特别兴趣小组创建、维护并管理的,针对红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一个高质量附加软件包项目。(官方网址为:https://fedoraproject.org/wiki/EPEL)
EPEL 的软件包通常不会与企业版 Linux 官方源中的软件包发生冲突,或者互相替换文件。EPEL 项目与 Fedora 基本一致,包含完整的构建系统、升级管理器、镜像管理器等等。
EPEL 是yum的一个软件源,里面包含了许多基本源里没有的软件。安装上EPEL的源后,就可以直接用yum来安装软件,而且EPEL不会替换原有的源,安装后会产生新repo,省去了不少麻烦。
2、安装EPEL源
[root@ansible-awx ~]# yum -y install epel-release