Using Slack to Monitor RSS Feeds

In a previous post, I talked about using NodePing to send downtime notifications to Slack and having those alerts go to your phone. In this post, I’m going to cover a similar concept: using Slack to track one or more RSS feeds and get alerts when a new item is posted to a feed.

To start with, you’ll want to manage your Slack instance and go to the “Apps” section. If the RSS app doesn’t exist, it should be easy enough to add. Once added, it will look like this:

Click on the RSS app, and you’ll see a list of feeds, which will probably be empty:


If you scroll down, you’ll be able to add a feed, and have alerts go to whichever channel you want. For this example, I’m using the lorem-rss feed, which generates a new item every minute:

Continue reading “Using Slack to Monitor RSS Feeds”

Hotel Opening: Anthrocon 2019 Report

One of my activities outside of the office consists of staffing furry conventions. One of those conventions is Anthrocon, a furry convention held in downtown Pittsburgh every June/July. At that particular convention, I manage the website and their social media properties.

Yesterday, we opened general hotel reservations, and that resulted in a huge rush of members booking hotel rooms. 1,000 rooms were booked in the first 15 minutes! This was completely expected, and we kept track of how things played out on social media, and also took a survey of members who booked hotel rooms to see how things went. In this post, we’re going to share what we learned based on those survey results and Twitter activity.

HOTEL BOOKINGS

First, did people who booked a hotel room get the hotel that they wanted?

Did you get the hotel you wanted?

For nearly 70% of you, the answer is yes. This makes us happy, but we would like to see the number higher—ideally 100% of our attendees would get a room in the hotel of their choice. This is something we continue to work on each year by adding new hotels and getting bigger room blocks in existing hotels.

Continue reading “Hotel Opening: Anthrocon 2019 Report”

Using NodePing To Send Downtime Notifications To Slack

So I’m a huge fan of the service NodePing. NodePing is a service used to monitor websites and service availability, and can ping hosts, monitor HTTP/HTTPS, other services like POP3/IMAP, DNS, and more! It can also perform “advanced HTTP” monitoring and check the HTTP response code or the content from the response! I pretty much use NodePing to monitor all of my hobbyist projects, as well as those belonging to friends.

One thing that gets tricky, however, is how to do alerting. NodePing lets you do email and text notifications, but neither feels “right” to me, especially if you want to alert multiple people at once. So I came up with a better way: sending webhooks into Slack! In this post, I am going to walk you through the process of making this happen.

Requirements

First, you’ll need to purchase a plan on NodePing. Plans on NodePing start at $8/month, but I personally recommend the $15/month plan as you can monitor up to 200(!) different services with it. You’ll also need to create your own Slack instance, and Slack has a free tier, which I recommend.

After creating a Slack instance, I recommend downloading and configuring both the Desktop and mobile clients to connect to your Slack instance.

Setting Up A Webhook In Slack and NodePing

Now that you’re signed up with both services, you’ll need to create a webhook in Slack. To do that, go to the “Applications” page on Slack’s website and choose the “Incoming Webhooks” app. Add a new integration and copy the URL of the webhook into your clipboard:

Note that whichever Slack channel you send alerts to is completely up to you. My personal recommendation is to create a separate channel just for alerts from NodePing.

Continue reading “Using NodePing To Send Downtime Notifications To Slack”

9 Essential WordPress Plugins

One does not simply appear in search engine results

When I made the move to WordPress a few weeks ago I had a lot to learn, both in terms of functionality that WordPress had to offer, as well as plugins that I could install and which of those plugins actually worked well!

So I’m going to spend this post sharing what plugins I found the most useful so that anyone else who is getting into WordPress can have an easier time getting started.

Open Graph

Even if you don’t use Facebook or Twitter, chances are that your visitors do and they share your content on those sites. So this plugin is probably the most important plugin of the entire list, because it adds the appropriate meta tags to ensure that when your content is shared on either service, it is rendered correctly.

Furthermore, the Open Graph plugin allows you to set a default image and override it with other an image from the post itself or one uploaded separately:

Again, I cannot stress it enough–if you want your content to look presentable on social media sites, you need to use this plugin. Otherwise, you are passing up a huge opportunity.

Continue reading “9 Essential WordPress Plugins”

Fixing Image Sizes on WordPress Attachment Pages

One of the neat things about WordPress is that when you upload an image and then include that image in a blog post, you can decide where that image links to. The image can link to nothing at all, the raw image, or an “attachment page” which contains that image and a caption.

That said, something that has caused me grief for out of the box WordPress builds has been the image on the media page being really small. Take for example, this picture of a freeloading cheetah. When I upload the picture, the attachment page looks like this:

Just look at that. A tiny image and a bunch of the page being completely unused. Disgraceful. Surely we can do better!

As it turns out, tweaking a single line of code can be used to change the size of all images on media pages.

Continue reading “Fixing Image Sizes on WordPress Attachment Pages”

Using Splunk on Hotel Internet

Splunk> Finding your faults, just like Mom.

