diff --git a/connect.py b/connect.py index 00a826de0e32f177bb177e7a88968077ab1220e7..9690af7cebf355b5671ea6c7a107440bd73499ac 100644 --- a/connect.py +++ b/connect.py @@ -67,6 +67,7 @@ class Tty(object): self.user = user self.role = role self.ssh = None + self.remote_ip = '' self.connect_info = None self.login_type = 'ssh' self.vim_flag = False @@ -192,17 +193,18 @@ class Tty(object): if self.login_type == 'ssh': # 如果是ssh连接过æ¥ï¼Œè®°å½•connect.pyçš„pid,web terminal记录为日志的id pid = os.getpid() - remote_ip = os.popen("who -m | awk '{ print $5 }'").read().strip('()\n') # 获å–远端IP - log = Log(user=self.username, host=self.asset_name, remote_ip=remote_ip, - log_path=log_file_path, start_time=date_today, pid=pid) + self.remote_ip = os.popen("who -m | awk '{ print $5 }'").read().strip('()\n') # 获å–远端IP else: - remote_ip = 'Web' - log = Log(user=self.username, host=self.asset_name, remote_ip=remote_ip, - log_path=log_file_path, start_time=date_today, pid=0) - log.save() - log.pid = log.id + pid = 0 + + log = Log(user=self.username, host=self.asset_name, remote_ip=self.remote_ip, login_type=self.login_type, + log_path=log_file_path, start_time=date_today, pid=pid) log.save() + if self.login_type == 'web': + log.pid = log.id + log.save() + log_file_f.write('Start at %s\n' % datetime.datetime.now()) return log_file_f, log_time_f, log diff --git a/jlog/models.py b/jlog/models.py index a75b7bccd70872be6d1b697484b756b1d700c893..69b667c46f1976f23659a47bc99261bf7b3df679 100644 --- a/jlog/models.py +++ b/jlog/models.py @@ -5,6 +5,7 @@ class Log(models.Model): user = models.CharField(max_length=20, null=True) host = models.CharField(max_length=20, null=True) remote_ip = models.CharField(max_length=100) + login_type = models.CharField(max_length=100) log_path = models.CharField(max_length=100) start_time = models.DateTimeField(null=True) pid = models.IntegerField() diff --git a/run_websocket.py b/run_websocket.py index 9250dd3a8a6c2a5c0147b03130184121006a7da5..e3a858d82f18c46f94f71e0dc3348dcd6a4c1601 100644 --- a/run_websocket.py +++ b/run_websocket.py @@ -267,6 +267,7 @@ class WebTerminalHandler(tornado.websocket.WebSocketHandler): logger.debug('Websocket: request web terminal Host: %s User: %s Role: %s' % (asset.hostname, self.user.username, login_role.name)) self.term = WebTty(self.user, asset, login_role) + self.term.remote_ip = self.request.remote_ip self.term.get_connection() self.term.channel = self.term.ssh.invoke_shell(term='xterm') WebTerminalHandler.tasks.append(MyThread(target=self.forward_outbound)) diff --git a/templates/jlog/log_offline.html b/templates/jlog/log_offline.html index 012a58bc756c55e75924cb7a9b3d91cd02412784..8d04d207c75ff1e3e6efebd23914c2404cd806fd 100644 --- a/templates/jlog/log_offline.html +++ b/templates/jlog/log_offline.html @@ -102,10 +102,11 @@ <th class="text-center"> 用户å </th> <th class="text-center"> 登录主机 </th> <th class="text-center"> æ¥æºIP </th> + <th class="text-center"> ç™»é™†æ–¹å¼ </th> {% ifnotequal session_role_id 0 %} - <th class="text-center"> 命令统计 </th> + <th class="text-center"> 命令 </th> {% endifnotequal %} - <th class="text-center"> å›žæ”¾å½•åƒ </th> + <th class="text-center"> å½•åƒ </th> <th class="text-center"> 登录时间 </th> <th class="text-center"> ç»“æŸæ—¶é—´ </th> @@ -119,8 +120,9 @@ <td class="text-center username"> {{ post.user }} </td> <td class="text-center ip"> {{ post.host }} </td> <td class="text-center remote_ip"> {{ post.remote_ip }} </td> + <td class="text-center"> {{ post.login_type }} </td> {% ifnotequal session_role_id 0 %} - <td class="text-center"><a href="/jlog/history/?id={{ post.id }}" class="log_command"> 命令统计 </a></td> + <td class="text-center"><a href="/jlog/history/?id={{ post.id }}" class="log_command"> 统计 </a></td> {% endifnotequal %} <td class="text-center"><a value="/jlog/record/?id={{ post.id }}" class="log_record"> 回放 </a></td> <td class="text-center start_time"> {{ post.start_time|date:"Y-m-d H:i:s"}} </td> diff --git a/templates/jlog/log_online.html b/templates/jlog/log_online.html index 562c530a4f14ba8d096457c16f020f4bbcd10f52..b4628d397e20afced15c8f9d5272e185da282b91 100644 --- a/templates/jlog/log_online.html +++ b/templates/jlog/log_online.html @@ -79,7 +79,8 @@ <th class="text-center"> 用户å </th> <th class="text-center"> 登录主机 </th> <th class="text-center"> æ¥æºIP </th> - <th class="text-center"> 统计命令 </th> + <th class="text-center"> ç™»å½•æ–¹å¼ </th> + <th class="text-center"> 命令 </th> <th class="text-center"> 实时监控 </th> <th class="text-center"> é˜»æ– </th> <th class="text-center"> 登录时间 </th> @@ -92,7 +93,8 @@ <td id="username" class="text-center"> {{ post.user }} </td> <td id="ip" class="text-center"> {{ post.host }} </td> <td id="remote_ip" class="text-center"> {{ post.remote_ip }} </td> - <td class="text-center"><a href="/jlog/history/?id={{ post.id }}" class="log_command"> 命令统计 </a></td> + <td class="text-center"> {{ post.login_type }} </td> + <td class="text-center"><a href="/jlog/history/?id={{ post.id }}" class="log_command"> 统计 </a></td> <td class="text-center"><a class="monitor" file_path="{{ post.log_path }}"> 监控 </a></td> <td class="text-center"><input type="button" id="cut" class="btn btn-danger btn-xs" name="cut" value="阻æ–" onclick='cut("{{ post.pid }}", "{{ post.remote_ip }}")' /></td> <td class="text-center" id="start_time"> {{ post.start_time|date:"Y-m-d H:i:s" }} </td>