Hello community, here is the log from the commit of package icinga2 for openSUSE:Factory checked in at 2019-03-21 09:53:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/icinga2 (Old) and /work/SRC/openSUSE:Factory/.icinga2.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "icinga2" Thu Mar 21 09:53:29 2019 rev:17 rq:687048 version:2.10.4 Changes: -------- --- /work/SRC/openSUSE:Factory/icinga2/icinga2.changes 2019-02-26 22:22:50.766056682 +0100 +++ /work/SRC/openSUSE:Factory/.icinga2.new.28833/icinga2.changes 2019-03-21 09:53:31.646785174 +0100 @@ -1,0 +2,12 @@ +Wed Mar 20 19:14:39 UTC 2019 - [email protected] + +- update to 2.10.4 + * Bugfixes: + - Fix TLS connections in Influxdb/Elasticsearch features leaking file descriptors (#6989 #7018 ref/IP/12219) + - Fixes for delayed and one-time notifications (#5561 #6757) + - Improve performance for downtimes/comments added in HA clusters (#6885 ref/IP/9235) + - check_perfmon supports non-localized performance counter names (#5546 #6418) + + Detail see: https://github.com/Icinga/icinga2/blob/master/CHANGELOG.md#2104-2019-03-19 + +------------------------------------------------------------------- Old: ---- v2.10.3.tar.gz New: ---- v2.10.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ icinga2.spec ++++++ --- /var/tmp/diff_new_pack.1RwpjM/_old 2019-03-21 09:53:32.966784817 +0100 +++ /var/tmp/diff_new_pack.1RwpjM/_new 2019-03-21 09:53:32.970784816 +0100 @@ -86,7 +86,7 @@ %else %endif # suse Name: icinga2 -Version: 2.10.3 +Version: 2.10.4 Release: %{revision}%{?dist} Url: https://www.icinga.com/ Source: https://github.com/Icinga/%{name}/archive/v%{version}.tar.gz ++++++ v2.10.3.tar.gz -> v2.10.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/AUTHORS new/icinga2-2.10.4/AUTHORS --- old/icinga2-2.10.3/AUTHORS 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/AUTHORS 2019-03-19 12:55:29.000000000 +0100 @@ -100,6 +100,7 @@ Lars Krüger <[email protected]> Leah Oswald <[email protected]> Lee Clemens <[email protected]> +Lee Garrett <[email protected]> Lennart Betz <[email protected]> Leon Stringer <[email protected]> Louis Sautier <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/CHANGELOG.md new/icinga2-2.10.4/CHANGELOG.md --- old/icinga2-2.10.3/CHANGELOG.md 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/CHANGELOG.md 2019-03-19 12:55:29.000000000 +0100 @@ -1,5 +1,56 @@ # Icinga 2.x CHANGELOG +## 2.10.4 (2019-03-19) + +### Notes + +* Fix TLS connections in Influxdb/Elasticsearch features leaking file descriptors (#6989 #7018 ref/IP/12219) +* Fixes for delayed and one-time notifications (#5561 #6757) +* Improve performance for downtimes/comments added in HA clusters (#6885 ref/IP/9235) +* check_perfmon supports non-localized performance counter names (#5546 #6418) + +### Enhancement + +* [#6732](https://github.com/icinga/icinga2/issues/6732) (Windows, PR): Update Windows Agent with new design +* [#6729](https://github.com/icinga/icinga2/issues/6729) (Windows): Polish the Windows Agent design +* [#6418](https://github.com/icinga/icinga2/issues/6418) (Windows): check\_perfmon.exe: Add fallback support for localized performance counters + +### Bug + +* [#7020](https://github.com/icinga/icinga2/issues/7020) (Elasticsearch, PR): ElasticsearchWriter: don't leak sockets +* [#7018](https://github.com/icinga/icinga2/issues/7018) (Elasticsearch): ElasticsearchWriter not closing SSL connections on Icinga2 2.10.3.1 +* [#6991](https://github.com/icinga/icinga2/issues/6991) (CLI, PR): PkiUtility::NewCa\(\): just warn if the CA files already exist +* [#6990](https://github.com/icinga/icinga2/issues/6990) (InfluxDB, PR): InfluxdbWriter: don't leak sockets +* [#6989](https://github.com/icinga/icinga2/issues/6989) (InfluxDB): InfluxdbWriter not closing connections Icinga2 2.10.3 CentOS 7 +* [#6976](https://github.com/icinga/icinga2/issues/6976) (Cluster, PR): Don't require OS headers to provide SO\_REUSEPORT +* [#6896](https://github.com/icinga/icinga2/issues/6896) (Notifications, PR): Notification\#BeginExecuteNotification\(\): SetNextNotification\(\) correctly +* [#6885](https://github.com/icinga/icinga2/issues/6885) (API, Configuration, PR): Don't run UpdateObjectAuthority for Comments and Downtimes +* [#6800](https://github.com/icinga/icinga2/issues/6800) (Plugins, Windows, PR): Fix check\_perfmon to support non-localized names +* [#6757](https://github.com/icinga/icinga2/issues/6757) (Notifications, PR): Fix that no\_more\_notifications gets reset when Recovery notifications are filtered away +* [#5561](https://github.com/icinga/icinga2/issues/5561) (Notifications): Set the notification mode times.begin is not 0, the first notification has a delay +* [#5546](https://github.com/icinga/icinga2/issues/5546) (Plugins, Windows): check\_perfmon.exe doesn't support cyrillic names of perf counters + +### Documentation + +* [#7033](https://github.com/icinga/icinga2/issues/7033) (Documentation, PR): Docs: Update supported package repos in Getting Started chapter +* [#7028](https://github.com/icinga/icinga2/issues/7028) (Documentation, PR): Fix heading level in development chapter +* [#7001](https://github.com/icinga/icinga2/issues/7001) (Documentation, PR): Assignment operators doc: tell what the { } are for +* [#6995](https://github.com/icinga/icinga2/issues/6995) (Documentation, PR): Typo and link fix +* [#6979](https://github.com/icinga/icinga2/issues/6979) (Documentation, PR): Doc: write systemd lower-case +* [#6975](https://github.com/icinga/icinga2/issues/6975) (Documentation, PR): Fix nested hostgroup example +* [#6949](https://github.com/icinga/icinga2/issues/6949) (Documentation, PR): Doc fix: update check\_rbl parameter +* [#6708](https://github.com/icinga/icinga2/issues/6708) (Documentation, PR): Docs: Alpine needs 'edge/main' repository too +* [#5430](https://github.com/icinga/icinga2/issues/5430) (Documentation): Documentation about dictionaries and assignements + +### Support + +* [#7032](https://github.com/icinga/icinga2/issues/7032) (code-quality, PR): Backport Defer class for 2.10 +* [#7030](https://github.com/icinga/icinga2/issues/7030) (Packages, PR): SELinux: add unreserved\_port\_type attribute to icinga2\_port\_t +* [#7029](https://github.com/icinga/icinga2/issues/7029) (Packages): Add unreserved\_port\_type attribute to icinga2\_port\_t +* [#7002](https://github.com/icinga/icinga2/issues/7002) (Plugins, Windows, PR): check\_network -h: drop non-existent feature +* [#6987](https://github.com/icinga/icinga2/issues/6987) (Tests): base-base\_utility/comparepasswords\_issafe test fails on i386 +* [#6977](https://github.com/icinga/icinga2/issues/6977) (Tests, PR): Ignore failure of unit test base\_utility/comparepasswords\_issafe + ## 2.10.3 (2019-02-26) ### Notes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/RELEASE.md new/icinga2-2.10.4/RELEASE.md --- old/icinga2-2.10.3/RELEASE.md 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/RELEASE.md 2019-03-19 12:55:29.000000000 +0100 @@ -26,7 +26,7 @@ Specify the release version. ``` -VERSION=2.10.2 +VERSION=2.10.4 ``` Add your signing key to your Git configuration file, if not already there. @@ -162,17 +162,19 @@ Set the `Version`, `Revision` and `changelog` inside the spec file. ``` +VERSION=2.10.4 + sed -i "s/Version: .*/Version: $VERSION/g" icinga2.spec vim icinga2.spec %changelog -* Tue Jul 17 2018 Michael Friedrich <[email protected]> 2.9.0-1 -- Update to 2.9.0 +* Tue Mar 19 2019 Michael Friedrich <[email protected]> 2.10.4-1 +- Update to 2.10.4 ``` ``` -git commit -av -m "Release 2.9.0-1" +git commit -av -m "Release $VERSION-1" git push ``` @@ -211,20 +213,19 @@ #### Release Commit -Set the `Version`, `Revision` and `changelog` inside the spec file. +Set the `Version`, `Revision` and `changelog` by using the `dch` helper. ``` -./dch 2.9.0-1 "Update to 2.9.0" +VERSION=2.10.4 + +./dch $VERSION-1 "Update to $VERSION" ``` ``` -git commit -av -m "Release 2.9.0-1" +git commit -av -m "Release $VERSION-1" git push ``` -``` -git commit -av -m "Release 2.9.0-1" -``` **Note for major releases**: Update release branch to latest. @@ -241,7 +242,7 @@ #### DEB with dch on macOS ``` -docker run -v `pwd`:/mnt/packaging -ti ubuntu:xenial bash +docker run -v `pwd`:/mnt/packaging -ti ubuntu:bionic bash apt-get update && apt-get install git ubuntu-dev-tools vim -y cd /mnt/packaging @@ -249,7 +250,9 @@ git config --global user.name "Michael Friedrich" git config --global user.email "[email protected]" -./dch 2.10.0-1 "Update to 2.10.0" +VERSION=2.10.4 + +./dch $VERSION-1 "Update to $VERSION" ``` @@ -354,7 +357,7 @@ git push ``` -SSH into icinga-web1 and do a manual Puppet run from the production environment (default). +SSH into icinga-web2 and do a manual Puppet run from the production environment (default). ``` puppet agent -t @@ -362,9 +365,9 @@ ### Announcement <a id="announcement"></a> -* Create a new blog post on icinga.com/blog -* Social media: [Twitter](https://twitter.com/icinga), [Facebook](https://www.facebook.com/icinga), [Xing](https://www.xing.com/communities/groups/icinga-da4b-1060043), [LinkedIn](https://www.linkedin.com/groups/Icinga-1921830/about) -* Update IRC channel topic +* Create a new blog post on [icinga.com/blog](https://icinga.com/blog) including a featured image +* Create a release topic on [community.icinga.com](https://community.icinga.com) +* Release email to team ### Project Management <a id="project-management"></a> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/VERSION new/icinga2-2.10.4/VERSION --- old/icinga2-2.10.3/VERSION 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/VERSION 2019-03-19 12:55:29.000000000 +0100 @@ -1,2 +1,2 @@ -Version: 2.10.3 +Version: 2.10.4 Revision: 1 Binary files old/icinga2-2.10.3/agent/windows-setup-agent/icinga-banner.png and new/icinga2-2.10.4/agent/windows-setup-agent/icinga-banner.png differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/doc/02-getting-started.md new/icinga2-2.10.4/doc/02-getting-started.md --- old/icinga2-2.10.3/doc/02-getting-started.md 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/doc/02-getting-started.md 2019-03-19 12:55:29.000000000 +0100 @@ -13,13 +13,21 @@ is to use the official package repositories depending on which operating system and distribution you are running. +Official repositories ([support matrix](https://icinga.com/support/details/)): + Distribution | Repository ------------------------|--------------------------- Debian | [Icinga Repository](https://packages.icinga.com/debian/) Ubuntu | [Icinga Repository](https://packages.icinga.com/ubuntu/) + Raspbian | [Icinga Repository](https://packages.icinga.com/raspbian/) RHEL/CentOS | [Icinga Repository](https://packages.icinga.com/epel/) openSUSE | [Icinga Repository](https://packages.icinga.com/openSUSE/) SLES | [Icinga Repository](https://packages.icinga.com/SUSE/) + +Community repositories: + + Distribution | Repository + ------------------------|--------------------------- Gentoo | [Upstream](https://packages.gentoo.org/package/net-analyzer/icinga2) FreeBSD | [Upstream](https://www.freshports.org/net-mgmt/icinga2) OpenBSD | [Upstream](http://ports.su/net/icinga/core2,-main) @@ -34,13 +42,21 @@ You need to add the Icinga repository to your package management configuration. The following commands must be executed with `root` permissions unless noted otherwise. +#### Debian/Ubuntu/Raspbian Repositories <a id="package-repositories-debian-ubuntu-raspbian"></a> + Debian: ``` apt-get -y install apt-transport-https wget -O - https://packages.icinga.com/icinga.key | apt-key add - -echo 'deb https://packages.icinga.com/debian icinga-stretch main' >/etc/apt/sources.list.d/icinga.list + +DIST=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release); \ + echo "deb https://packages.icinga.com/debian icinga-${DIST} main" > \ + /etc/apt/sources.list.d/${DIST}-icinga.list + echo "deb-src https://packages.icinga.com/debian icinga-${DIST} main" >> \ + /etc/apt/sources.list.d/${DIST}-icinga.list + apt-get update ``` @@ -50,60 +66,50 @@ apt-get -y install apt-transport-https wget -O - https://packages.icinga.com/icinga.key | apt-key add - -echo 'deb https://packages.icinga.com/ubuntu icinga-xenial main' >/etc/apt/sources.list.d/icinga.list -apt-get update -``` -RHEL/CentOS 7: +. /etc/os-release; if [ ! -z ${UBUNTU_CODENAME+x} ]; then DIST="${UBUNTU_CODENAME}"; else DIST="$(lsb_release -c| awk '{print $2}')"; fi; \ + echo "deb https://packages.icinga.com/ubuntu icinga-${DIST} main" > \ + /etc/apt/sources.list.d/${DIST}-icinga.list + echo "deb-src https://packages.icinga.com/ubuntu icinga-${DIST} main" >> \ + /etc/apt/sources.list.d/${DIST}-icinga.list -``` -yum install https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm +apt-get update ``` -RHEL/CentOS 6: +Raspbian: ``` -yum install https://packages.icinga.com/epel/icinga-rpm-release-6-latest.noarch.rpm -``` - -Fedora 27: +apt-get -y install apt-transport-https -``` -dnf install https://packages.icinga.com/fedora/icinga-rpm-release-27-latest.noarch.rpm -``` +wget -O - https://packages.icinga.com/icinga.key | apt-key add - -Fedora 26: +DIST=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release); \ + echo "deb https://packages.icinga.com/raspbian icinga-${DIST} main" > \ + /etc/apt/sources.list.d/icinga.list + echo "deb-src https://packages.icinga.com/raspbian icinga-${DIST} main" >> \ + /etc/apt/sources.list.d/icinga.list -``` -dnf install https://packages.icinga.com/fedora/icinga-rpm-release-26-latest.noarch.rpm +apt-get update ``` -SLES 12: +#### RHEL/CentOS/Fedora Repositories <a id="package-repositories-rhel-centos-fedora"></a> -``` -zypper ar https://packages.icinga.com/SUSE/ICINGA-release.repo -zypper ref -``` - -SLES 11: +RHEL/CentOS 7: ``` -zypper ar https://packages.icinga.com/SUSE/ICINGA-release-11.repo -zypper ref +yum install https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm ``` -openSUSE: +RHEL/CentOS 6: ``` -zypper ar https://packages.icinga.com/openSUSE/ICINGA-release.repo -zypper ref +yum install https://packages.icinga.com/epel/icinga-rpm-release-6-latest.noarch.rpm ``` -Alpine Linux: +Fedora 29: ``` -echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories -apk update +dnf install https://packages.icinga.com/fedora/icinga-rpm-release-29-latest.noarch.rpm ``` #### RHEL/CentOS EPEL Repository <a id="package-repositories-rhel-epel"></a> @@ -126,6 +132,35 @@ subscription-manager repos --enable rhel-6-server-optional-rpms ``` +#### SLES/OpenSUSE Repositories <a id="package-repositories-sles-opensuse"></a> + +SLES 15/12: + +``` +rpm --import https://packages.icinga.com/icinga.key + +zypper ar https://packages.icinga.com/SUSE/ICINGA-release.repo +zypper ref +``` + +SLES 11: + +``` +rpm --import https://packages.icinga.com/icinga.key + +zypper ar https://packages.icinga.com/SUSE/ICINGA-release-11.repo +zypper ref +``` + +openSUSE: + +``` +rpm --import https://packages.icinga.com/icinga.key + +zypper ar https://packages.icinga.com/openSUSE/ICINGA-release.repo +zypper ref +``` + #### SLES Security Repository <a id="package-repositories-sles-security"></a> The packages for SLES 11 depend on the `openssl1` package which is distributed @@ -136,7 +171,15 @@ Icinga 2 requires the `libboost_chrono1_54_0` package from the `SLES 12 SDK` repository. Refer to the SUSE Enterprise Linux documentation for further information. -#### Alpine Linux Notes <a id="package-repositories-alpine-notes"></a> +#### Alpine Linux Repositories <a id="package-repositories-alpine"></a> + +Alpine Linux: + +``` +echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories +echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories +apk update +``` The example provided assumes that you are running Alpine edge, which is the -dev branch and is a rolling release. If you are using a stable version please "pin" the edge repository on the latest Icinga 2 package version. @@ -155,20 +198,20 @@ apt-get install icinga2 ``` -RHEL/CentOS 6: +RHEL/CentOS 7 and Fedora: ``` yum install icinga2 -chkconfig icinga2 on -service icinga2 start +systemctl enable icinga2 +systemctl start icinga2 ``` -RHEL/CentOS 7 and Fedora: +RHEL/CentOS 6: ``` yum install icinga2 -systemctl enable icinga2 -systemctl start icinga2 +chkconfig icinga2 on +service icinga2 start ``` SLES/openSUSE: @@ -215,8 +258,8 @@ Path | Description ----------------------------------------------|------------------------------------ /etc/icinga2 | Contains Icinga 2 configuration files. - /usr/lib/systemd/system/icinga2.service | The Icinga 2 Systemd service file on systems using Systemd. - /etc/systemd/system/icinga2.service.d/limits.conf | On distributions with Systemd >227, additional service limits are required. + /usr/lib/systemd/system/icinga2.service | The Icinga 2 systemd service file on systems using systemd. + /etc/systemd/system/icinga2.service.d/limits.conf | On distributions with systemd >227, additional service limits are required. /etc/init.d/icinga2 | The Icinga 2 init script on systems using SysVinit or OpenRC. /usr/sbin/icinga2 | Shell wrapper for the Icinga 2 binary. /usr/lib\*/icinga2 | Libraries and the Icinga 2 binary (use `find /usr -type f -name icinga2` to locate the binary path). @@ -268,7 +311,7 @@ Debian/Ubuntu | monitoring-plugins | - | /usr/lib/nagios/plugins FreeBSD | monitoring-plugins | - | /usr/local/libexec/nagios Alpine Linux | monitoring-plugins | - | /usr/lib/monitoring-plugins -OS X | nagios-plugins | [MacPorts](https://www.macports.org), [Homebrew](https://brew.sh) | /opt/local/libexec or /usr/local/sbin +macOS | monitoring-plugins | [MacPorts](https://www.macports.org), [Homebrew](https://brew.sh) | /opt/local/libexec or /usr/local/sbin The recommended way of installing these standard plugins is to use your distribution's package manager. @@ -286,9 +329,7 @@ ``` The packages for RHEL/CentOS depend on other packages which are distributed -as part of the [EPEL repository](https://fedoraproject.org/wiki/EPEL). Please -make sure to enable this repository by following -[these instructions](https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F). +as part of the [EPEL repository](#package-repositories-rhel-epel). Fedora: @@ -335,10 +376,10 @@ ### Systemd Service <a id="systemd-service"></a> -Some distributions (e.g. Fedora, openSUSE and RHEL/CentOS 7) use Systemd. The -Icinga 2 packages automatically install the necessary Systemd unit files. +Some distributions (e.g. Fedora, openSUSE and RHEL/CentOS 7) use systemd. The +Icinga 2 packages automatically install the necessary systemd unit files. -The Icinga 2 Systemd service can be (re-)started, reloaded, stopped and also +The Icinga 2 systemd service can be (re-)started, reloaded, stopped and also queried for its current status. ``` @@ -387,7 +428,7 @@ > **Tip** > -> If you are running into fork errors with Systemd enabled distributions, +> If you are running into fork errors with systemd enabled distributions, > please check the [troubleshooting > chapter](15-troubleshooting.md#check-fork-errors). ### Init Script <a id="init-script"></a> @@ -578,16 +619,6 @@ mysql_secure_installation ``` -RHEL/CentOS 6: - -``` -yum install mysql-server mysql -chkconfig mysqld on -service mysqld start - -mysql_secure_installation -``` - SUSE: ``` @@ -717,15 +748,6 @@ apt-get install postgresql ``` -RHEL/CentOS 6: - -``` -yum install postgresql-server postgresql -chkconfig postgresql on -service postgresql initdb -service postgresql start -``` - RHEL/CentOS 7: ``` @@ -902,14 +924,6 @@ systemctl start httpd ``` -RHEL/CentOS 6: - -``` -yum install httpd -chkconfig httpd on -service httpd start -``` - SUSE: ``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/doc/08-advanced-topics.md new/icinga2-2.10.4/doc/08-advanced-topics.md --- old/icinga2-2.10.3/doc/08-advanced-topics.md 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/doc/08-advanced-topics.md 2019-03-19 12:55:29.000000000 +0100 @@ -437,12 +437,12 @@ Flapping occurs when a service or host changes state too frequently, which would result in a storm of problem and recovery notifications. With flapping detection enabled a flapping notification will be sent while other notifications are -suppresed until it calms down after receiving the same status from checks a few times. Flapping detection can help detect +suppressed until it calms down after receiving the same status from checks a few times. Flapping detection can help detect configuration problems (wrong thresholds), troublesome services or network problems. Flapping detection can be enabled or disabled using the `enable_flapping` attribute. The `flapping_threshold_high` and `flapping_threshold_low` attributes allows to specify the thresholds that control -when a [host](09-object-types.md#objecttype-host) or [service](objecttype-service) is considered to be flapping. +when a [host](09-object-types.md#objecttype-host) or [service](09-object-types.md#objecttype-service) is considered to be flapping. The default thresholds are 30% for high and 25% for low. If the computed flapping value exceeds the high threshold a host or service is considered flapping until it drops below the low flapping threshold. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/doc/15-troubleshooting.md new/icinga2-2.10.4/doc/15-troubleshooting.md --- old/icinga2-2.10.3/doc/15-troubleshooting.md 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/doc/15-troubleshooting.md 2019-03-19 12:55:29.000000000 +0100 @@ -498,7 +498,7 @@ ### Check Fork Errors <a id="check-fork-errors"></a> -Newer versions of Systemd on Linux limit spawned processes for +Newer versions of systemd on Linux limit spawned processes for services. * v227 introduces the `TasksMax` setting to units which allows to specify the spawned process limit. @@ -506,7 +506,7 @@ * v231 changes the default value to 15% This can cause problems with Icinga 2 in large environments with many -commands executed in parallel starting with Systemd v228. Some distributions +commands executed in parallel starting with systemd v228. Some distributions also may have changed the defaults. The error message could look like this: @@ -534,16 +534,16 @@ External Resources: * [Fork limit for cgroups](https://lwn.net/Articles/663873/) -* [Systemd changelog](https://github.com/systemd/systemd/blob/master/NEWS) +* [systemd changelog](https://github.com/systemd/systemd/blob/master/NEWS) * [Icinga 2 upstream issue](https://github.com/Icinga/icinga2/issues/5611) -* [Systemd upstream discussion](https://github.com/systemd/systemd/issues/3211) +* [systemd upstream discussion](https://github.com/systemd/systemd/issues/3211) ### Systemd Watchdog <a id="check-systemd-watchdog"></a> Usually Icinga 2 is a mission critical part of infrastructure and should be online at all times. In case of a recoverable crash (e.g. OOM) you may want to -restart Icinga 2 automatically. With Systemd it is as easy as overriding some -settings of the Icinga 2 Systemd service by creating +restart Icinga 2 automatically. With systemd it is as easy as overriding some +settings of the Icinga 2 systemd service by creating `/etc/systemd/system/icinga2.service.d/override.conf` with the following content: @@ -557,12 +557,12 @@ WatchdogSec=30s -This way Systemd will kill Icinga 2 if does not notify for over 30 seconds, a timout of less than 10 seconds is not +This way systemd will kill Icinga 2 if does not notify for over 30 seconds, a timout of less than 10 seconds is not recommended. When the watchdog is activated, `Restart=` can be set to `watchdog` to restart Icinga 2 in the case of a watchdog timeout. Run `systemctl daemon-reload && systemctl restart icinga2` to apply the changes. -Now Systemd will always try to restart Icinga 2 (except if you run +Now systemd will always try to restart Icinga 2 (except if you run `systemctl stop icinga2`). After three failures in ten seconds it will stop trying because you probably have a problem that requires manual intervention. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/doc/16-upgrading-icinga-2.md new/icinga2-2.10.4/doc/16-upgrading-icinga-2.md --- old/icinga2-2.10.3/doc/16-upgrading-icinga-2.md 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/doc/16-upgrading-icinga-2.md 2019-03-19 12:55:29.000000000 +0100 @@ -145,7 +145,7 @@ > your changes. There is a bug with existing sysconfig files where path variables are not expanded -because Systemd [does not support](https://github.com/systemd/systemd/issues/2123) +because systemd [does not support](https://github.com/systemd/systemd/issues/2123) shell variable expansion. This worked with SysVInit though. Edit the sysconfig file and either remove everything, or edit this line @@ -167,7 +167,7 @@ ICINGA2_RLIMIT_FILES=50000 ``` -Restart Icinga 2 afterwards, the Systemd service file automatically puts the +Restart Icinga 2 afterwards, the systemd service file automatically puts the value into the application's environment where this is read on startup. ### Setup Wizard Changes <a id="upgrading-to-2-9-setup-wizard-changes"></a> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/doc/17-language-reference.md new/icinga2-2.10.4/doc/17-language-reference.md --- old/icinga2-2.10.3/doc/17-language-reference.md 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/doc/17-language-reference.md 2019-03-19 12:55:29.000000000 +0100 @@ -252,7 +252,7 @@ In addition to the `=` operator shown above a number of other operators to manipulate attributes are supported. Here's a list of all -available operators: +available operators (the outermost `{` `}` stand for a local variable scope): ### Operator = <a id="operator-assignment"></a> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/doc/21-development.md new/icinga2-2.10.4/doc/21-development.md --- old/icinga2-2.10.3/doc/21-development.md 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/doc/21-development.md 2019-03-19 12:55:29.000000000 +0100 @@ -634,7 +634,7 @@ gdb --args /usr/local/icinga2/lib/icinga2/sbin/icinga2 daemon ``` -##### Debian 9 <a id="development-linux-dev-env-debian"></a> +#### Debian 9 <a id="development-linux-dev-env-debian"></a> ``` apt-get -y install gdb vim git cmake make ccache build-essential libssl-dev libboost-all-dev bison flex default-libmysqlclient-dev libpq-dev libyajl-dev libedit-dev monitoring-plugins @@ -1099,8 +1099,8 @@ - Alpine: boost-dev * GNU bison (bison) * GNU flex (flex) >= 2.5.35 -* Systemd headers - - Only required when using Systemd +* systemd headers + - Only required when using systemd - Debian/Ubuntu: libsystemd-dev - RHEL/Fedora: systemd-devel @@ -1441,13 +1441,13 @@ #### Systemd <a id="development-package-builds-systemd"></a> -If your distribution uses Systemd: +If your distribution uses systemd: ``` systemctl {start|stop|reload|status|enable|disable} icinga2 ``` -In case the distribution is running Systemd >227, you'll also +In case the distribution is running systemd >227, you'll also need to package and install the `etc/initsystem/icinga2.service.limits.conf` file into `/etc/systemd/system/icinga2.service.d`. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/doc/23-migrating-from-icinga-1x.md new/icinga2-2.10.4/doc/23-migrating-from-icinga-1x.md --- old/icinga2-2.10.3/doc/23-migrating-from-icinga-1x.md 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/doc/23-migrating-from-icinga-1x.md 2019-03-19 12:55:29.000000000 +0100 @@ -116,11 +116,11 @@ object HostGroup "hg1" { + groups = [ "hg2" ] assign where host.name in [ "host1", "host2" ] } object HostGroup "hg2" { - groups = [ "hg1" ] assign where host.name == "host3" } Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_installer_01.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_installer_01.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_installer_02.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_installer_02.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_installer_03.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_installer_03.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_installer_04.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_installer_04.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_installer_05.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_installer_05.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_01.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_01.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_02.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_02.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_02_global_zone.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_02_global_zone.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_03.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_03.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_04.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_04.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_05_nsclient_01.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_05_nsclient_01.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_06_finish_no_ticket.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_06_finish_no_ticket.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_06_finish_with_ticket.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_06_finish_with_ticket.png differ Binary files old/icinga2-2.10.3/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_examine_config.png and new/icinga2-2.10.4/doc/images/distributed-monitoring/icinga2_windows_setup_wizard_examine_config.png differ Binary files old/icinga2-2.10.3/icinga-installer/bannrbmp.bmp and new/icinga2-2.10.4/icinga-installer/bannrbmp.bmp differ Binary files old/icinga2-2.10.3/icinga-installer/dlgbmp.bmp and new/icinga2-2.10.4/icinga-installer/dlgbmp.bmp differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/lib/base/defer.hpp new/icinga2-2.10.4/lib/base/defer.hpp --- old/icinga2-2.10.3/lib/base/defer.hpp 1970-01-01 01:00:00.000000000 +0100 +++ new/icinga2-2.10.4/lib/base/defer.hpp 2019-03-19 12:55:29.000000000 +0100 @@ -0,0 +1,46 @@ +/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ + +#ifndef DEFER +#define DEFER + +#include <functional> +#include <utility> + +namespace icinga +{ + +/** + * An action to be executed at end of scope. + * + * @ingroup base + */ +class Defer +{ +public: + inline + Defer(std::function<void()> func) : m_Func(std::move(func)) + { + } + + Defer(const Defer&) = delete; + Defer(Defer&&) = delete; + Defer& operator=(const Defer&) = delete; + Defer& operator=(Defer&&) = delete; + + inline + ~Defer() + { + try { + m_Func(); + } catch (...) { + // https://stackoverflow.com/questions/130117/throwing-exceptions-out-of-a-destructor + } + } + +private: + std::function<void()> m_Func; +}; + +} + +#endif /* DEFER */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/lib/base/tcpsocket.cpp new/icinga2-2.10.4/lib/base/tcpsocket.cpp --- old/icinga2-2.10.3/lib/base/tcpsocket.cpp 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/lib/base/tcpsocket.cpp 2019-03-19 12:55:29.000000000 +0100 @@ -91,9 +91,9 @@ const int optTrue = 1; setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, reinterpret_cast<const char *>(&optTrue), sizeof(optTrue)); -#ifndef _WIN32 +#ifdef SO_REUSEPORT setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, reinterpret_cast<const char *>(&optTrue), sizeof(optTrue)); -#endif /* _WIN32 */ +#endif /* SO_REUSEPORT */ int rc = bind(fd, info->ai_addr, info->ai_addrlen); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/lib/icinga/notification.cpp new/icinga2-2.10.4/lib/icinga/notification.cpp --- old/icinga2-2.10.3/lib/icinga/notification.cpp 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/lib/icinga/notification.cpp 2019-03-19 12:55:29.000000000 +0100 @@ -288,11 +288,9 @@ << "': before specified begin time (" << Utility::FormatDuration(timesBegin) << ")"; /* we need to adjust the next notification time - * to now + begin delaying the first notification + * delaying the first notification */ - double nextProposedNotification = now + timesBegin + 1.0; - if (GetNextNotification() > nextProposedNotification) - SetNextNotification(nextProposedNotification); + SetNextNotification(checkable->GetLastHardStateChange() + timesBegin + 1.0); return; } @@ -317,6 +315,16 @@ << "Not sending " << (reminder ? "reminder " : " ") << "notifications for notification object '" << GetName() << "': type '" << NotificationTypeToStringInternal(type) << "' does not match type filter: " << NotificationFilterToString(GetTypeFilter(), GetTypeFilterMap()) << "."; + + /* Ensure to reset no_more_notifications on Recovery notifications, + * even if the admin did not configure them in the filter. + */ + { + ObjectLock olock(this); + if (type == NotificationRecovery && GetInterval() <= 0) + SetNoMoreNotifications(false); + } + return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/lib/perfdata/elasticsearchwriter.cpp new/icinga2-2.10.4/lib/perfdata/elasticsearchwriter.cpp --- old/icinga2-2.10.3/lib/perfdata/elasticsearchwriter.cpp 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/lib/perfdata/elasticsearchwriter.cpp 2019-03-19 12:55:29.000000000 +0100 @@ -25,6 +25,7 @@ #include "icinga/compatutility.hpp" #include "icinga/service.hpp" #include "icinga/checkcommand.hpp" +#include "base/defer.hpp" #include "base/tcpsocket.hpp" #include "base/stream.hpp" #include "base/base64.hpp" @@ -441,6 +442,8 @@ if (!stream) return; + Defer close ([&stream]() { stream->Close(); }); + HttpRequest req(stream); /* Specify required headers by Elasticsearch. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/lib/perfdata/influxdbwriter.cpp new/icinga2-2.10.4/lib/perfdata/influxdbwriter.cpp --- old/icinga2-2.10.3/lib/perfdata/influxdbwriter.cpp 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/lib/perfdata/influxdbwriter.cpp 2019-03-19 12:55:29.000000000 +0100 @@ -26,6 +26,7 @@ #include "icinga/macroprocessor.hpp" #include "icinga/icingaapplication.hpp" #include "icinga/checkcommand.hpp" +#include "base/defer.hpp" #include "base/tcpsocket.hpp" #include "base/configtype.hpp" #include "base/objectlock.hpp" @@ -432,6 +433,8 @@ if (!stream) return; + Defer close ([&stream]() { stream->Close(); }); + Url::Ptr url = new Url(); url->SetScheme(GetSslEnable() ? "https" : "http"); url->SetHost(GetHost()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/lib/remote/configobjectutility.cpp new/icinga2-2.10.4/lib/remote/configobjectutility.cpp --- old/icinga2-2.10.3/lib/remote/configobjectutility.cpp 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/lib/remote/configobjectutility.cpp 2019-03-19 12:55:29.000000000 +0100 @@ -159,7 +159,13 @@ return false; } - ApiListener::UpdateObjectAuthority(); + /* if (type != Comment::TypeInstance && type != Downtime::TypeInstance) + * Does not work since this would require libicinga, which has a dependency on libremote + * Would work if these libs were static. + */ + if (type->GetName() != "Comment" && type->GetName() != "Downtime") + ApiListener::UpdateObjectAuthority(); + Log(LogInformation, "ConfigObjectUtility") << "Created and activated object '" << fullName << "' of type '" << type->GetName() << "'."; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/plugins/check_network.cpp new/icinga2-2.10.4/plugins/check_network.cpp --- old/icinga2-2.10.3/plugins/check_network.cpp 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/plugins/check_network.cpp 2019-03-19 12:55:29.000000000 +0100 @@ -120,11 +120,6 @@ L"warn is VALUE is inside the range spanned by THR1 and THR2\n\n" L"-w ![THR1-THR2]\n" L"warn if VALUE is outside the range spanned by THR1 and THR2\n\n" - L"-w THRESHOLD%%\n" - L"if the plugin accepts percentage based thresholds those will be used.\n" - L"Does nothing if the plugin does not accept percentages, or only uses\n" - L"percentage thresholds. Ranges can be used with \"%%\", but both range values need\n" - L"to end with a percentage sign.\n\n" L"All of these options work with the critical threshold \"-c\" too." , progName); std::cout << '\n'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/plugins/check_perfmon.cpp new/icinga2-2.10.4/plugins/check_perfmon.cpp --- old/icinga2-2.10.3/plugins/check_perfmon.cpp 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/plugins/check_perfmon.cpp 2019-03-19 12:55:29.000000000 +0100 @@ -297,7 +297,11 @@ if (FAILED(status)) goto die; - status = PdhAddCounter(hQuery, pI.wsFullPath.c_str(), NULL, &hCounter); + status = PdhAddEnglishCounter(hQuery, pI.wsFullPath.c_str(), NULL, &hCounter); + + if (FAILED(status)) + status = PdhAddCounter(hQuery, pI.wsFullPath.c_str(), NULL, &hCounter); + if (FAILED(status)) goto die; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/test/base-utility.cpp new/icinga2-2.10.4/test/base-utility.cpp --- old/icinga2-2.10.3/test/base-utility.cpp 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/test/base-utility.cpp 2019-03-19 12:55:29.000000000 +0100 @@ -64,7 +64,7 @@ auto duration2 (steady_clock::now() - start2); double diff = (double)duration_cast<microseconds>(duration1).count() / (double)duration_cast<microseconds>(duration2).count(); - BOOST_CHECK(0.9 <= diff && diff <= 1.1); + BOOST_WARN(0.9 <= diff && diff <= 1.1); } BOOST_AUTO_TEST_SUITE_END() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.10.3/tools/selinux/icinga2.te new/icinga2-2.10.4/tools/selinux/icinga2.te --- old/icinga2-2.10.3/tools/selinux/icinga2.te 2019-02-25 16:53:13.000000000 +0100 +++ new/icinga2-2.10.4/tools/selinux/icinga2.te 2019-03-19 12:55:29.000000000 +0100 @@ -1,4 +1,4 @@ -policy_module(icinga2, 0.1.7) +policy_module(icinga2, 0.1.8) ######################################## # @@ -25,6 +25,7 @@ type nagios_openshift_plugin_t; type nagios_openshift_plugin_exec_t; type httpd_t; type system_mail_t; role staff_r; + attribute unreserved_port_type; } type icinga2_t; @@ -64,6 +65,8 @@ files_tmp_file(icinga2_tmp_t) type icinga2_port_t; +# There is no interface for unreserved_port_type +typeattribute icinga2_port_t unreserved_port_type; corenet_port(icinga2_port_t) ########################################
