关于linux下通过ping/mtr长期监控网络输出日志报告的一些笔记(代码片段)

山河已无恙 山河已无恙     2023-03-02     550

关键词:

写在前面


  • 分享一些 通过 ping、mtr 长期监控网络输出报告的笔记
  • 博文内容涉及
  • 通过systemd-run 启动一个临时的 ping Service 实现长 ping 日志输出
  • 通过systemd-run 启动一个临时的 mtr time & mtr Srevice 实现 mtr 定时报告日志输出
  • 理解不足小伙伴帮忙指正

我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢 ------赫尔曼·黑塞《德米安》


关于 pingmtr 的作用使用这里不多介绍,下面提供的实现方式前提是系统通过 Systemd 来引导进程。

ping

对于 ping 来讲可以 通过 systemd-run 来生成临时 Service ,然后通过 journalctl 获取命令

┌──[root@vms82.liruilongs.github.io]-[~]
└─$systemd-run --unit ping-print --slice ping  /usr/bin/ping  192.168.29.154
Running as unit ping-print.service.
┌──[root@vms82.liruilongs.github.io]-[~]
└─$systemctl is-active ping-print.service
active

直接查看 ping 日志

┌──[root@vms82.liruilongs.github.io]-[~]
└─$journalctl -u ping-print | tail -n 5
1224 16:36:54 vms82.liruilongs.github.io ping[97218]: 64 bytes from 192.168.29.154: icmp_seq=87 ttl=128 time=0.782 ms
1224 16:36:55 vms82.liruilongs.github.io ping[97218]: 64 bytes from 192.168.29.154: icmp_seq=88 ttl=128 time=0.596 ms
1224 16:36:56 vms82.liruilongs.github.io ping[97218]: 64 bytes from 192.168.29.154: icmp_seq=89 ttl=128 time=0.713 ms
1224 16:36:57 vms82.liruilongs.github.io ping[97218]: 64 bytes from 192.168.29.154: icmp_seq=90 ttl=128 time=0.801 ms
1224 16:36:58 vms82.liruilongs.github.io ping[97218]: 64 bytes from 192.168.29.154: icmp_seq=91 ttl=128 time=0.678 ms
┌──[root@vms82.liruilongs.github.io]-[~]
└─$date
20221224日 星期六 16:37:11 CST
┌──[root@vms82.liruilongs.github.io]-[~]
└─$

导出 ping 日志

┌──[root@vms82.liruilongs.github.io]-[~]
└─$journalctl -u ping-print.service  > ping.192.168.29.154.log
┌──[root@vms82.liruilongs.github.io]-[~]
└─$ls -hl ping.192.168.29.154.log;tail -n 3 ping.192.168.29.154.log
-rw-r--r-- 1 root root 46K 1224 16:41 ping.192.168.29.154.log
1224 16:41:45 vms82.liruilongs.github.io ping[97218]: 64 bytes from 192.168.29.154: icmp_seq=378 ttl=128 time=5.52 ms
1224 16:41:46 vms82.liruilongs.github.io ping[97218]: 64 bytes from 192.168.29.154: icmp_seq=379 ttl=128 time=0.841 ms
1224 16:41:47 vms82.liruilongs.github.io ping[97218]: 64 bytes from 192.168.29.154: icmp_seq=380 ttl=128 time=0.787 ms
┌──[root@vms82.liruilongs.github.io]-[~]
└─$

退出当前登录 bash,可以发现进程任然存在,不会随着bash进程消失而消失

┌──[root@vms82.liruilongs.github.io]-[~]
└─$exit
登出
Connection to 192.168.26.82 closed.
PS C:\\Users\\山河已无恙> ssh root@192.168.26.82
root@192.168.26.82''s password:
Last login: Sat Dec 24 13:30:20 2022 from 192.168.26.1
┌──[root@vms82.liruilongs.github.io]-[~]
└─$systemctl is-active ping-print.service
active
┌──[root@vms82.liruilongs.github.io]-[~]
└─$journalctl -u ping-print | tail -n 1
1224 16:43:55 vms82.liruilongs.github.io ping[97218]: 64 bytes from 192.168.29.154: icmp_seq=507 ttl=128 time=0.633 ms
┌──[root@vms82.liruilongs.github.io]-[~]
└─$date
20221224日 星期六 16:43:57 CST
┌──[root@vms82.liruilongs.github.io]-[~]
└─$

