{"id":19044527,"url":"https://github.com/stdevel/check_pakfire","last_synced_at":"2025-10-26T05:10:24.826Z","repository":{"id":45920916,"uuid":"63165695","full_name":"stdevel/check_pakfire","owner":"stdevel","description":"A Nagios / Icinga plugin for checking IPFire pakfire updates","archived":false,"fork":false,"pushed_at":"2021-11-28T10:12:03.000Z","size":43,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-25T06:32:23.581Z","etag":null,"topics":["icinga","icinga-plugin","ipfire","nagios","nrpe","pakfire-updates"],"latest_commit_sha":null,"homepage":null,"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/stdevel.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":"2016-07-12T14:40:27.000Z","updated_at":"2024-04-03T14:01:19.000Z","dependencies_parsed_at":"2022-09-02T19:51:07.914Z","dependency_job_id":null,"html_url":"https://github.com/stdevel/check_pakfire","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/stdevel/check_pakfire","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdevel%2Fcheck_pakfire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdevel%2Fcheck_pakfire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdevel%2Fcheck_pakfire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdevel%2Fcheck_pakfire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stdevel","download_url":"https://codeload.github.com/stdevel/check_pakfire/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdevel%2Fcheck_pakfire/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281059632,"owners_count":26437061,"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","status":"online","status_checked_at":"2025-10-26T02:00:06.575Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["icinga","icinga-plugin","ipfire","nagios","nrpe","pakfire-updates"],"created_at":"2024-11-08T22:46:33.063Z","updated_at":"2025-10-26T05:10:24.810Z","avatar_url":"https://github.com/stdevel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# check_pakfire\n\n`check_pakfire` is a Nagios / Icinga plugin for checking [IPFire](http://www.ipfire.org) Pakfire updates and required reboots.\n\n## Requirements\n\nI successfully tested the plugin with **IPFire 2.x**. I'm not sure whether IPFire 3.x comes with a new Pakfire architecture - so, use this on newer versions at your own risk. ;-)\n\nNo additional Python packages are required - just deploy the script and use it.\n\n**Note:** Beginning with plugin version **1.4**, Python 3 is the only supported version. If you're using an older IPFire release, you will need to use plugin version **1.3**.\n\n## Usage\n\nBy default, the script checks for core updates and also packages upgrades - it is also possible to only check core updates (*`-e` / `--exclude-packages` parameters*). Gathering performance data (*outdated packages*) can be useful when monitoring a big amount of IPFire systems.\n\nThe following parameters can be specified:\n\n| Parameter | Description |\n|:----------|:------------|\n| `-d` / `--debug` | enable debugging outputs (*default: no*) |\n| `-h` / `--help` | shows help and quits |\n| `-e` / `--exclude-packages` | disables checking for package updates (*default: no*) |\n| `-m` / `--mirror` | defines one or multiple mirrors (*default: system mirror list*) |\n| `-n` / `--need-reboot` | defines exit level if reboot is required (*default: w*) |\n| `-P` / `--show-perfdata` | enables performance data (*default: no*) |\n| `-w` / `--packages-warning` | defines warning threshold for outdated packages (*default: 1*) |\n| `-c` / `--packages-critical` | defines warning threshold for outdated packages (*default: 5*) |\n| `-W` / `--core-warning` | defines warning threshold for outdated core (*default: 1*) |\n| `-C` / `--core-critical` | defines warning threshold for outdated core (*default: 3*) |\n| `--version` | prints programm version and quits |\n\n### Examples\n\nThe following example checks for core updates only:\n\n```shell\n$ ./check_pakfire.py -e\nOK: Core update (124) up2date\n```\n\nA IPFire host with some outdated packages:\n\n```shell\n$ ./check_pakfire.py\nWARNING: Core update (124) up2date, packages outdated (linue-pae, lcd4linux)\n```\n\nAn updated IPFire host with performance data:\n\n```shell\n$ ./check_pakfire.py\nWARNING: Core update (124) up2date, packages outdated (linue-pae, lcd4linux) | 'system_updates'=0;;;; 'outdated_packages'=2.0;1.0;5.0;;\n```\n\nAn outdated host with a pending reboot:\n\n```shell\n$ ./check_pakfire.py\nCRITICAL: Core update (128) outdated (130), packages up2date, system reboot required\n```\n\n## Installation\n\nTo install the plugin, move the Python script into the appropriate directory and create a **configuration**.\n\n## Configuration\n\n### Nagios / Icinga 1.x\n\nWithin Nagios / Icinga you will need to configure a remote check command, e.g. for NRPE:\n\n```text\n# check_nrpe_pakfire\ndefine command{\n    command_name        check_nrpe_pakfire\n    command_line        $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_pakfire -a $ARG1$\n}\n```\n\nConfigure the check for a particular host, e.g.:\n\n```text\n# DIAG: Updates\ndefine service{\n        use                             generic-service\n        host_name                       st-ipfire03\n        service_description             DIAG: Updates\n        check_command                   check_nrpe_pakfire!-P\n}\n```\n\n### Icinga2\n\nDefine a service like this:\n\n```text\napply Service \"DIAG: Updates\" {\n  import \"generic-service\"\n  check_command = \"by_ssh\"\n  vars.by_ssh_command = [ \"/opt/check_pakfire.py\", \"-P\" ]\n  vars.by_ssh_port = host.vars.ssh_port\n  vars.by_ssh_logname = \"icinga\"\n  assign where host.vars.os == \"Linux\" \u0026\u0026 host.vars.app == \"router\"\n}\n```\n\nDefine SSH port and application for your IPFire host:\n\n```text\nobject Host \"st-ipfire03.stankowic.loc\" {\n  import \"generic-host\"\n\n  address = \"xxx\"\n\n  vars.os = \"Linux\"\n  vars.app = \"router\"\n\n  vars.ssh_port = 222\n}\n```\n\nValidate the configuration and reload the Icinga2 daemon:\n\n```shell\n# icinga2 daemon -C\n# service icinga2 reload\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstdevel%2Fcheck_pakfire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstdevel%2Fcheck_pakfire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstdevel%2Fcheck_pakfire/lists"}