Git Product home page Git Product logo

Comments (7)

palisadoes avatar palisadoes commented on August 17, 2024

I think we should:

  1. differentiate the hostnames by zone. A zone being a location or some other management domain. We should not have subzones for simplicity
  2. allow for hosts to have a descriptive alias as in #120

I'm working on switchmap-ng v2. I have a tracking issue here: #129. This is where I'm putting my focus.

from switchmap-ng.

dcthor avatar dcthor commented on August 17, 2024

OK re: no "subzones"

An idea (brainstorming) for a new "sites.yaml" file:

sitelist:
    - site: SITE-NAME-A
      hosts:
        - hostname1
        - hostname2
        - hostname3
    - site: SITE-B
      hosts:
        - hostnameA
        - hostnameB
        - hostnameC

Q's:

  1. Should it be an error if a "host" exists in more than one site? I'd say "yes. It would definitely be an error if a "site" exists more than 1x
  2. Should we allow for the idea of "includes" -- perhaps allow the current config.yaml to have a list of site-files which supplements the current main.hostnames.[] array? (see below)
main:
  hostnames:
  - hostX
  - hostY
  sitefiles:
  - sites.yaml
  - sites-2.yaml

from switchmap-ng.

dcthor avatar dcthor commented on August 17, 2024

For aliases... would we put that in the same sitelist array, or a separate file which host/alias pairs?

from switchmap-ng.

palisadoes avatar palisadoes commented on August 17, 2024

The current code ingests all .yaml files in the configuration directory and combines them into a single configuration dict.

  1. It works correctly assuming the files have the correct YAML fields.
  2. So the use of includes is already built in.

I think zone is a better representative name, as there may be a logical distinction to consider (eg. multiple VLAN zones at a site with overlapping VLAN numbers)

I'm working on v2 of switchmap with a database backend. It will have three daemons, a poller, a database server running an API, and a web server. This could be the way we setup the configuration.

main:
  agent_subprocesses: 20
  system_directory: directory
  log_level: debug
  username: peter

poller:
  polling_interval: 21600
  zones:
    - zone: SITE-NAME-A
      hostnames:
        - hostname1
        - hostname2
        - hostname3
    - zone: SITE-B
      hostnames:
        - hostnameA
        - hostnameB
        - hostnameC
  snmp_groups:
    - group_name: CISCO
      snmp_authpassword: password
      snmp_authprotocol: sha
      snmp_community: null
      snmp_port: 161
      snmp_privpassword: password
      snmp_privprotocol: aes
      snmp_secname: name
      snmp_version: 3

server:
  bind_port: 7000
  listen_address: localhost
  db_host: localhost
  db_name: switchmap
  db_user: switchmap
  db_pass: password

dashboard:
  bind_port: 7001
  listen_address: localhost

from switchmap-ng.

dcthor avatar dcthor commented on August 17, 2024

pulling in all files from the /etc folder ---> Awesome!

Zones instead of Sites --> Yup, totally makes sense.

I like your alternative yaml, especially the idea of having separate sections for main/poller/server/dashboard. Suggest "server" be renamed something like "dbserver" for clarity.

from switchmap-ng.

dcthor avatar dcthor commented on August 17, 2024

Q about agent_subprocesses - shouldn't that be moved to the appropriate section (main/poller/server/dashboard) ?

from switchmap-ng.

palisadoes avatar palisadoes commented on August 17, 2024

In the new design all the daemons will use multiprocessing to increase performance. It needs to be in the core section for now.

For ease of configuration a single location is better than three.

I'm also thinking that we may need to give zones numbers so that we can configure a poller to only poll from specified zones. What do you think, too complex?

from switchmap-ng.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.