Contact

Subscribe via Email

Subscribe via RSS/JSON

Categories

Creative Commons Attribution 4.0 International License
© Rakhesh Sasidharan

Elsewhere

Station Eleven – Boring!

When in the UK recently I bought a bunch of books to rekindle my reading habit. One of these was Station Eleven. I am not sure where I came across this book – I have a memory of it being on one of the TWiT shows – but I can’t find any hits when searching for this book and any of the shows of that network, so it must be a mistaken memory. Anyhow, all the blurbs on the book cover made it sound amazing, and it’s won some sci-fi award, and it’s supposed to be one of these dystopian future sort of novels from a Canadian authoress (and I think of Margaret Atwood whose books I like), and it was on half price in the book store … so I purchased it. Bad decision!

To be fair I have read about half the book. Am on page 146 of 333 and finally giving up. I think if I stick with a book till nearly midway and it still doesn’t interest me then there’s no point spending more time further. There are other books to read or stuff to do, I must call quits here. Sucks that I spent money on this book though coz I can’t just return it like I would do an audiobook, and I don’t want to keep it in my library either, so I’ll have to donate it I guess. Bad decision. Very bad decision buying this book!

The book just meanders on and on. There’s some flu, the end of the world, civilization has come to and end, everything’s reverted to an older age of small towns and no technology and a bunch of survivors. No there’s no zombies or some crazy dystopian future – it’s just people wandering around. There’s some group of traveling artists, and a lot of flashbacks to some character who died initially … it’s just so boring and pointless. In fact, I don’t even know why I am wasting time writing about the book. :) I just need to vent it out somewhere I guess and get it out of my system.

To be fair the book is not like some of the newer books that read more like they are written for a movie or TV series. A lot of books I read recently on the Kindle are written that way and it’s irritating – I’d much rather watch it on screen then. No, this one is well written and I could have fallen in love with it had there been some point or purpose or direction or pace to the whole narrative. As of now it’s just wasting my time.

Currently listening to: City of Thieves

Every now and then Audible has some sale and I try a new author I haven’t heard of. I am not very good at exploring different authors or genres coz I don’t like leaving my comfort zone. But with Audible I can at least give something a shot, and then return the book if I don’t like it. Usually I try a new book based on the narrator or just the book cover. I read some of the review to try and get an understanding, but it’s difficult to judge a book by reviews as different people have different tastes (and I have found I don’t like most sci-fi stories that a lot of people rave about).

Anyways, City of Thieves by David Benioff is one such book I tried recently and I am loving it. I bought it coz of the cover and also coz it is narrated by Ron Perleman. It’s been a good listen so far and while I still have a long ways to go I thought I should mention it here. Ron Perleman narrates it good too with the different voices and all that.

While Googling on some of the places and authors in the book (most of which turns out to be fictional) I came across the following wonderful quote from this blog post:

Talent must be a fanatical mistress. She’s beautiful; when you’re with her, people watch you, they notice. But she bangs on your door at odd hours, and she disappears for long stretches, and she has no patience for the rest of your existence: your wife, your children, your friends. She is the most thrilling evening of your week, but some day she will leave you for good. One night, after she’s been gone for years, you will see her on the arm of a younger man, and she will pretend not to recognize you.

David Benioff has two other books but they don’t seem to be in Audible. Will have to read them the old fashioned way. :o)

Update: Finished the book. Loved it!! A must read/ listen.

Creating an OMS tile for computer online/ offline status

This is by no means a big deal, nor am I trying to take credit. But it is something I setup a few days ago and I was pleased to see it in action today, so wanted to post it somewhere. :)

So as I said earlier I have been reading up on Azure monitoring these past few days. I needed something to aim towards and this was one of the things I tried out.

When you install the “Agent Health” solution it gives a tile in the OMS home page that shows the status of all the agents – basically their offline/ online status based on whether an agent is responsive or not.

The problem with this tile is that it only looks for servers that are offline for more than 24 hours! So it is pretty useless if a server went down say 10 mins ago – I can keep staring at the tile for the whole day and that server will not pop up.

I looked at creating something of my own and this is what I came up with –

If you click on the tile it shows a list of servers with the offline ones on top. :)

I removed the computer names in the screenshot that’s why it is blank.

So how did I create this?

I went into View Designer and added the “Donut” as my overview tile. 

Changed the name to “Agent Status”. Left description blank for now. And filled the following for the query:

Here’s what this query does. First it collects all the Heartbeat events. These are piped to a summarize operator. This summarizes the events by Computer name (which is an attribute of each event) and for each computer it computes a new attribute called LastSeen which is the maximum TimeGenerated timestamp of all its events. (You need to summarize to do this. The concept feels a bit alien to me and I am still getting my head around it. But I am getting there).

This summary is then piped to an extend operator which adds a new attribute called Status. (BTW attributes can also be thought of as columns in a table. So each event is a row with the attributes corresponding to columns). This new attribute is set to Offline or Online depending on whether the previously computed LastSeen was less than 15 mins or not.

The output of this is sent to another summarize who now summarizes it by Status with a count of the number of events of each time.

And this output is piped to an order to sort it in descending. (I don’t need it for this overview tile but I use the same query later on too so wanted to keep it consistent).

All good? Now scroll down and change the colors if you want to. I went with Color1 = #008272 (a dark green) and Color 2 = #ba141a (a dark red).

That’s it, do an apply and you will see the donut change to reflect the result of the query.

Now for the view dashboard – which is what you get when someone clicks the donut!

