虚拟机为Ubuntu20.04。
目标为隔1秒向logstash上传一次top的数据。
命令top -n 1 >> Top.txt
获取一次top的数据,并存入Top.txt中,
如果用这条命令的话,文件是隔1秒清空一次,还是下一秒的数据接在后面,只能都试试看了。
实现HTTP传输,也有几种,可以用curl,也可以用socket,也可以用命令行nc一下。
我可太喜欢命令行了,直接用就行。。。
那就先全用命令行试一下。。
我先将top一次的数据存入文件中,然后使用nc 192.168.1.100 8080 < Top.txt传输到logstash端口试一下。
Logstash端接收时,nc过去的数据会有bed_requst,不知道原因。发现文件中有许多乱码,在虚拟机端vi打开文件,文件中也有很多乱码。
所以应该是命令出现了问题,但是我cat这个文件的时候,文件可以正常显示没有乱码。。。我现在也不知道是因为什么,有知道的朋友可以告诉我一下。。。谢谢!!
啊,用top -b就没有乱码了。。
而且还发现了一个问题,top的输出分为两部分,上半部分是系统的状态,下半部分是进程的状态,而且两者的格式不同,所以传输到Logstash的时候最好是分开传输。
所以指令就变成了
top -b -n 1 | grep