① Linux用户命令记录
很多情况下我们需要记录用户执行过的命令,不管是root还是其他普通用户,我们可以通过以下方式来记录。
PROMPT_COMMAND会在命令执行前执行。
$(who am i |awk '{print \$2,\$5}') 会输出登录用户用的tty和登录服务器的远程电脑IP或者主机名。
$PWD 是内建变量,显示当前执行命令的工作目录。
history 1 | { read x cmd; echo ${cmd}; 会输出最后一条历史命令中的执行信息。
为了不让用户修改变量,使用 declare -rx 命令定义了只读环境变量。这里要注意使用 readonly 命令也可以定义只读变量,但是用户用env命令看不到,只有用 export PROMPT_COMMAND 命令将变量设置为环境变量后才能看到。
变量加到 /etc/bashrc 是因为用户登录后会加载这里的配置,包括 sudo sudo su sudo su - su root su - root 。如果加到其他文件里则部分命令后就不会加载变量,自行尝试。
修改rsyslog是可以自定义日志输出的文件路径和名字,用 logger -p 这个命令配合使用。
新增logrotate配置则是需要切割日志,防止单个日志文件太大,以及做好切割备份,方便查询。
【一】
在 /etc/profile 最后添加如下行,则日志会直接输出到 messages 日志里。
这种方式:不定义日志格式,直接将日志写到messages日志文件里,和其他日志放一起,但是可以指定日志标签,方便检索。
缺点是(1)会导致日志增大,并且用户提权后因-t标签的存在,导致不会记录提权前的用户。(2)不能自定义日志路径。
【二】
缺点:用户可以删除日志文件。
因为普通用户和root都要往日志文件里写,所以需要给普通用户加一个附加组;并且如果日志文件不存在,普通用户登录后也需要新建,所以普通用户必须有日志文件父目录的写权限。为了能让所有普通用户都可以写,就给Command目录加了SGID权限以及修改目录属组为audit。这样普通用户在这个目录下创建的日志文件的属组会自动继承Command目录的属组,也就是audit。 (umask 002 && touch $HISTORY_FILE) 命令则是因为root用户生成的日志文件权限是644,属组没有写权限。所以这里用 启动子shell并修改umask的方式生成日志文件。这样就不会修改root默认的 0022 的umask。
其他审计软件:
https://www.splunk.com/ 免费2个月
② Splunk ITSI 实现原理概述
最近研究了一段时间Splunk ITSI,SPLUNK已经成为了一个150亿美金的公司。产品做的很有特点,UI也让人耳目一新。本篇描述了我对ITSI的一些研究笔记和其背后实现思路的探讨,希望对读者能有一些帮助。
一、 实体
实体本质上由手动录入的标题、key-value键值对组成,键值对分为别名(alias)和信息域(info field)两类。这两类的区别是:Alias用于唯一标识实体也就是用于分组和搜索。info用于补充实体的属性。Alias和info均可能用作参数输入到后续的实体展示中。实体的建立如下图:
实体的展示如下:
实体输入的时候如果重复了,splunk好像不负责去重。这样会导致分组的时候,只会关联第一个实体。
每一个实体会生成一个唯一id。
(一) 实体如何跟服务肆键滑关联的?
实体跟服务的关联是非常松散的,并且实体在Service中是optional的。即使定义了实体,服务也不一定局限于这些实体。(Entity Rules allow for the optional, dynamic filtering of KPIs and can help in root cause analysis. A service need not define any Entity Rules and is not limited to only the entities matching Entity Rules.)简言之,服务主要跟KPI相关,一个KPI可以设置是否由定义的实体所约束,这个后面裂腊再展开。
一个服务里面包含多少实体,主要由RULEs来过滤。RULEs如下所示:
(二) 实体使用的场景有哪些
配置KPI,可以按照实体分组,还可以按照alias过滤。
二、 KPI
(一) KPI Base Search定义了什么
1. KPI的名称
2.通过spl语句描述的数据源
3.定时周期,计算窗口,监控lag(把数据从发生到入库的延迟也考虑进去,否则kpi算不准)
4. 聚合
a)是否根据Entity分组,只能定义
b)是否filter Entity、是否
三、 SPL需要增强的函数
(一) aggregate_raw_into_service
l例子:aggregate_raw_into_service(count, host)
l 参数:
1. 聚合模式
2. 目标字段
l 输出字段:
1.聚合结果alert_value
2.聚合时间_time
3.定义实体的字段名entity_key(因为没有定义实体,所以是static值service_aggregate)
4.定义实体的字段名entity_title(static值service_aggregate)
5. is_entity_defined 0
6. is_service_aggregate 1
l记录条数 1条
(二) aggregate_raw_into_entity
l例子:aggregate_raw_into_entity(count, 4xx_error, application_server)
l 参数
1. 聚合模式
2. 目标字段
3. 亮颂分组字段
l 输出字段
1.聚合结果alert_value
2.聚合时间_time
3.分组字段名(本例中就是application_server)
(三) match_entities
l跟在aggregate_raw_into_entity后面,例子:match_entities(application_server)
l 参数
n 唯一标识实体的字段
l 输出字段
1. entity_id
2. entity_title
3. is_entity_defined 1
4. is_service_aggregate 0
5. serviceid
(四) aggregate_entity_into_service
l例子:aggregate_raw_into_service(avg)
l 参数
1. 聚合模式
l 输出字段
1. aggregate_raw_into_service和aggregate_raw_into_entity输出字段和结果的累加
2. is_all_entities_in_maintenance
(五) assess_severity
l严重性评估,例子:assess_severity(bc8f2697-39f0-4d8e-ac77-91a2999b2a9c, d938af27a490feac9955f338, true, true)
l参数
1. serviceid
2. Kpiid
l输出字段
1. aggregate_entity_into_service的输出字段与结果
2. Alert_color
3. Alert_error
4. Alert_level
5. Alert_period
6. Alert_serverity
四、 Multi KPI Alerts
选择多个指标,根据每个指标的权重进行加权。
这种搜索又称为correlation search。
五、 GlassTable
GlassTable的概念相对简单,KPI的集合
六、 Deep Deives
(一) Metric lane
根据搜索产生统计指标
(二) Event lane
根据搜索产生event指标
(三) KPI lane
直接选择已经定义好的kpi指标
③ 如何使用VMware ESX基础架构中的VI Client搜索工具
用户终究会想知道VMware工作环境中虚拟机的一些特性,诸如哪个虚拟机是配置来为特定数量RAM服务等。虽然成功地使用虚拟环境需要知道某些工作如何进行,但是VI Client仍然提供了几种在基础架构中搜索的方法,目前也有一些提供增强搜索功能的第三方选择。在本文中,TechTarget中国的特约虚拟化专家David Davis首先回顾一下这些第三方选择;然后针对特定需求介绍如何使用VI Client在VMware基础架构进行搜索。
在VMware内搜索的内容
VMware基础架构能够以较快速度增长,更多服务器、更多虚拟机、更多预定任务和更多配置警告等。用户最终还是需要了解一些知识,或许不能够或者不知道如何去做。下面是一些用户可能希望知道答案的问题:
•哪个虚拟机为虚拟机RAM配置512MB内存?
•哪个虚拟机没有安装VMware工具?
•哪个宿主系统有两个以上CPU?
•说明中有工作“bob”产生的警告吗?
•有人为帮助工作台组创建一个安全角色吗?
•这周用户管理员执行哪些工作?
正如我以前提及过一样,使用VI Client内置过滤器功能可以找到这些问题的答案,我也将告诉读者怎样去找问题答案。首先我们还是要讨论一下VMware基础架构内搜索的前景以及一些第三方提供的内容。
VMware基础架构内搜索的前景
在2008年虚拟机世界中我并没有看到比较重要的宣布,在VMware ESX新一代版本和VMware基础架构的每一次演示中,VI Client顶部都有一个显着的搜索条。对我来讲,这个搜索条让我想起IE或者火狐浏览器中的Google搜索条,这个搜索条在VI Client每一个单独窗口上都有。我并不知道这个搜索条可以搜索到的内容以及其限制可能是什么,我们可以推断出VMware已经意识到在VI Client内提高搜索性能的必要性,VMware也意识到当前的过滤和搜索功能都需要改进,所以在即将发布的ESX新一代版本和VI Client中改进了搜索功能。我们也可以推断出很多第三方公司也为VMware基础架构的搜索功能提供了很大程度改进,VMware的工程师们也认识到这正是他们自己可以做的事情。
提供搜索功能的第三方选择
确实有一些可以在用户的VMware基础架构中搜索的第三方选择(如有遗漏还请见谅),下面是我列举的一些:
Splunk for VMware
Splunk以日志管理出名,但是该公司试图从其收集的数据中给出问题的答案。最近,该公司开始为主机和虚拟机收集VMware数据信息。现在可以提供“IT搜索”,允许用户搜索VMware相关数据信息。然而,Splunk所做的工作不仅仅是搜索。也可以做规划、最优化、监控性能以及做整个IT基础架构根源问题分析等方面的工作,所以Splunk的工作范围远远超过搜索。在Splunk主页上,可以看到一段展示搜索功能的视频。Splunk同时提供免费版和商业版。
VKernel SearchMyVM
从下图可以看到,SearchMyVM在虚拟基础架构中提供一个类似于Google的界面。通过该界面,可以回答例如“我们挂载CD-ROM设备驱动到哪台虚拟机上了吗?”之类的问题大纳。因此如果用户使用VMotion的话,SearchMyVM就在用户VMware基础架构内作为一个虚拟机应用程序运行。SearchMyVM主页提供免费评估,但使用的话起始价格是199美元。
④ 分布式架构下splunk如何进行数据输入
问题:现在在一个公司里面,有1,2,3,三台电脑作为搜索头,4,5,6,7,8五台电脑作为索引器,9作为cluster master管理集群,10作为deployment server 管理转发器,请问应该怎键野样去导入数据?假设现在数据存放在电脑108中。
1、确定测试用 索引 。首先,确定自己的分布式架构下在deployment server 下面已经建立了测试用索引,以便于进行数据测试。若不清楚是否拥有此索引,可直接询问管理员。(若无此索引,请尽量新建一新索引作为测试用索引)
2、判断数据所用的来源类型可以正确解析数据,若无此来源类型,应选择合适配置并新建来源类型。(若所选来源类型可以正确解析数据,则直接跳过下面的 新建来源类型 步骤)
(1)点击 添加数据
(2)点击 上载
(3)选择合适的 来源类型。 在此处配置,直到自己所用配置可以正确解析为止。若无法正确解析,请询问管理员如何进行配置,或查阅ADMIN文档中props.conf一节 。
3、新建 来源类型 。在deployment server新建来源类型,以求对数据获得正确的导入格式。
(1)在 设置 中找到 来源类型
(2)点击 新建来源类型 。请注意在此步之前是否已确定数据导入进来时断行等数据解析是否正确,若未判断,应先将数据导入并选择合适的设置,以求数据正确解析。
(3)选择合适的配置。然后保存,请再次确定此郑胡时保存的来源类型可以正确解析数据。确定方法与第二步相同。
4、建立新远程文件或目录,以监控数据路径。
(1)点击 设置 中 数据输入
(2)在 转发的输 入中选择合适的数据类型
(3)点击新远程文件和目录。
(4)请选择存放数据的转发器,即 可用主机 。选择服务器类为 新建 , 新建服务器类名称 。(请注意,现在所有的操作过程均为测试过程,此过程做完后显示数据正常进入之后,再在正式的索引中导入数据,重复在此测试过程中的所有操作即可,在正式导入数据时请确定是否需要新建服务器类,若不清楚,可直接询问管理员。)
(5)请填写所要监控的 文件或文件目录 ,请注意,此喊亮拦时无法进行选择,因为数据来自于远方计算机,即存放数据的转发器108中的文件或目录路径。例如:/var/log/syslog。
(6)点击 选择 ,选择自己之前已经确定过可以正确解析数据的 来源类型 。选择 测试用索引 (若测试正确,则再次经过此步骤时选择正式索引)
(7)单击 检查 。单击 完成。
5、此时到deployment server 下面去下发配置文件props。现在进入/opt/splunk/etc/deployment-apps/路径,则可以看到刚才新建的服务器类所形成的默认应用。
(1)进入/opt/splunk/etc/deployment-apps/路径
(2)进入 应用 。进入 local。 编写 props.conf 文件。其中写入编码格式,二进制等设置。若不知道正确配置可直接去第2步 复制剪贴板, 直接粘贴进去 。(请注意,此时你的来源类型为新建的时才需要编写此处以及之后的步骤,若系统自带的来源类型已经满足你的需求,则不需要再在此处编写此文件,一旦编写,反而有可能覆盖系统自带的配置文件。)
(3)回到/opt/splunk/bin目录,输入./splunk reload deploy-server将配置文件下发至forwarder108中。
6、进入cluster master后台,去编写cluster下的props.conf文件,路径为/opt/splunk/etc/master-apps/。在此路径下若只有一个文件夹_cluster,则直接编辑即可。若有两个以上文件夹,应询问管理员在哪个文件夹下进行编辑。编辑方式与deployment server 下的编辑一样,只不过配置的参数不同。若不知应该配置哪些参数,则到第2步复制配置参数 复制剪贴板, 直接复制粘贴即可。
7、向所有indexer下发对应来源类型的配置参数。在cluster master的web界面进行操作。
(1)点击 设置 中 索引器群集化。
(2)点击 配置软件包操作
(3)点击推送,也有可能为Push,具体看自己的即可。此时所有操作均已完成。在搜索头中进行搜索即可。
⑤ Splunk通过正则表达式提取关键字
Splunk作为提供查看log日志的工具,有很强大的搜索功能,同时也提供可定义的字段提取,纯搏可以直接作为搜索关键字。Splunk 提供 Field Extractor可以通过选取需要提取的字段进行提取,也可以直接写正则表达式提取需要的关键字。
1.在Settings中找到Fields菜单,进入后可以看到一句提取的字段列表和对应的正则表达式。
2. 选择 New Field Extraction 就可以进入编辑界面,输入app name,这个提取的名字和所适用的sourcetype以及最重要的提取字段的正则表达式。比较特别的事我们提取的字段需要给它取一个名字方便我们后面在检索时可以直接用这个字段,所以正则表达式中一定要带有字段名,如 \[w+\](?<err_code>[^:]+)中err_code就是我后面要用到的field字段。
至于sourcetype在log文件中都会有,应该是在配置splunk 上传log时定义的一个字段。
3.这些都填好后就可以保存,然后需要在Filed Extraction 列表中找到刚刚保存的那一条,点击Permisson进行权限的控制,也就是你这个提取的字段是可以那些app可以看到,那些人可以使用。
4.保存完成后就可以到搜索界面直接使用这个字段进枣裤巧行搜索和数凳键据统计了,然后在左侧的Fields 区域也可以看到刚刚保存的字段名。 另外通过最下面的 Extract New Fields 也可以直接进入Field Extractor工具进行字段提取。
⑥ 如何使用Splunk工具分析网站
它是一个可以在所有主流操作系统上运行的独立软件包 - 只需选择您的平台,然后下载并安装即可。您需要处理和运行的是用户使用的 Web 界面,以及用于索引计算机数据的引擎。2.从任意源索引任意数据Splunk 可以从任何源实时索引任何类型的计算机数据亩伍岩。可以在 Splunk 中指向您的服务器或网络设备的系统日志、设置 WMI 轮询、监视实时日志文件,并能够监视您的文件系统或 Windows 注册表中的更改,或安排脚本获取系统指标。Splunk 可以索引您的所有机器数据,而无需购买、编写或维护任何特定的分析器或适配器。原始数据和丰富索引均存储在高效、已压缩的、基于文件系统的数据存储中,并提供可选数据签名和数据的完整性审核。3.从远程系统转发数据在无法通过网络提供所需数据,或安装了Splunk的服务器上看不见所需数据的情况下,可以部署 Splunk Forwarder。Splunk forwarder 为成千上万的端点提供安全、分布式实迅御时全局数据收集。它们可以监视本地应用程序日志文件、捕获有关时间表的状态命令输出、获取来自虚拟或非虚拟来源的性能指标,或监控配置、权限和属性变化的文件系统。它们都是属于可以快速部署的轻量级服务器,而且不会产生任何额外费用。4.专为大型数据构建使用Splunk ,每天可收集和索引成千上万太字节的数据。其可扩展性体系结构基于 MapRece,因此,随着日常数据量和数据来源不断增长,您只需添加更多商品服务器即可扩展效能。自动负载平衡可以优化工作负载和响应时间,并提供内置故障转移机制。开箱即用的报告和分析功能可避免部署第三方报告工具的需要。还可以配置 Splunk 使用 SAN 或其它存储设备,以满足长期存储需求。5.在整个数据中心扩展Splunk 分布式体系结构可让您在一个数据中心跨多个部署进行搜索,或在您的所有数据中心进行全局搜索。借助基于角色的访问,您可以控制指定用户的搜索将要跨越的范围。区域用户可以查看区域系统的数据,而企业范围内用户则可以查看所有数据中心的数据。Splunk 愿景是让每一位已授权员工都能够看到他们需要的计算机数据;并将数据用于调查、报告和仪表板或分析,以便不断提高 IT 运营并获得有价值的业务洞察力。花几分钟时间安全连接您的 Splunk 安装,能让您设计一个可管理的企业数据结构。6.提供角色型的安全性从各个方面橘迹来说,Splunk 均可谓是一种强大的安全模型。各项 Splunk 交易均会得到验证,其中包括通过 Web 用户界面和命令行接口执行的用户活动,以及通过 Splunk API 执行的系统活动。使用一整套按用户类型来限制功能的记录控制点,您可以自己为 Splunk 用户定义角色。这些精细的访问控制可以限制搜索、警报、报告、仪表板以及不同 Splunk 角色可以查看的视图。Splunk 还可以集成兼容 LDAP 的外部目录服务器和 Active Directory 服务器,以执行企业范围内的安全策略。此外,还提供单一登录集成,以启动对用户凭据的传递身份验证。