I went with a “Donut & list” for this one. In the General section I changed Group Title to “Agent Status”, in the Header section I changed Title to “Status”, and in the Donut section I pasted the same query as above. Also changed the colors to match the ones above. Basically the donut part is same as before because you want to see the same output. It’s the list where we make some changes.

In the List section I put the following query:

Not much of a difference from before, except that I don’t do any second summarizing. Instead I sort it by the LastSeen attribute after rounding it up to 1 min. This way the oldest heartbeat event comes up on top – i.e. the server that has been offline for the longest. In the Computer Titles section I changed the Name to “Computer” and Value to “Last Seen”. I think there is some way to add a heading for the Offline/Online column too but I couldn’t figure it out. Also, the Thresholds feature seemed cool – would be nice if I could color the offline ones red for instance, but I couldn’t figure that out either.

Lastly I changed the click-through navigation action to be “Log Search” and put the following:

This just gives a list of computers that have been offline for more than 15 mins. I did this because the default action tries to search on my Status attribute and fails; so thought it’s best I put something of my own.

And that’s it really! Like I said no biggie, but it’s my first OMS tile and so I am proud. :)

ps. This blog post brought to you by the Tamil version of the song “Move Your Body” from the Bollywood movie “Johnny Gaddar” which for some reason has been playing in my head ever since I got home today. Which is funny coz that movie is heavily inspired by the books of James Hadley Chase and I was searching for his books at Waterstones when I was in London a few weeks ago (and also yesterday online).

[Aside] Various Azure links

My blog posting has taken a turn for the worse. Mainly coz I have been out of country and since returning I am busy reading up on Azure monitoring.

Anyways, some quick links to tabs I want to close now but which will be useful for me later –

  • A funny thing with Azure monitoring (OMS/ Log Analytics) is that it can’t just do simple WMI queries against your VMs to check if a service is running. Crazy, right! So you have to resort to tricks like monitor the event logs to see any status messages. Came across this blog post with a neat idea of using performance counters. I came across that in turn from this blog post that has a different way of using the event logs.
  • We use load balancers in Azure and I was thinking I could tap into their monitoring signals (from the health probes) to know if a particular server/ service is up or down. In a way it doesn’t matter if a particular server/ service is down coz there won’t be a user impact coz of the load balancer, so what I am really interested in knowing is whether a particular monitored entity (from the load balancer point of view) is down or not. But turns out the basic load balancer cannot log monitoring signals if it is for internal use only (i.e. doesn’t have a public IP). You either need to assign it a public IP or use the newer standard load balancer.
  • Using OMS to monitor and send alert for BSOD.
  • Using OMS to track shutdown events.
  • A bit dated, but using OMS to monitor agent health (has some queries in the older query language).
  • A useful list of log analytics query syntax (it’s a translation from old to new style queries actually but I found it a good reference)

Now for some non-Azure stuff which I am too lazy to put in a separate blog post:

  • A blog post on the difference between application consistent and crash consistent backups.
  • At work we noticed that ADFS seemed to break for our Windows 10 machines. I am not too clear on the details as it seemed to break with just one application (ZScaler). By way of fixing it we came across this forum post which detailed the same symptoms as us and the fix suggested there (Set-ADFSProperties -IgnoreTokenBinding $True) did the trick for us. So what is this token binding thing?
    • Token Binding seems to be like cookies for HTTPS. I found this presentation to be a good explanation of it. Basically token binding binds your security token (like cookies or ADFS tokens) to the TLS session you have with a server, such that if anyone were to get hold of your cookie and try to use it in another session it will fail. Your tokens are bound to that TLS session only. I also found this medium post to be a good techie explanation of it (but I didn’t read it properly*). 
    • It seems to be enabled on the client side from Windows 10 1511 and upwards.
    • I saw the same recommendation in these Microsoft Docs on setting up Azure stack.

Some excerpts from the medium post (but please go and read the full one to get a proper understanding). The excerpt is mostly for my reference:

Most of the OAuth 2.0 deployments do rely upon bearer tokens. A bearer token is like ‘cash’. If I steal 10 bucks from you, I can use it at a Starbucks to buy a cup of coffee — no questions asked. I do not want to prove that I own the ten dollar note.

OAuth 2.0 recommends using TLS (Transport Layer Security) for all the interactions between the client, authorization server and resource server. This makes the OAuth 2.0 model quite simple with no complex cryptography involved — but at the same time it carries all the risks associated with a bearer token. There is no second level of defense.

OAuth 2.0 token binding proposal cryptographically binds security tokens to the TLS layer, preventing token export and replay attacks. It relies on TLS — but since it binds the tokens to the TLS connection itself, anyone who steals a token cannot use it over a different channel.

Lastly, I came across this awesome blog post (which too I didn’t read properly* – sorry to myself!) but I liked a lot so here’s a link to my future self – principles of token validation.

 

* I didn’t read these posts properly coz I was in a “troubleshooting mode” trying to find out why ADFS broke with token binding. If I took more time to read them I know I’d get side tracked. I still don’t know why ADFS broke, but I have an idea.

[Aside] Quote from Mythos

Listening to Stephen Fry’s Mythos and I loved this epitaph from one of the stories. That of Phaëthon, son of Phoebus Apollo the sun God, who rode his father’s sun chariot for a day but lost control and ended up scorching Africa in the process (thus creating the Sahara desert). This epitaph was offered by the American classicist Edith Hamilton.

Here Phaëthon lies who in the sun-gods chariot fared.
And though greatly he failed, more greatly he dared.