MIB for PySNMP Agent - pysnmp

I am trying to implement SNMP Monitoring through the use of PySNMP library.
Will I be able to query the already existing NET-SNMP MIB on a device? Or do I have to create the MIB on the Agent side with PySNMP?

To monitor a host via SNMP you need SNMP Agent running locally on that host talking to host's subsystems (OS, applications) collecting various metrics. Then SNMP Agent could communicate those metrics to SNMP Manager thus performing monitoring. Here you could find some general notes on SNMP design.
There are many approaches to making SNMP Agent gathering system information from a host it is running on. You could do that from a single callback function invoked by SNMP Agent (no MIB is involved) or you could embed your system probes right into pysnmp MIB module (scattering probes over managed objects defined in MIB), so that the probes could be run once Manager hits that part of MIB via a query to SNMP Agent managing that MIB. There is pysmi tool that can compile text MIB into pysnmp/Python module.
Here is a page with example pysnmp Agent scripts that should run out-of-the-box.

Related

Monitor Nestjs backend

In the old days, when we wanted to monitor a "Daemon" / Service, we were asking the software editor the list of all the services running in the background in Windows.
If a "Daemon / service" would be down, it would be restarted.
On top of that, we would use a software like NAGIOS or Centreon to monitore this particular "Daemon / service".
I have a team of Software developper in charge of implementing a nice Nest JS.
Here is what we are going to implement:
2 differents VMs running on a high availability VMWARE cluster with a SAN
the two VMs has Vmotion / High availabity settings
an HA Proxy is setup in order to provide load balancing and additional high availability
Our questions are, how can we detect that :
one of our backend is down ?
one of our backend moving from 50ms average response time to 800ms ?
one of our backend consumes more that 15Gb of ram ?
etc
When we were using "old school" daemon, it was enough, when it comes to JS backend, I am a bit clue less.
Cheers
Kynes
nb : the datacenter in charge of our infrastructure is not "docker / kubernetes / ansible etc compliant)
To be fair, all of these seem doable out of the box for Centreon/Nagios. I'd say check the documentation...
one of our backend is down ?
VM DOWN: the centreon-vmware plugins provides monitoring of VM status.
VM UP but Backend DOWN : use the native http/https url checks provided by Centreon/Nagios to load the web page.
Or use the native SNMP plugins to monitor the status of your node process.
one of our backend moving from 50ms average response time to 800ms ?
Ping Response time: Use the native ping check
Status of the network interfaces of the VM: the centreon-vmware plugin has network interface checks for VMs.
Page loading time: use the native http/https url checks provided by Centreon/Nagios.
You may go even further and use a browser automation tool like selenium to run scenarios on your pages and monitor the time for each step.
one of our backend consumes more that 15Gb of ram ?
Total RAM consumed on server: use the native SNMP memory checks from centreon/nagios.
RAM consumed by a specific process: possible through the native SNMP memory plugin.
Like so:
/usr/lib/centreon/plugins/centreon_linux_snmp.pl --plugin os::linux::snmp::plugin --mode processcount --hostname=127.0.0.1 --process-name="centengine" --memory --cpu
OK: Number of current processes running: 1 - Total memory usage: 8.56 MB - Average memory usage: 8.56 MB - Total CPU usage: 0.00 % | 'nbproc'=1;;;0; 'mem_total'=8978432B;;;0; 'mem_avg'=8978432.00B;;;0; 'cpu_total'=0.00%;;;0;`

Dynamic port mapping for ECS tasks

I want to run a socket program in aws ecs with client and server in one task definition. I am able to run it when I use awsvpc network mode and connect to server on localhost every time. This is good so I don’t need to know the IP address of server. The issue is server has to start on some port and if I run 10 of these tasks only 3 tasks(= number of running instances) run at a time. This is clearly because 10 tasks cannot open the same port. I can manually check for open ports before starting the server and somehow write it to docker shared volume where client can read and connect. But this seems complicated and my server has unnecessary code. For the Services there is dynamic port mapping by using Application Load Balancer but there isn’t anything for simply running tasks.
How can I run multiple socket programs without having to manage the port number in Aws ecs?
If you're using awsvpc mode, each task will get its own eni and there shouldn't be any port conflict. But each instance type has a limited number of enis available. You can increase that by enabling eni trunking which, however is supported by a handful of instance types:
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html#eni-trunking-supported-instance-types

Handling multiple conditions in kapacitor tick script

I am monitoring the servers in our local lab environment using the components in tick stack by installing the telegraf agent on each machine which updates the cpu,disk and memory stats to an InfluxDB.I have the tick scripts in the kapacitor which raises the alerts,but my problem here is each server has a different metric value to monitor(like server1 should be alerted on 80% CPU usage and server2 to be alerted on 50% CPU usage) so which means should i be writing multiple scripts for each of the server as it will be difficult to monitor and maintain.Can any one please guide on this.
Thanks
You can easily create templated tasks with Kapacitor.
https://docs.influxdata.com/kapacitor/v1.5/working/template_tasks/
But to me it's very restricted, so i wrote an jinja2 template what generates tasks by yaml configuration. I just mention it, if you meet some restrictions in Kapacitor templates.

Endeca cluster setup

I have configured an (Endeca Application Controller) EAC application on Multiple servers. I have two machines A and B with the following configurations.
Machine A: Oracle Endeca MDEX Engine, Oracle Endeca Platform Services (Endeca Application Controller Server and agent), Oracle Endeca Tools and Frameworks, Content Administration System (CAS).
Machine B: Oracle Endeca MDEX Engine, Oracle Endeca Platform Services (EAC agent only instance).
I have a Dgraph Cluster (1 MDEX and 1 Dgraph on each host)
I need to know is there any need of setting up an Endeca Server Cluster
when my website is up and Running? I have an ATG-Endeca Integration Environment and my indexed data is quite large.
Also I need to know is there any criteria for determining the number of servers, server topology, and the load balancer topology.
You only need a cluster if you are sharing disk between the mdex instances.
In terms of the number of servers and layout, it depends most on the number of queries that are expected and amount of effort (computation time) it takes to run the queries.
I am sure that the Oracle Endeca sales / support staff that set you up should be able to provide some baselines for these numbers.

LoadRunner suggested approach to monitoring cloud based JBoss infrastructure

My Project has a technical platform consisting of a cloud-based set up with JBoss nodes running on Linux VMs and databases connected to these further below.
Obviously I can configure each JBoss instance to accept Remote monitoring via JMX and use VisualVM to monitor them. But as the number of JBoss (combined app server and web app server) increases the monitoring gets out-of-hand as there is a lot of nodes to monitor. I have been thinking about using our JBoss Operations Networking (JON) and maybe monitor on this abstraction level, but is there a way to configure LoadRunner to monitor i.e. through JON?
General question:
Does anybody have experience in monitoring a could based JBoss infrastructure through LoadRunner or do you monitor through i.e. JON instead when running the LoadTest?
All Monitoring in SiteScope
Base operating system Monitors through SiteScope
JMX Monitoring in SiteScope
(Alternate route) SNMP Agents for JBOSS and your OS, through SiteScope
When you go to run the test, connect to your SiteScope instance from your LR/Performance Center controller and pull in the SiteScope Stats. As an alternative to SiteScope Business Availability Center can also be used.