1.基于Prometheus + Grafana搭建IT监控报警最佳实践(2)
2.怎样知道最近20个来访者的线监p线IP地址?
3.Java如何通过网络进行寻找附近的设备,附源码?
4.局域网在线扫描 IP,控源MAC Java源代码
基于Prometheus + Grafana搭建IT监控报警最佳实践(2)
见字如面,大家好,监控我是源码打地鼠 easyx源码小斐。延续前文,线监p线本文将深入探讨Prometheus和Grafana的控源监控体系。
首先,监控我们需要打开Prometheus和Grafana进行操作,源码访问地址分别为:...:/ 和 ...:/。线监p线
以node_exporter数据采集器为例,控源先确保其已安装于需要监控的监控protostuff源码主机。若要获取...主机的源码状态数据,需在该主机安装node_exporter采集器。线监p线
在prometheus.yml中添加需要抓取的控源目标源信息,具体操作为:在scrape_configs下添加job_name,监控指定静态目标,tftpserver 源码添加...:目标。
配置文件配置完成后,由于是静态的,需要重新加载配置文件,重启Prometheus以生效。leafsnap 源码
在targets中查看是否已抓取到目标,根据上图可见,...的主机节点数据已抓取到。在Prometheus中验证数据正确性,点击Address 类扫描网络中的marsgis源码每一个 IP 地址。
对于每一个 IP 地址,使用 isReachable() 方法判断其是否可达,如果可达则表明该 IP 地址对应的设备存在。
以下是一份简单的示例代码:
import java.net.InetAddress;
import java.net.UnknownHostException;
public class FindDevices {
public static void main(String[] args) throws UnknownHostException {
InetAddress localHost = InetAddress.getLocalHost();
String hostAddress = localHost.getHostAddress();
String subnet = hostAddress.substring(0, hostAddress.lastIndexOf(".") + 1);
for (int i = 1; i < ; i++) {
String host = subnet + i;
try {
InetAddress address = InetAddress.getByName(host);
if (address.isReachable()) {
System.out.println(host + " is reachable");
}
} catch (Exception e) {
System.out.println(host + " is not reachable");
}
}
}
}
请注意,这是一份示例代码,其中的扫描范围和扫描方法可能不是最佳的,根据实际需要进行修改。
局域网在线扫描 IP,MAC Java源代码
1.得到局域网网段,可由自己机器的IP来确定 (也可以手动获取主机IP-CMD-ipconfig /all)
2.根据IP类型,一次遍历局域网内IP地址
JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用你自己编写相应代码调用便可
代码如下::
package bean;
import java.io.*;
import java.util.*;
public class Ip{
static public HashMap ping; //ping 后的结果集
public HashMap getPing(){ //用来得到ping后的结果集
return ping;
}
//当前线程的数量, 防止过多线程摧毁电脑
static int threadCount = 0;
public Ip() {
ping = new HashMap();
}
public void Ping(String ip) throws Exception{
//最多个线程
while(threadCount>)
Thread.sleep();
threadCount +=1;
PingIp p = new PingIp(ip);
p.start();
}
public void PingAll() throws Exception{
//首先得到本机的IP,得到网段
InetAddress host = InetAddress.getLocalHost();
String hostAddress = host.getHostAddress();
int k=0;
k=hostAddress.lastIndexOf(“.”);
String ss = hostAddress.substring(0,k+1);
for(int i=1;i <=;i++){ //对所有局域网Ip
String iip=ss+i;
Ping(iip);
}
//等着所有Ping结束
while(threadCount>0)
Thread.sleep();
}
public static void main(String[] args) throws Exception{
Ip ip= new Ip();
ip.PingAll();
java.util.Set entries = ping.entrySet();
Iterator iter=entries.iterator();
String k;
while(iter.hasNext()){
Map.Entry entry=(Map.Entry)iter.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
if(value.equals(“true”))
System.out.println(key+“-->”+value);
}
}
class PingIp extends Thread{
public String ip; // IP
public PingIp(String ip){
this.ip=ip;
}
public void run(){
try{
Process p= Runtime.getRuntime()。exec (“ping ”+ip+ “ -w -n 1”);
InputStreamReader ir = new InputStreamReader(p.getInputStream());
LineNumberReader input = new LineNumberReader (ir);
//读取结果行
for (int i=1 ; i <7; i++)
input.readLine();
String line= input.readLine();
if (line.length() < || line.substring(8,)。equals(“timed out”))
ping.put(ip,“false”);
else
ping.put(ip,“true”);
//线程结束
threadCount -= 1;
}catch (IOException e){ }
}
}
}