测试完成删除 ping 进程

┌──[root@vms82.liruilongs.github.io]-[~]
└─$pgrep ping
97218
┌──[root@vms82.liruilongs.github.io]-[~]
└─$systemctl stop ping-print.service
┌──[root@vms82.liruilongs.github.io]-[~]
└─$pgrep ping
┌──[root@vms82.liruilongs.github.io]-[~]
└─$

相比于下面的方式,上面的方式更加方便管理

┌──[root@vms81.liruilongs.github.io]-[~]
└─$nohup /usr/bin/ping  192.168.29.154 >> 192.168.29.154.log 2>&1  &
[2] 53139

Mtr

对于 mtr 来讲,我们通过配置定时输出报告的方式,启动 临时 time 每分钟执行一次 mtr 命令输出一次报告,同样可以通过 journalctl 来管理应用。

┌──[root@vms81.liruilongs.github.io]-[~]
└─$systemd-run --on-calendar=*:*:00  --unit mtr-print-log --slice mtr /usr/sbin/mtr -r -b  192.168.29.154
Running timer as unit mtr-print-log.timer.
Will run service as unit mtr-print-log.service.

查看 time 状态

┌──[root@vms81.liruilongs.github.io]-[~]
└─$systemctl status mtr-print-log.service
● mtr-print-log.service - /usr/sbin/mtr -r -b 192.168.29.154
   Loaded: loaded (/run/systemd/system/mtr-print-log.service; static; vendor preset: disabled)
  Drop-In: /run/systemd/system/mtr-print-log.service.d
           └─50-Description.conf, 50-ExecStart.conf, 50-Slice.conf
   Active: active (running) since 六 2022-12-24 22:07:00 CST; 6s ago
 Main PID: 15427 (mtr)
   CGroup: /mtr.slice/mtr-print-log.service
           └─15427 /usr/sbin/mtr -r -b 192.168.29.154

1224 22:07:00 vms81.liruilongs.github.io systemd[1]: Started /usr/sbin/mtr -r -b 192.168.29.154.

以及下次执行时间

┌──[root@vms81.liruilongs.github.io]-[~]
└─$systemctl list-timers mtr-print-log.timer
NEXT                         LEFT     LAST                         PASSED  UNIT                ACTIVATES
六 2022-12-24 22:08:00 CST  23s left 六 2022-12-24 22:07:00 CST  36s ago mtr-print-log.timer mtr-print-log.service

1 timers listed.
Pass --all to see loaded but inactive timers, too.
┌──[root@vms81.liruilongs.github.io]-[~]
└─$journalctl -u mtr-print-log.service

查看 mtr 的日志,你可以看到他的执行日志,输出的报告,同时你可以选择合适的方式导出

