npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

proginoskes

v0.1.8

Published

Monitor your infastructure in real time

Downloads

3

Readme

proginoskes

Monitor your infrastructure in real time using ssh to centralize a stream of log events

install

To install npm install proginoskes

configuration

The available configuration sections and options.

  1. global: Anything defined here is applied to all defined hosts
  2. host: A host name defined here will work as a defined host
  3. port: The default is 22 and is applied to all hosts unless explicitly defined
  4. username: A username defined here will apply to all hosts
  5. password: A password defined here will also apply to all hosts
  6. privateKey: The path to a private ssh key (also applies to all defined hosts)
  7. logs: An array of logs to monitor for all defined hosts
  8. hosts: The recommended method of including host definitions
  9. host: The name or IP of machine to apply log monitoring streams
  10. port: The SSH port for this particular host, uses global port option if omitted
  11. username: The username for access, also uses the global username option if omitted
  12. password: The password for access, again, uses the global password option if omitted
  13. privateKey: The path to an SSH private key to use with this host. Will also use anything defined in global privateKey if omitted
  14. logs: An array of logs to monitor for this host. Adds to anything defined in global logs array

Example

var options = {
  global: {
    port: 22,
    username: 'root',
    privateKey: './path/to/global/privatekey',
    logs: [
      '/var/log/ufw.log'
    ]
  },
  hosts: [
    {
      host: 'host-1.example',
      privateKey: './path/to/host-1.example/privatekey',
      logs: [
        '/var/log/snort/snort.log'
      ]
    },
    {
      host: 'host-2.example',
      port: 2222,
      username: 'iamroot',
      privateKey: './path/to/host-2.example/privatekey',
    },
    {
      host: 'host-3.example',
      password: 'secret-sauce',
      logs: [
        '/var/log/iptables.log'
      ]
    }
  ]
};

usage

Once you have a good configuration with at least one defined host to monitor usage is easy.

Example

var cherubum = require('proginoskes');

cherubum.proginoskes(options, function(err, data) {
  if (err) throw err;

  console.log(data);
});

returned object

The returned object(s) are simple, but makes it easy to determine source.

Example javascript [ { server: 'server-1', log: '/var/log/ufw.log', data: 'Jan 9 07:24:12 node kernel: [UFW BLOCK] IN=eth0 OUT= MAC=52:54:00:12:34:56:52:55:0a:00:02:02:08:00 SRC=192.168.2.8 DST=10.0.2.15 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=1593 PROTO=TCP SPT=60948 DPT=443 WINDOW=8760 RES=0x00 SYN URGP=0' }, { server: 'server-2', log: 'access-logs/some-site.com', data: 'xxx.xxx.xxx.xxx - - [09/Jan/2015:08:23:13 -0600] "POST /wp-cron.php?doing_wp_cron=1420813393.8197140693664550781250 HTTP/1.0" 200 - "-" "WordPress/4.0.1; http://some-site.com"' } ]