Skip to header Skip to main navigation Skip to main content Skip to footer

Search form

Site branding

Home
What's up, home?

Main navigation

  • Home
  • Story mode
  • About
  • Features
  • Hardware list
  • Videos
  • GitHub (opens in new tab)
  • Daily AI generated stories (opens in new tab)

Breadcrumbs

Breadcrumb

  • Home

Main page content

Part 146: Monitor Cowrie ssh honeypot with Zabbix

By whatsuphome | 7:13 PM EEST, Mon June 15, 2026

TL;DR

Cowrie emulates a fake SSH shell, capturing everything attackers try against your systems. I hooked it into Zabbix to track attack volume, commands and source IPs, with real log snippets.
What's up, home? part 146 cover image

Do you know how often your system is attacked, or what the attackers would do if they could actually ssh into your systems?

Cowrie is a funny little ssh/telnet honeypot. It can work in several different modes, but basically it emulates a Linux/Unix shell, capturing everything that an attacker attempted to do. However, none of the commands that attacker thinks they are running are real; the output mimics actual shell, and you can configure it to respond more. You can use static responses or even hook Cowrie with an LLM to come up with responses in bit laggy real-time. 

If I login to my Cowrie instance, on surface things look pretty usual: However, none of this is real.

Cowrie console

The thing then logs the sessions for example in JSON or plain text formats, or it can push data to Elasticsearch or many different IP reputation services. Here's a snippet of the log I got from my above example when watching the logs of the host machine:

{"eventid":"cowrie.command.input","input":"ls /etc/","message":"CMD: ls /etc/","sensor":"justchoking","uuid":"93a4e046-65ca-11f1-8c96-e45f018b900e","timestamp":"2026-06-15T22:35:38.307938+0300","src_ip":"185.218.xxx.xxx","session":"63daae272140","protocol":"ssh"}
{"eventid":"cowrie.command.input","input":"uname -a","message":"CMD: uname -a","sensor":"justchoking","uuid":"93a4e046-65ca-11f1-8c96-e45f018b900e","timestamp":"2026-06-15T22:35:41.654335+0300","src_ip":"185.218.xxx.xxx","session":"63daae272140","protocol":"ssh"}
{"eventid":"cowrie.command.input","input":"ps aux","message":"CMD: ps aux","sensor":"justchoking","uuid":"93a4e046-65ca-11f1-8c96-e45f018b900e","timestamp":"2026-06-15T22:35:46.423676+0300","src_ip":"185.218.xxx.xxx","session":"63daae272140","protocol":"ssh"}
{"eventid":"cowrie.log.closed","ttylog":"var/lib/cowrie/tty/8b753ea755064f832d09c1dbb13f3e16d3f4cb8ec1e49b69613f41010a7f60e8","size":11993,"shasum":"8b753ea755064f832d09c1dbb13f3e16d3f4cb8ec1e49b69613f41010a7f60e8","duplicate":false,"duration":"106.2","message":"Closing TTY Log: var/lib/cowrie/tty/8b753ea755064f832d09c1dbb13f3e16d3f4cb8ec1e49b69613f41010a7f60e8 after 106.2 seconds","sensor":"justchoking","uuid":"93a4e046-65ca-11f1-8c96-e45f018b900e","timestamp":"2026-06-15T22:37:11.306305+0300","src_ip":"185.218.xxx.xxx","session":"63daae272140","protocol":"ssh"}
{"eventid":"cowrie.session.closed","duration":"107.8","message":"Connection lost after 107.8 seconds","sensor":"justchoking","uuid":"93a4e046-65ca-11f1-8c96-e45f018b900e","timestamp":"2026-06-15T22:37:11.328914+0300","src_ip":"185.218.xxx.xxx","session":"63daae272140","protocol":"ssh"}

As always, I wanted to monitor all this with Zabbix to see what happens within my little honeypot. Quite a lot, I would say.

Setting up Cowrie

Please refer to Cowrie installation if you are interested to try out yourself. You can install it via Docker or PyPI. I created a dedicated cowrie user for which I installed the PyPI version to make Zabbix agent integration then super trivial.

Setting up Zabbix template

My Zabbix agent is reading Cowrie JSON log files and Zabbix then parses those with standard item pre-processing. As "everybody" now uses AI, so did I for this template, too.

Cowrie template items

On dependent item, item preprocessing just picks the appropriate JSONPath snippet.

Dependent item dialogDependent item preprocessing

With this template, I get 

  • Attacker IP
  • Successful and failed login attempts
  • Usernames and passwords that were attempted
  • Commands that were run during the session

Example dashboard

Data like this would not do any good if I would not have a dashboard for it. Well, here goes! As you can see, the attacks are constant, silent moments are very rare. Of course, for this case, I absolutely needed to use Zabbix built-in honeycomb widget,
 

Example dashboard

All this sure is very educational. Whether monitoring something like this excites me or makes me absolutely terrified, I don't know. It gets even scarier -- or more useful -- if you feed these logs to LLM of your choice and ask it to produce a report for you. Here's a very short snippet of such thing:

AI report

whatsuphome
honeypot
cowrie
  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
Content blocks
Cowrie emulates a fake SSH shell, capturing everything attackers try against your systems. I hooked it into Zabbix to track attack volume, commands and source IPs, with real log snippets.
Pagination
  • First page « First
  • Previous page ‹ Previous
  • …
  • Page 166
  • Page 167
  • Page 168
  • Page 169
  • Current page 170
  • Page 171
  • Page 172
  • Page 173
  • Page 174
  • …
  • Next page Next ›
  • Last page Last »
Subscribe to

Search

Who am I?

  • Janne Pikkarainen from Finland 🇫🇮
  • Began with computers in 1986 with C64
  • Doing IT for living since 1999
  • Principal Site Reliability Engineer at Forcepoint
  • A Zabbix Summit speaker every year since 2022
  • Walking, talking Zabbix commercial

Support my project

Buy me a coffee 

Footer menu

  • Contact

What's up, home? | Janne Pikkarainen | contact(at)whatsuphome.fi | 2022 - 2026

Developed and Designed by Janne Pikkarainen