┌──[root@vms81.liruilongs.github.io]-[~]
└─$journalctl -u  mtr-print-log.service  | tail -n 10
1224 22:13:00 vms81.liruilongs.github.io systemd[1]: Started /usr/sbin/mtr -r -b 192.168.29.154.
1224 22:13:14 vms81.liruilongs.github.io mtr[21252]: Start: Sat Dec 24 22:13:00 2022
1224 22:13:14 vms81.liruilongs.github.io mtr[21252]: HOST: vms81.liruilongs.github.io  Loss%   Snt   Last   Avg  Best  Wrst StDev
1224 22:13:14 vms81.liruilongs.github.io mtr[21252]: 1.|-- gateway (192.168.26.2)     0.0%    10    0.2   0.3   0.2   0.5   0.0
1224 22:13:14 vms81.liruilongs.github.io mtr[21252]: 2.|-- 192.168.29.154             0.0%    10    0.8   0.8   0.7   1.1   0.0
1224 22:14:00 vms81.liruilongs.github.io systemd[1]: Started /usr/sbin/mtr -r -b 192.168.29.154.
1224 22:14:14 vms81.liruilongs.github.io mtr[22215]: Start: Sat Dec 24 22:14:00 2022
1224 22:14:14 vms81.liruilongs.github.io mtr[22215]: HOST: vms81.liruilongs.github.io  Loss%   Snt   Last   Avg  Best  Wrst StDev
1224 22:14:14 vms81.liruilongs.github.io mtr[22215]: 1.|-- gateway (192.168.26.2)     0.0%    10    0.3   0.3   0.2   0.4   0.0
1224 22:14:14 vms81.liruilongs.github.io mtr[22215]: 2.|-- 192.168.29.154             0.0%    10    0.9   0.8   0.7   1.0   0.0
┌──[root@vms81.liruilongs.github.io]-[~]
└─$

如果只希望看到输出和执行时间,那么可以这样。

┌──[root@vms81.liruilongs.github.io]-[~]
└─$journalctl -u  mtr-print-log.service -o cat | tail -n 10
Started /usr/sbin/mtr -r -b 192.168.29.154.
Start: Sat Dec 24 22:13:00 2022
HOST: vms81.liruilongs.github.io  Loss%   Snt   Last   Avg  Best  Wrst StDev
1.|-- gateway (192.168.26.2)     0.0%    10    0.2   0.3   0.2   0.5   0.0
2.|-- 192.168.29.154             0.0%    10    0.8   0.8   0.7   1.1   0.0
Started /usr/sbin/mtr -r -b 192.168.29.154.
Start: Sat Dec 24 22:14:00 2022
HOST: vms81.liruilongs.github.io  Loss%   Snt   Last   Avg  Best  Wrst StDev
1.|-- gateway (192.168.26.2)     0.0%    10    0.3   0.3   0.2   0.4   0.0
2.|-- 192.168.29.154             0.0%    10    0.9   0.8   0.7   1.0   0.0

测试完成删除 mtr 进程

┌──[root@vms81.liruilongs.github.io]-[~]
└─$systemctl stop mtr-print-log.timer
┌──[root@vms81.liruilongs.github.io]-[~]
└─$systemctl is-active mtr-print-log.service
unknown

博文参考


https://help.aliyun.com/document_detail/98706.html

https://stackoverflow.com/questions/41741588/running-mtr-network-diagnostic-tool-in-the-background-like-nohup-processes

linux怎么监控网络运行情况

...令nmap–sS-O172.1.1.1来扫描该台设备的版本信息进行扫描,通过扫描不仅知道端口开放的情况,也知道扫描的设备是什么型号。我们介绍tcpdump的使用,从管理的网络里面获取流量,对获取的包进行分析,我们通过命令tcpdump-ieth0对网... 查看详情

监控利器monitorix(代码片段)

...统监控工具。致力于监控linux系统中的服务和网络资源,通过WEB管理页面更直观地进行展示。Monitorix一般常用语Linux或UNIX系统,由于具有简单轻量的特性,也可以 查看详情

linux终端下dstat监控工具

...。dstat可以让你实时地看到所有系统资源,例如,你能够通过统计IDE控制器当前状态来比较磁盘利用率,或者直接通过网络带宽数值来比较磁盘的吞吐率(在相同的时间间隔内)。dstat将以列表的形式为你提供选项信息并清晰地... 查看详情

linux网络监控工具大点兵(代码片段)

...时候我们需要获取Linux的网络信息。Linux中存在很多网络监控工具,本文就给大家介绍一下,Linux常见的网络监控工具。NetstatNetstat是Linux下全能的网络监控工具,可以监控主机网络数据包统计信息以及网卡信息的命令... 查看详情

Alamofire 监控网络状态

...ornetworkstatus【发布时间】:2016-05-2414:11:31【问题描述】:关于Alamofire——NetworkReachabilityManager监听网络状态,我有以下两个问题。1.我需要通过什么方法开始监听网络状态?2.如果我想在-application:didFinishLaunchingWithOptions:方法中监... 查看详情

