{"id":14972032,"url":"https://github.com/chvvkumar/monitoring","last_synced_at":"2025-04-05T01:09:24.486Z","repository":{"id":45455466,"uuid":"126714590","full_name":"chvvkumar/Monitoring","owner":"chvvkumar","description":"Monitor ESXi, Synology, Docker, PiHole and Raspberry Pi and Windows using Grafana, InfluxDB and Telegraf","archived":false,"fork":false,"pushed_at":"2022-03-28T16:55:42.000Z","size":4809,"stargazers_count":646,"open_issues_count":0,"forks_count":62,"subscribers_count":36,"default_branch":"master","last_synced_at":"2025-04-05T01:09:10.808Z","etag":null,"topics":["grafana","homelab","influxdb","pi-hole","pihole-dashboard","raspberry-pi","raspberry-pi-dashboard","synology","synology-dashboard","telegraf"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chvvkumar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-25T16:01:06.000Z","updated_at":"2025-02-22T16:37:45.000Z","dependencies_parsed_at":"2022-07-14T12:31:02.581Z","dependency_job_id":null,"html_url":"https://github.com/chvvkumar/Monitoring","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chvvkumar%2FMonitoring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chvvkumar%2FMonitoring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chvvkumar%2FMonitoring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chvvkumar%2FMonitoring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chvvkumar","download_url":"https://codeload.github.com/chvvkumar/Monitoring/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271532,"owners_count":20911587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grafana","homelab","influxdb","pi-hole","pihole-dashboard","raspberry-pi","raspberry-pi-dashboard","synology","synology-dashboard","telegraf"],"created_at":"2024-09-24T13:46:15.234Z","updated_at":"2025-04-05T01:09:24.472Z","avatar_url":"https://github.com/chvvkumar.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# Monitor ESXi, Synology, Docker, PiHole, Plex and Raspberry Pi and Windows using Grafana, InfluxDB and Telegraf\n\n## Demo\n\nhttps://grafana.challa.co\n\n## Screenshots:\n\nSynology Dashboard\n![Synology Dashboard](./Screenshots/synology.png)\n\nPlex:\n![Plex](./Screenshots/plex.png)\n\nPiHole and Raspberry Pi Dashboard\n![PiHole Dashboard](./Screenshots/pihole.png)\n\nESXi Dashboard\n![ESXi Dashboard](./Screenshots/esxi.png)\n\nWindows\n![Windows](./Screenshots/windows.png)\n\nDocker Dashboard\n![Docker Dashboard](./Screenshots/docker.jpg)\n\nAsuswrt-Merlin Router (ASUS RT-AC68):\n![ASUS RT-AC68](./Screenshots/router_merlin.png)\n\n## **Raspberry Pi**\n\nDownload \"telegraf_pi_temp.sh\" and 'chmod +x' the script. Then call it from within telegraf using \"[[inputs.exec]]\" (already included telegraf.conf in this repo).\n\n## **PiHole**\nChange the address of PiHole to your PiHole's address in telegraf.conf   \n\n\n 4. Restart telegraf\n\n## **Synology NAS**\n\nBased on:\nhttps://github.com/jperillo/Synology_dashboard_grafana\n\nMake sure snmp-mibs-downloader is already installed on your telegraf host. It will download and install additional MIBs during install.\n\n    apt-get install snmp-mibs-downloader\nthen\n\n    download-mibs\n\n1.  edit /etc/snmp/snmp.conf and comment out the 'mibs:' line. Here is what mine looks like:\n    \n    ```\n      GNU nano 2.7.4                                                                                                                   \n    File: /etc/snmp/snmp.conf\n    # As the snmp packages come without MIB files due to license reasons, loading\n    # of MIBs is disabled by default. If you added the MIBs you can reenable\n    # loading them by commenting out the following line.\n    # mibs :\n    \n    ```\n    \n2.  Now when you do a SNMPwalk, it will automatically translate OIDs to Names. This is what it looks like against my Synology:\n    \n    ```\n    kumar@raspberrypi:~ $ snmpwalk -c public -v 2c 192.168.1.5\n    SNMPv2-MIB::sysDescr.0 = STRING: Linux DiskStation 3.10.102 SMP Fri Jan 26 06:46:44 CST 2018 x86_64\n    SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10\n    DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (90908998) 10 days, 12:31:29.98\n    SNMPv2-MIB::sysContact.0 = STRING: Redacted\n    SNMPv2-MIB::sysName.0 = STRING: Synology DS416Play\n    SNMPv2-MIB::sysLocation.0 = STRING: Home\n    \n    ```\n    \n3.  Get your MIBs (from here, for Synology  [Synology MIB download](https://global.download.synology.com/download/Document/MIBGuide/Synology_MIB_File.zip)) and drop them in either of the below locations:\n\n\n    \n`/home/$USER/.snmp/mibs or user/share/snmp/mibs`\n\n    \n4.  Go through the linked page above or the snmpwalk output and make a list of OIDs you want to monitor (grep is your friend here)\n    \n5.  Add them to telegraf.conf using examples others have provided elsewhere in this thread\n    \n6.  Restart telegraf and test with the '-test' flag. To verify everything is working as expected.\n\n## **VMWare**\n\nTelegraf introduced a new vsphere plugin. I will be using this instead of a custom script going forward. This plugin and details can be found here:\n\nhttps://github.com/influxdata/telegraf/tree/master/plugins/inputs/vsphere\n\nDashboards for the metrics can be found here:\n\nhttps://github.com/jorgedlcruz/vmware-grafana\n\n\n## **Docker**\n\nDockerHost: Synology NAS (DS416Play)\nTelegraf: Raspberry Pi\n\nSince I did not want to mess around with exposing docker.sock file to a remote client, I went with exposing a TCP endpoint on docker host to a remote telegraf agent. \n\nTo do this: \n \n \n\n **1. On Docker Host (Synology):**\n\nAdd the endpoint details to /var/packages/Docker/etc/dockerd.json like so:\n\n    admin@DiskStation:~$ cat /var/packages/Docker/etc/dockerd.json\n    {\n    \t\"hosts\" : [ \"tcp://synology.lan:2375\", \"unix:///var/run/docker.sock\" ],\n    \t\"registry-mirrors\" : []\n    }\n\nIn the above snippet, `tcp://synology.lan:2375` Is the end point definition we have to add\n\n*Note:* Don't change any part of the \"unix:///var/run/docker.sock\" definition. Synology uses to run the Docker GUI. Also, since this is a JSON file, all lines except the last line have a \" , \" at the end. Also note the \" , \" after the TCP definition.\n\nIf you want to be doubly sure, you can use https://jsonlint.com to validate the JSON contents.\n\nOnce this is done, restart the docker package from within DSM's Package center\n\n **2. On Telegraf:**\nAdd the below lines to your input plugins:\n\n    # Synology Docker\n    [[inputs.docker]]\n      endpoint = \"tcp://synology.lan:2375\"\n      container_names = []\n\n **3. Grafana Dashboard:**\n\nGrafana Dashboard JSON is included in this repository. Simply import it, define your data source and you should be good to go.\n\n## **Plex**\n\nPlex can be monitored using Verken linked below. I have included my customized dashboard in the repo for reference.\n\nhttps://github.com/Boerderij/Varken\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchvvkumar%2Fmonitoring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchvvkumar%2Fmonitoring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchvvkumar%2Fmonitoring/lists"}