天天看點

審計日志功能監控

背景:公司的審計日志經常出現不記錄指令的情況,但是又無法監控到審計功能是否正常。是以我們思路是,每天從CMDB伺服器 ssh登入到每一台主機。如果審計功能正常,則一定會在auditlog.info檔案中有登入的記錄。如果24小時内這個檔案沒有任何變化,則表明,該主機的audit功能異常,無法記錄日志了。 

建立登入腳本

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<code>#!/usr/bin/env python2.7</code>

<code>import</code> <code>commands,requests,json</code>

<code>#host_ip = '10.47.102.185'</code>

<code>url = </code><code>'http://10.47.102.185/api/ecs'</code>

<code>r = requests.get(url)</code>

<code>ecss = json.loads(r.text)</code>

<code>for</code> <code>I </code><code>in</code> <code>ecss:</code>

<code>    </code><code>host_ip = I.get(</code><code>'ip'</code><code>)</code>

<code>#    if host_ip != '10.174.107.151':</code>

<code>    </code><code>status,result = commands.getstatusoutput(</code><code>'ssh -o ConnectTimeout=3 -o StrictHostKeyChecking=no root@{0} "echo \"audit check\""'</code><code>.</code><code>format</code><code>(host_ip))</code>

<code>    </code><code>if</code> <code>status == 0:</code>

<code>        </code><code>print </code><code>'{0} check success'</code><code>.</code><code>format</code><code>(host_ip)</code>

<code>    </code><code>else</code><code>:</code>

<code>        </code><code>print </code><code>'{0} check failed'</code><code>.</code><code>format</code><code>(host_ip)</code>

ConnectTimeout=3   表示逾時時間為3秒

<code>StrictHostKeyChecking</code>

首次 ssh 登陸時提示确認 yes/no,确認 yes 後會把遠端節點加入到本地的 ~/.ssh/known_hosts 中,下次再連接配接同一節點則不再提示。為了省事不确認,可以使用如下參數登陸

    ssh -o StrictHostKeyChecking=no  ...

這樣便不再确認且自動把遠端主機的資訊添加到 ~/.ssh/known_hosts 中。

建立每天定時任務:

<code>10 1 * * * root </code><code>/usr/bin/python2</code><code>.7 </code><code>/srv/script/audit_check</code><code>.py</code>

Trigger:

<code>{Template OS Linux:vfs.</code><code>file</code><code>.cksum[</code><code>/var/log/userlog</code><code>.info].</code><code>diff</code><code>(0)}=0</code>

<code></code>

本文轉自 曾哥最愛 51CTO部落格,原文連結:http://blog.51cto.com/zengestudy/1835652,如需轉載請自行聯系原作者

繼續閱讀