Database Schema design of server running status log
Time without date and timezone is pretty useless.

CREATE TABLE logz (
  server_inet inet,
  server_name text,
  app_name    text,
  is_running  bool,
  ts          timestamp with time zone
);

CREATE INDEX ON logz(server_name,ts);
CREATE INDEX ON logz(server_inet,ts);


Then to find the status of the server for each app.

CREATE VIEW running_status_by_name
AS
  SELECT DISTINCT ON (server_name,app_name) server_name, server_inet, app_name, is_running, ts
  FROM logz
  ORDER BY server_name, app_name, ts DESC;

CREATE VIEW running_status_by_inet
AS
  SELECT DISTINCT ON (server_inet,app_name) server_inet, server_name, app_name, is_running, ts
  FROM logz
  ORDER BY server_inet, app_name, ts DESC;


You could also use a pkid and easily do a CROSS JOIN LATERAL (OFFSET 0 LIMIT 1).