In a previous post, I wrote about using Splunk to monitor network health. While useful for home and office use, there’s another valuable use for this app, and that’s when traveling.

In my case, over my Christmas vacation, I checked into a Mom and Pop hotel, or rather a motel! It was about 24 rooms all in a row, occupying a single floor. Since they were on a budget, their Internet offering consisted of what appeared to be 5 or 6 Linksys routers set up every few rooms. You’d simply connect to the closest access point and have Internet.

But there was a problem: determining which access point was closest to me! The signal strength indicator on my computer showed several of them were 3/3 bars so that wasn’t much help. I tried connecting to the first one, but had virtually no Internet connectivity.

That’s when I fired up Splunk:

docker run --name splunk-network-health-check \
   -p 8000:8000 \
   -v $(pwd)/splunk-data:/opt/splunk/var/lib/splunk/defaultdb \
   -e "TARGETS=192.168.1.1 google.com 8.8.8.8 1.1.1.1" \
   dmuth1/splunk-network-health-check

In the above example, I added in the TARGETS environment variable, and was sure to include 192.168.1.1, which was the IP for each router (they were all the same). Then I set Splunk “real-time mode” and periodically checked that tab as I was working. This is what I saw:

Testing 3 separate hotel Access Points with Splunk
Continue reading “Using Splunk on Hotel Internet”

Introducing: Splunk Lab!

Splunk> Australian for grep.

In a previous post, I wrote about using Splunk to monitor network health and connectivity. While building that project, I thought it would be nice if I could build a more generic application which could be used to perform ad hoc data analysis on pre-existing data without having to go through a complicated process each time I wanted to do some analytics.

So I built Splunk Lab! It is a Dockerized version of Splunk which, when started, will automatically ingest entire directories of logs. Furthermore, if started with the proper configuration, any dashboards or field extractions which are created will persist after the container is terminated, which means they can be used again in the future.

A typical use case for me has been to run this on my webserver to go through my logs on a particularly busy day and see what hosts or pages are generating the most traffic. I’ve also used this when a spambot starts hitting my website for invalid URLs.

So let’s just jump right in with an example:

docker run -p 8000:8000 \
   -v $(pwd)/data:/data \
   -v /var/log/nginx/:/logs \
   -v $(pwd)/app:/app \
   -e SPLUNK_PASSWORD=password \
   dmuth1/splunk-lab

This will download the container, start it up, and mount the appropriate directories. The containerized version of Splunk looks recursively for logs in /logs/, stores its data in /data/, and stores dashboards that are created in /app/. (Note that if you try to use “password” as your password, the container will refuse to start for safety reasons!)

First things first, let’s verify our data was loaded and do some field extractions!

Continue reading “Introducing: Splunk Lab!”

Using Splunk to Monitor Network Health

Splunk> Winning the War on Error

I’ve been using Splunk professionally over the last several years, and I’ve become a big fan of using it for my data processing needs. Splunk is very very good about ingesting just about any kind of event data, optionally extracting fields at search time, and providing tools to graph that data, find trends, and see what is really happening on your platform. This is important when your platform consists of thousands of servers, as it does at my day job!

While Splunk can handle events in timestamp key=value key2=value2 format, it also has support for dozens of standardized formats such as syslog, Apache logs, etc. If your data is in a customized format, no problem! Splunk can extract that data at either index or search time! Finally, there’s the Search Processing Language, which is like SQL but for your event data. With SPL, you can run queries, generate graphs, and combine them all programatically.

So yeah, I’m a huge fan of Splunk. One thing I use it for out of the of office is to graph the health of my Internet connection. This is useful both for when I’m at home and when I am traveling–I just feed the output of ping into Splunk and then I can get graphs of packet loss and network latency.

Let’s just jump into an example screen–here’s what I saw when I was a friend’s place and I uploaded a video to YouTube:

Continue reading “Using Splunk to Monitor Network Health”

The Decepticons Get Drunk on Energon

This one isn’t so much a kick in my childhood as much as it is me wondering what the writers were thinking:

The dialogue in this scene is just… so hilariously out of character for the Decepticons it’s surreal. By this point, the series made it clear that the Decepticons were evil villains, yet in this scene they’re portrayed as a bunch of silly drunks. Why? Just, why?

www.cheopard.com

What is a cheopard?

A typical cheetah, laying on its back.
A typical cheetah.

It’s a cross or hybrid of a leopard and a cheetah. It combines the good qualities of both species.

Generally speaking, a cheopard must be at least 28% cheetah.

So what are the good qualities of leopards?

Leopards are smart. They drag their prey up into trees and feast on it over several days. They are also strong–they can carry more than their body weight.

Leopards have also been known to steal kills from other predators (including cheetahs). That’s pretty badass.

So what are the good qualities of cheetahs?

I don’t know. I’ll get back to you on that.

Why did you register cheopard.com?

Because it was a nice short domain name that was available.

How did I get to this page?

You probably met me at a furry convention and I gave you this link.

If you have any questions, or are an actual cheetah, don’t hesitate to reach out or leave a comment below.