linux服务器上监控网络带宽的18个常用命令zz

...监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示。作者:布加迪编译来源:51CTO.com|2014-04-1110:10 收藏  【51CTO精选... 查看详情

关于linux网络抓包的一些笔记整理(代码片段)

写在前面遇到一个ping单通的情况,需要抓包分析下,所以整理这部分笔记博文内容涉及:HTTP/TCP抓包分析DemoICMP抓包分析DemoNginx抓包分析用户名密码Demo理解不足小伙伴帮忙指正这世界的存在完全只是就它对一个其他事... 查看详情

zabbix基础理论(代码片段)

...由下载使用,运作团队靠提供收费的技术支持赢利。Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据Server端:通过收集SNMP和agent发送的数据,... 查看详情

监控利器monitorix(代码片段)

...统监控工具。致力于监控linux系统中的服务和网络资源,通过WEB管理页面更直观地进行展示。Monitorix一般常用语Linux或UNIX系统,由于具有简单轻量的特性,也可以用于嵌入式设备中。Monitorix包含monitorix收集程序和monitorix.cgi脚本程... 查看详情

linux操作系统监控服务器cpu内存磁盘网络和dstat(代码片段)

操作系统监控top命令内存监控-free磁盘IO监控-iostat磁盘空间监控-df综合监控工具-vmstat网络监控-netstat超级监控工具-dstattop命令TOP命令是Linux下一个实时的、交互式的,对操作系统整体监控的命令,可以对CPU、内存、进程监... 查看详情

关于2020全年小迪网络安全笔记长期未更新致歉声明

关于2020全年小迪网络安全笔记长期未更新致歉声明首先非常感谢各位同学关注本系列的文章,大家可能发现在第17天后我一直没有更新。(第17天应该是七月初,现在更新是十二月中旬)原因是①写博客太耗时间,小迪... 查看详情

有啥监控linux服务器的工具吗?

...负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现,此软件主要是用来监控系统性能的软件,通过曲线可以很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。... 查看详情

20145235李涛《网络对抗技术》-恶意代码分析

...设计下你想监控的操作有哪些,用什么方法来监控。可以通过计划任务,来建立一个定时更新的日志来查看通过sysmon来监控。通过ProcessExplorer工具,查看是否有程序调用了异常的dll库如果已经确定是某个程序或进程有问题,你有... 查看详情

关于3d机房监控系统!

3D机房管理是一个完整的、网络化、可视化的三维虚拟环境设计及展示平台,通过整合机房实时信息及资产信息,真正使IT管理者的管理步入虚拟现实领域,是提供给IT管理者最为直观的一项网络可视化管理工具。  系统采用B/S... 查看详情

linux怎么停止进程

...程立即停止通常用ps查看进程PID,用kill命令终止进程网上关于这两块的内容-----------------------------------------------------------------------------------PS-----------------------------------------------------------------------------------1.ps简介ps命令就是最根本... 查看详情

linux下如何监听进程

...态。一、superviseSupervise是daemontools的一个工具,可以用来监控管理unix下的应用程序运行情况,在应用程序出现异常时,supervise可以重新启动指定程序。使用:mkdirtestcdtestvimrun写入希望执行的操作supervisetest(注意这里是的参数是run... 查看详情

开源的linux运维监控工具都有哪些

...Saas平台,可监控Windows、Linux服务器,网站和IT基础架构,通过全面的监控解决方案列表,让管理员快速了解整体主机或者服务器瓶颈与风险。4.SeaLion:是一个基于云的Linux服务器监控工具,也是通过统一的仪表盘监控所有服务器... 查看详情

Haskell:在不轮询的情况下监控文件(在 linux 中使用 inotify)

...问题描述】:有没有haskell库函数可以不轮询监控文件?通过轮询我会做这样的事情:monitorfilemtimehandler=dothreadDelayn--sleep`n`nst&l 查看详情