Compare commits

..

187 commits

Author SHA1 Message Date
Fedora Release Engineering
adb3603dc9 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-16 09:09:21 +00:00
Fedora Release Engineering
eaf3b3bfab Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-16 21:47:02 +00:00
Kim B. Heino
11f3c22afc rhbz 2406177: Move sysusers.d config to munin-common 2025-12-28 20:09:31 +02:00
Fedora Release Engineering
b9d3bae50a Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 22:30:37 +00:00
14d481ff84 Add sysusers.d config file to allow rpm to create users/groups automatically
See https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers.
2025-02-11 15:53:23 +01:00
Kim B. Heino
5335015f6b rhbz 2340895: Fix build on Fedora 42 2025-01-27 15:34:48 +02:00
Fedora Release Engineering
a881836b8d Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 19:26:34 +00:00
Kim B. Heino
244836eb03 Don't restart firewalld on package update, rhbz #2295597 2024-10-21 10:22:31 +03:00
Fedora Release Engineering
def83f2017 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 18:56:25 +00:00
Kim B. Heino
34b47ae6ae sources: add .asc too 2024-06-19 14:30:32 +03:00
Kim B. Heino
c9c48a14ad 2.0.76 2024-06-19 14:27:45 +03:00
Fedora Release Engineering
89bd7b20ec Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-25 08:23:26 +00:00
Fedora Release Engineering
b73a0daa50 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 08:55:08 +00:00
Kim B. Heino
c560021120 2.0.75 2023-11-06 11:32:09 +02:00
Kim B. Heino
4341115b3d 2.0.74 2023-10-04 14:36:40 +03:00
Fedora Release Engineering
6599f221c9 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 16:04:58 +00:00
Kim B. Heino
c55cca5272 2.0.73 2023-05-18 14:23:24 +03:00
Kim B. Heino
3667ae34b8 sources: update for 2.0.72 2023-03-07 11:44:40 +02:00
Kim B. Heino
e9fabf86e9 spec: update 2023-03-07 11:43:06 +02:00
Kim B. Heino
3d7e775bef *.service: cleanup 2023-03-07 11:34:16 +02:00
Kim B. Heino
bb95f3a616 00-default: add config for ipmi_* plugins 2023-03-07 11:33:50 +02:00
Fedora Release Engineering
56e001ab97 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 21:00:18 +00:00
Jitka Plesnikova
6c979bfa45 Remove perl(MODULE_COMPAT), it will be replaced by generators 2023-01-13 09:49:18 +01:00
Kim B. Heino
771506eab0 spec: bump release for rebuild 2022-07-24 15:26:24 +03:00
Kim B. Heino
81c32c8bf7 Replace /var/lib/munin/plugin-state with upstream default /var/lib/munin-node/plugin-state 2022-07-23 21:33:55 +03:00
Fedora Release Engineering
8136ab9a89 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 00:00:03 +00:00
Kim B. Heino
82a717e571 2.0.69, use /etc/munin/munin-conf.d instead of /etc/munin/conf.d as in upstream 2022-07-20 14:39:20 +03:00
Jitka Plesnikova
29952713f7 Perl 5.36 rebuild 2022-06-01 02:16:58 +02:00
Fedora Release Engineering
9ef93a8031 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 20:40:28 +00:00
Fedora Release Engineering
ab0187d28f - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 15:37:22 +00:00
Jitka Plesnikova
78b3d83173 Perl 5.34 rebuild 2021-05-23 01:38:20 +02:00
6fe6c7fc63 Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
2021-03-02 16:13:23 +01:00
Kim B. Heino
56d4874595 2.0.67 2021-02-24 15:14:13 +02:00
Kim B. Heino
65bf794da8 spec: cleanup 2021-02-05 15:04:43 +02:00
Todd Zullinger
72fcc21001 Verify upstream signature
Upstream provides GPG signatures for releases.  Verify them in %prep.
This is particularly helpful because upstream does not provide the
releases via https.

The signing key was downloaded from the keyserver network and then
exported in a minimal format using the following commands:

  fpr=910846ADEE4C5D67C19B3E6F0A24C05998BA4133
  gpg --recv-keys $fpr
  gpg -a --export-options export-minimal --export $fpr >gpgkey-$fpr.asc

The resulting key file matches what was added to the Debian munin
package by upstream contributor Lars Kruse, as found here:

  https://salsa.debian.org/debian/munin/-/blob/debian/debian/upstream/signing-key.asc

While in the area, align the indentation of the recently added make BR.
2021-02-05 00:30:52 -05:00
Todd Zullinger
44df45e8fd Upgrade to 2.0.66
https://github.com/munin-monitoring/munin/blob/2.0.66/ChangeLog
2021-02-04 23:52:23 -05:00
Fedora Release Engineering
81fdcef4b5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 21:02:06 +00:00
Tom Stellard
b768effb7c Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-07 02:10:02 +00:00
Kim B. Heino
f14b813b7a Drop epel6, major cleanup 2020-12-14 20:55:47 +02:00
Kim B. Heino
1ba65a9e12 sources: update 2020-11-17 14:57:47 +02:00
Kim B. Heino
ab88fc3fed 2.0.65
* Tue Nov 17 2020 Kim B. Heino <b@bbbs.net> - 2.0.65-1
- Upgrade to 2.0.65
- Improve plugin-state directory owners
- Don't require tmpwatch
- Change log file owner to root:adm or munin:adm
2020-11-17 14:55:46 +02:00
Fedora Release Engineering
66a4fe31d4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 08:39:45 +00:00
Kim B. Heino
9184bb199a sources: update 2020-07-06 11:19:44 +03:00
Kim B. Heino
e7542a3b41 Upgrade to 2.0.63 2020-07-06 11:18:25 +03:00
Jitka Plesnikova
22c7233576 Perl 5.32 rebuild 2020-06-25 15:03:14 +02:00
Jitka Plesnikova
97e4047018 Specify all perl's dependencies for build 2020-03-24 15:38:09 +01:00
Fedora Release Engineering
f64e33df43 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-29 14:19:32 +00:00
Kim B. Heino
1c00dec9bb Remove BR: perl(Directory::Scratch), it's for testing only, and not on epel8 2020-01-24 12:54:50 +02:00
Kim B. Heino
e57d519727 Merge branch 'master' into epel8 2020-01-24 12:40:42 +02:00
Kim B. Heino
da5e6b3b08 Remove unneeded Makefile and package.cfg 2020-01-24 12:40:03 +02:00
Kim B. Heino
8793e82c1e Convert cronjob to systemd timer and tmpfiles, first epel8 build 2020-01-24 12:27:32 +02:00
Kim B. Heino
5a7a5ce0e4 Upgrade to 2.0.54 2020-01-21 13:05:13 +02:00
Gwyn Ciesla
f78477cd28 "Adding package.cfg file" 2019-11-17 12:53:11 -06:00
Kim B. Heino
c8fdc68d41 Upgrade to 2.0.51 and improve comment about nginx/apache subpackages 2019-10-24 15:53:31 +03:00
Fedora Release Engineering
955c0adfa7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 17:58:50 +00:00
Kim B. Heino
e95e160d5b spec: drop java again, doesn't work... 2019-07-13 11:19:19 +03:00
Kim B. Heino
b44176df1d rhbz#1721384: Mark .htaccess as ghost, include it to example config files
Re-add munin-plugins-java subpackage for rhel6 and rhel7
2019-07-13 10:52:50 +03:00
Jitka Plesnikova
bb516325cc Perl 5.30 rebuild 2019-05-31 16:24:36 +02:00
Kim B. Heino
296b5ff581 Upgrade to 2.0.49 2019-05-16 08:10:32 +03:00
Kim B. Heino
88afd8c30e spec: fix "if %rhel" 2019-03-18 18:15:01 +02:00
Kim B. Heino
b62dde9de6 spec: bump version 2019-03-18 18:11:47 +02:00
Kim B. Heino
8a803e545e spec: drop java subpackage 2019-03-18 18:09:22 +02:00
Jozef Mlich
1c7519486a Update munin.spec
Without perl-Net-CIDR doesn't work cidr_allow settings in /etc/munin/munin-node.conf

The log /var/log/munin-node/munin-node.log contains following message:
Can't locate Net/CIDR.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /usr/share/perl5/vendor_perl/Net/Server.pm line 601.
2019-03-06 16:31:31 +00:00
Kim B. Heino
6273812ad5 Upgrade to 2.0.45 2019-02-08 09:15:18 +02:00
Fedora Release Engineering
635b632d28 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-01 11:43:44 +00:00
Kim B. Heino
39c1f46924 Upgrade to 2.0.43 2018-11-24 09:46:11 +02:00
Kim B. Heino
a2d5416c24 spec: move apache ghosts to main package as yum install nginx, not apache 2018-09-17 13:06:43 +03:00
Kim B. Heino
d9f0b0421b spec: remove nginx/apache conflict, easier to switch between servers 2018-09-17 13:03:48 +03:00
Kim B. Heino
8f612ddf36 spec: move apache ghost files to apache subpackage 2018-09-17 12:22:39 +03:00
Kim B. Heino
220306055f nginx_cgi_graphs.conf: add note about cgi services 2018-09-17 12:12:20 +03:00
Kim B. Heino
88a4b3cca8 00-default: add mailman user config 2018-09-17 11:18:39 +03:00
Kim B. Heino
0f7af8c1ba spec: ghost /etc/munin/munin-htpasswd 2018-09-17 10:21:03 +03:00
Kim B. Heino
37236c42ca rhbz#1327512, rhbz#1629438 2018-09-17 10:16:28 +03:00
Kim B. Heino
4a159830f2 .gitignore: add "fedpkg local" result files to ignore 2018-09-14 20:15:50 +03:00
Kim B. Heino
0ae672a39a spec: rhbz#1628390: Fix missing Perl dependencies in Fedora 2018-09-14 20:14:35 +03:00
Kim B. Heino
b8c61eb37c spec: Fix upgrade path for munin-asyncd and force restart on first upgrade 2018-08-25 10:44:15 +03:00
Kim B. Heino
5e4592f475 Remove some leftover files 2018-08-24 20:37:57 +03:00
Kim B. Heino
28cdd0c7df Merge branch 'master' into el6 2018-08-24 20:28:12 +03:00
Kim B. Heino
c443fa0377 Merge branch 'master' into epel7 2018-08-24 20:24:17 +03:00
Kim B. Heino
f9ba6adfd2 munin 2.0.40 tarball 2018-08-24 19:57:04 +03:00
Kim B. Heino
5c2cefb8d7 Major update to 2.0.40 2018-08-24 19:52:58 +03:00
Fedora Release Engineering
682abd3802 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 11:11:59 +00:00
Jason Tibbitts
2f3bbcea3c Remove needless use of %defattr 2018-07-10 02:06:50 -05:00
Jitka Plesnikova
689b1a045e Perl 5.28 rebuild 2018-06-30 08:07:36 +02:00
ded84d7028
Remove %clean section
None of currently supported distributions need that.
Last one was EL5 which is EOL for a while.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-14 07:22:06 +01:00
0d0be0dc34 Remove BuildRoot definition
None of currently supported distributions need that.
It was needed last for EL5 which is EOL now

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-13 23:52:13 +01:00
Fedora Release Engineering
ed450ae754 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-08 03:31:52 +00:00
278ec3950b Merge remote-tracking branch 'origin/master' into epel7 2017-03-03 09:57:12 -06:00
73ce20b1d5 Merge remote-tracking branch 'origin/master' into el6 2017-03-03 09:57:02 -06:00
d4b8edea48 Merge remote-tracking branch 'origin/master' into epel7 2017-02-26 22:12:20 -06:00
ca65519a74 Merge remote-tracking branch 'origin/master' into el6 2017-02-26 22:12:11 -06:00
a85151c48b Merge remote-tracking branch 'origin/master' into epel7 2017-01-18 22:53:38 -06:00
ac9d6d25f2 Merge remote-tracking branch 'origin/master' into el6 2017-01-18 22:53:28 -06:00
ee3907f375 Merge remote-tracking branch 'origin/master' into epel7 2017-01-02 23:33:58 -06:00
d5da3b9b15 Merge remote-tracking branch 'origin/master' into el6 2017-01-02 23:33:48 -06:00
628ea281f1 Merge remote-tracking branch 'origin/master' into epel7 2016-12-10 17:50:46 -06:00
2b5e961d72 Merge remote-tracking branch 'origin/master' into el6 2016-12-10 17:50:35 -06:00
cc3b51a175 Merge remote-tracking branch 'origin/master' into epel7 2016-12-04 21:55:30 -06:00
131e464439 Merge remote-tracking branch 'origin/master' into el6 2016-12-04 21:55:15 -06:00
f2025f5104 Merge remote-tracking branch 'origin/master' into epel7 2016-10-31 22:35:01 -05:00
4c2c00b5bf Merge remote-tracking branch 'origin/master' into el6 2016-10-31 22:34:39 -05:00
580887fa70 Merge remote-tracking branch 'origin/master' into epel7 2016-10-10 22:24:15 -05:00
f3c9c3dc60 Merge remote-tracking branch 'origin/master' into el6 2016-10-10 22:24:00 -05:00
8673f2eab5 Merge remote-tracking branch 'origin/master' into epel7 2016-10-10 14:37:52 -05:00
444c8ff461 Merge remote-tracking branch 'origin/master' into el6 2016-10-10 14:37:37 -05:00
1af3a7f2ab Merge remote-tracking branch 'origin/master' into epel7 2016-09-25 15:02:43 -05:00
728ef1b34f Merge remote-tracking branch 'origin/master' into el6 2016-09-25 15:02:29 -05:00
987236b8ae Merge remote-tracking branch 'origin/master' into epel7 2016-03-12 02:46:50 -06:00
fa0e5e8161 Merge remote-tracking branch 'origin/master' into el6 2016-03-12 02:46:39 -06:00
1776a02dc5 Merge remote-tracking branch 'origin/master' into epel7 2016-03-11 00:05:22 -06:00
11b95053e0 Merge remote-tracking branch 'origin/master' into el6 2016-03-11 00:05:02 -06:00
ca8663e37d Merge remote-tracking branch 'origin/master' into epel7 2016-03-10 23:13:13 -06:00
eeb7259ce5 Merge remote-tracking branch 'origin/master' into el6 2016-03-10 23:13:03 -06:00
74b6597c24 Merge remote-tracking branch 'origin/master' into epel7 2015-11-18 21:48:29 -06:00
874f94ae9e Merge remote-tracking branch 'origin/master' into el6 2015-11-18 21:48:18 -06:00
42e04d441f Merge remote-tracking branch 'origin/master' into epel7 2015-03-06 23:36:34 -06:00
a5edf33d29 Merge remote-tracking branch 'origin/master' into el6 2015-03-06 23:36:22 -06:00
c50bedad3a Merge remote-tracking branch 'origin/master' into epel7 2014-11-26 13:32:50 -06:00
c7206fae0f Merge remote-tracking branch 'origin/master' into el6 2014-11-26 13:32:27 -06:00
a429cda5f0 Merge remote-tracking branch 'origin/master' into epel7 2014-10-26 10:16:42 -05:00
f972fb375c Merge remote-tracking branch 'origin/master' into el6 2014-10-26 10:16:10 -05:00
45e679bd0f Merge remote-tracking branch 'origin/master' into epel7 2014-10-17 21:08:19 -05:00
28d8bfae41 Merge remote-tracking branch 'origin/master' into el6 2014-10-17 21:07:27 -05:00
7d008bdcf6 Merge remote-tracking branch 'origin/master' into epel7 2014-10-16 21:17:22 -05:00
c2f11bc2cc Merge remote-tracking branch 'origin/master' into el6 2014-10-16 21:16:58 -05:00
fd03c49452 Merge remote-tracking branch 'origin/master' into el6 2014-09-06 21:00:59 -05:00
871bdb1863 Merge remote-tracking branch 'origin/master' 2014-09-06 20:53:44 -05:00
Lubomir Rintel
bc564c1366 Bump epel7 branch release 2014-04-28 17:02:43 +02:00
Lubomir Rintel
f4ebf57982 mx4j is not a build time dependency 2014-04-28 16:57:34 +02:00
Lubomir Rintel
86f91ad784 RHEL 7 Actually uses systemd too 2014-04-28 16:57:21 +02:00
Lubomir Rintel
ab459e7699 No Net::CIDR in el7 2014-04-28 16:57:06 +02:00
Lubomir Rintel
e14d8ca879 No Cache::Memcached in el7 2014-04-28 16:56:47 +02:00
Lubomir Rintel
66c2ce547e Carp::Always is not actually required 2014-04-28 16:56:21 +02:00
e6db850267 Merge remote-tracking branch 'origin/master' into el6 2014-04-25 20:04:33 -05:00
cdbb7481c1 Merge remote-tracking branch 'origin/master' into el6 2014-03-28 19:23:08 -05:00
a7e04066b9 Merge remote-tracking branch 'origin/master' into el6 2014-03-26 20:59:00 -05:00
6cab7c3b39 Merge remote-tracking branch 'origin/master' into el6 2013-12-08 01:16:51 -06:00
0598b2b647 Merge remote-tracking branch 'origin/master' into el6 2013-12-07 19:17:27 -06:00
e900768920 Merge remote-tracking branch 'origin/master' into el6 2013-09-24 13:13:05 -05:00
728eeb431a Merge remote-tracking branch 'origin/master' into el6 2013-07-20 15:21:13 -05:00
9e7eced528 Merge remote-tracking branch 'origin/master' into el6 2013-06-04 08:04:20 -05:00
c523333a90 Merge remote-tracking branch 'origin/master' into el6 2013-06-01 16:35:57 -05:00
7f737aa245 Merge remote-tracking branch 'origin/master' into el6 2013-05-10 20:52:46 -05:00
f8698d362a Re-merge spec file 2013-04-28 13:36:49 -05:00
a1be66a11e Merge remote-tracking branch 'origin/master' into el6 2013-04-28 12:47:31 -05:00
91d9630c7e unbork previous merge 2013-03-23 22:34:17 -05:00
8431acd661 Merge remote-tracking branch 'origin/master' into el6 2013-03-23 18:49:13 -05:00
f9ee43f39b Merge remote-tracking branch 'origin/master' into el6 2013-03-01 10:03:20 -06:00
9c93010a02 Merge remote-tracking branch 'origin/master' into el6 2013-02-09 16:17:23 -06:00
18c6750621 Merge remote-tracking branch 'origin/master' into el6 2013-02-09 14:36:31 -06:00
78a77230bc Merge remote-tracking branch 'origin/master' into el6 2013-02-04 11:08:02 -06:00
bab1b9b8d4 Merge remote-tracking branch 'origin/master' into el6 2013-02-02 22:12:42 -06:00
177261b8da Merge remote-tracking branch 'origin/master' into el6 2013-01-09 11:43:44 -06:00
8d6df35ec4 Merge remote-tracking branch 'origin/master' into el6 2012-12-27 10:39:35 -06:00
727645e55a Merge remote-tracking branch 'origin/master' into el6 2012-12-20 22:05:28 -06:00
d96d2da4c6 Merge remote-tracking branch 'origin/master' into el6 2012-12-08 11:42:57 -06:00
51080cf30e Merge remote-tracking branch 'origin/master' into el6 2012-11-29 22:47:52 -06:00
5745d4e42d Merge remote-tracking branch 'origin/master' into el6 2012-11-11 14:07:35 -06:00
6df6ba1910 Merge remote-tracking branch 'origin/master' into el6 2012-11-03 21:52:34 -05:00
cdeb5c627d Merge remote-tracking branch 'origin/master' into el6 2012-11-03 19:30:46 -05:00
1c531115bd Merge remote-tracking branch 'origin/master' into el6 2012-10-19 21:01:36 -05:00
a693bc8742 Merge remote-tracking branch 'origin/master' into el6 2012-10-18 21:49:50 -05:00
d54bc75625 Merge remote-tracking branch 'origin/master' into el6 2012-10-07 17:05:30 -05:00
917fc4d85d Merge remote-tracking branch 'origin/master' into el6 2012-09-08 02:28:23 -05:00
510d50a444 Merge remote-tracking branch 'origin/master' into el6 2012-09-01 14:28:16 -05:00
66d1078e4e Merge remote-tracking branch 'origin/master' into el6 2012-08-19 22:49:31 -05:00
dd85f7c13d Merge remote-tracking branch 'origin/master' into el6 2012-08-17 23:23:22 -05:00
f091d7551f Merge remote-tracking branch 'origin/master' into el6 2012-08-14 13:46:16 -05:00
931ac1cff9 Merge remote-tracking branch 'origin/master' into el6
Conflicts:
	.gitignore
2012-08-06 23:23:19 -05:00
e44288a246 Merge remote-tracking branch 'origin/master' into el6 2012-05-18 23:02:24 -05:00
Kevin Fenzi
604312a0c1 Merge remote-tracking branch 'origin/master' into el6 2012-05-13 10:08:37 -06:00
Kevin Fenzi
33fbbfb046 Merge remote-tracking branch 'origin/master' into el6 2012-04-27 10:59:01 -06:00
Kevin Fenzi
2a2324a046 Merge remote-tracking branch 'origin/master' into el6
Conflicts:
	.gitignore
	munin.spec
	sources
2012-04-15 15:13:29 -06:00
5c16be04f8 updated for 1.4.7 release 2012-03-14 16:09:56 -05:00
Kevin Fenzi
0c412988dd Merge remote-tracking branch 'origin/master' into el6 2011-09-10 11:44:38 -06:00
Kevin Fenzi
6d80b9ee28 Merge remote-tracking branch 'origin/master' into el6
Conflicts:
	.gitignore
	munin.spec
	sources

Merge up with master branch and pick up 1.4.6 upstream bugfix release.
2011-08-05 16:01:39 -06:00
Kevin Fenzi
faf01a1338 Add patch for uppercase nodes (fixes 673263) 2011-02-08 19:36:34 -07:00
Kevin Fenzi
5829540bff Build for ppc64 in epel6 again, just exclude java plugins subpackage. 2010-12-21 14:41:28 -07:00
Fedora Release Engineering
4440f0acfe dist-git conversion 2010-07-29 03:49:28 +00:00
f3f6aeb286 Initial build for el6 Move docs to common subpackage to make sure COPYING
is installed. Add /etc/munin/node.d dir
2010-07-08 00:59:26 +00:00
3b0154f132 Add /etc/munin/conf.d/ dir Update to 1.4.5 2010-06-26 23:49:10 +00:00
5cf5e6ed1e Initialize branch EL-6 for munin 2010-05-08 02:00:33 +00:00
a41ec10930 Update to 1.4.4 Add more doc files. Fixes bug #563824 fw_forwarded_local
fixed upstream in 1.4.4. Fixes bug #568500
2010-03-02 01:56:26 +00:00
13cbf90545 Fix owner on state files. Add some BuildRequires. Make munin-node-configure
only run on install, not upgrade. bug 540687
2010-01-22 06:42:17 +00:00
1741fc3370 Update to 1.4.3 2010-01-06 05:55:03 +00:00
1014010322 Update to 1.4.1 2009-12-06 21:02:43 +00:00
Bill Nottingham
c91c1a66ab Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:41:32 +00:00
54 changed files with 4429 additions and 1627 deletions

44
.gitignore vendored
View file

@ -1,39 +1,5 @@
munin-1.4.5.tar.gz
/munin-node.service
/munin-1.4.5.tar.gz
/munin-1.4.5-rundir-conf.patch
/munin.conf
/munin-1.4.5-no-such-object.patch
/munin-1.4.6.tar.gz
/munin-1.4.7.tar.gz
/munin-2.0.2.tar.gz
/munin-2.0.4.tar.gz
/munin-2.0.5.tar.gz
/munin-2.0.6.tar.gz
/munin-2.0.7.tar.gz
/munin-2.0.8.tar.gz
/munin-2.0.9.tar.gz
/munin-2.0.10.tar.gz
/munin-2.0.11.tar.gz
/munin-2.0.11.1.tar.gz
/munin-2.0.12.tar.gz
/munin-2.0.13.tar.gz
/munin-2.0.14.tar.gz
/munin-2.0.15.tar.gz
/munin-2.0.16.tar.gz
/munin-2.0.17.tar.gz
/munin-2.0.18.tar.gz
/munin-2.0.19.tar.gz
/munin-2.0.20.tar.gz
/munin-2.0.21.tar.gz
/munin-2.0.22.tar.gz
/munin-2.0.23.tar.gz
/munin-2.0.24.tar.gz
/munin-2.0.25.tar.gz
/munin-2.0.26.tar.gz
/munin-2.0.27.tar.gz
/munin-2.0.28.tar.gz
/munin-2.0.29.tar.gz
/munin-2.0.30.tar.gz
/munin-2.0.32.tar.gz
/munin-2.0.33.tar.gz
munin-*.tar.gz*
*.src.rpm
.build-*.log
munin-2*/
noarch/

84
00-default Normal file
View file

@ -0,0 +1,84 @@
# This file is used to configure how the plugins are invoked.
# Place in /etc/munin/plugin-conf.d/ or corresponding directory.
#
# PLEASE NOTE: Changes in the plugin-conf.d directory are only
# read at munin-node startup, so restart at any changes.
#
# user <user> # Set the user to run the plugin as
# group <group> # Set the group to run the plugin as
# command <command> # Run <command> instead of the plugin. %c
# expands to what would normally be run.
# env.<variable> <value> # Sets <variable> in the plugin's environment, see the
# individual plugins to find out which variables they
# care about.
[bind9_rndc]
user root
env.rndc /usr/sbin/rndc
env.querystats /var/named/data/named_stats.txt
[cps*]
user root
[df*]
user root
env.exclude none unknown binfmt_misc cgroup_root debugfs devpts devtmpfs fuse.gvfs-fuse-daemon iso9660 ramfs romfs rootfs rpc_pipefs squashfs udf
env.exclude_re ^/run/user/ ^/sys/ ^/var/lib/docker ^/var/lib/containers/storage/overlay ^/var/lib/mock/ ^/media/ ^/mnt$
[exim*]
group mail
[fw_*]
user root
[hddtemp_smartctl]
user root
[if_*]
user root
[ipmi_*]
user root
timeout 20
[load]
env.load_warning 100
[mailman]
user mailman
[munin_stats]
env.fields update limits
[mysql*]
#env.mysqlopts -u someuser
[mysql_replication]
env.slave_io_running_warning 0.5
env.slave_sql_running_warning 0.5
env.seconds_behind_master_warning 3600
env.seconds_behind_master_critical 86400
[mysql_wsrep_flow_paused_ns]
env.wsrep_flow_control_paused_ns_warning 200000000
env.wsrep_flow_control_paused_ns_critical 10000000000
[postfix*]
user root
env.logfile maillog
env.logdir /var/log
[postgres_*]
user postgres
env.PGUSER postgres
env.PGPORT 5432
[sendmail*]
user root
env.mspqueue /var/spool/clientmqueue
[smart_*]
user root
[vlan*]
user root

View file

@ -0,0 +1,36 @@
From 21b3d860c17d7997d64267963f91ed75ca8a3e03 Mon Sep 17 00:00:00 2001
From: Lars Kruse <devel@sumpfralle.de>
Date: Thu, 29 Mar 2018 03:15:42 +0200
Subject: [PATCH] plugins nginx_*: change category from 'nginx' to 'webserver'
---
plugins/node.d/nginx_request | 2 +-
plugins/node.d/nginx_status | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/node.d/nginx_request.in b/plugins/node.d/nginx_request.in
index 38f1cbe6c..9cd41d7cf 100755
--- a/plugins/node.d/nginx_request.in
+++ b/plugins/node.d/nginx_request.in
@@ -94,7 +94,7 @@ if ( exists $ARGV[0] and $ARGV[0] eq "config" )
{
print "graph_title Nginx requests\n";
print "graph_args --base 1000\n";
- print "graph_category nginx\n";
+ print "graph_category webserver\n";
print "graph_vlabel Requests per \${graph_period}\n";
print "request.type DERIVE\n";
print "request.min 0\n";
diff --git a/plugins/node.d/nginx_status.in b/plugins/node.d/nginx_status.in
index f69b6ab8d..1834dada4 100755
--- a/plugins/node.d/nginx_status.in
+++ b/plugins/node.d/nginx_status.in
@@ -93,7 +93,7 @@ if ( exists $ARGV[0] and $ARGV[0] eq "autoconf" ) {
if ( exists $ARGV[0] and $ARGV[0] eq "config" ) {
print "graph_title Nginx status\n";
print "graph_args --base 1000\n";
- print "graph_category nginx\n";
+ print "graph_category webserver\n";
print "graph_vlabel Connections\n";
print "total.label Active connections\n";

View file

@ -1,32 +0,0 @@
From 4a39b56c7aefdd9794add4468c7dbe87ff683ce8 Mon Sep 17 00:00:00 2001
From: Daniel Black <daniel.black@openquery.com>
Date: Sun, 26 Oct 2014 17:36:29 +1100
Subject: [PATCH] Run munin-asyncd fetching on wall clock type
Patch by Picnic Pete: https://github.com/picnicpete
---
node/_bin/munin-asyncd.in | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/node/_bin/munin-asyncd.in b/node/_bin/munin-asyncd.in
index 8efe50f..4811b2d 100644
--- a/node/_bin/munin-asyncd.in
+++ b/node/_bin/munin-asyncd.in
@@ -160,9 +160,14 @@ MAIN: while($keepgoing) {
next;
}
- # Should update it
- $last_updated{$plugin} = $when;
- $when_next = min($when_next, $when + max($plugin_rate, $minrate));
+ # Should update it - based on wall clock time
+ my $should_have_been = $when - ($when % $plugin_rate);
+ my $should_be_next = $should_have_been + $plugin_rate;
+
+ $last_updated{$plugin} = $should_have_been;
+ if ($should_be_next < $when_next) {
+ $when_next = $should_be_next;
+ }
if ($do_fork && fork()) {
# parent, return directly

View file

@ -1,25 +0,0 @@
include Makefile.config
CGIDIR = $(DESTDIR)/var/www/cgi-bin
CGITMPDIR = /var/tmp
CHGRP := echo Not done: chgrp
CHMOD := echo Not done: chmod
CHOWN := echo Not done: chown
CONFDIR = $(DESTDIR)/etc/munin
DBDIR = $(DESTDIR)/var/lib/munin
DBDIRNODE = $(DESTDIR)/var/lib/munin-node
DOCDIR = $(DESTDIR)/usr/share/doc/munin-$(VERSION)
GROUP := nobody
HOSTNAME = localhost.localdomain
HTMLDIR = $(DESTDIR)/var/www/html/munin
JAVALIBDIR = $(DESTDIR)/usr/share/java
LIBDIR = $(DESTDIR)/usr/share/munin
LOGDIR = $(DESTDIR)/var/log/munin
PERLSITELIB := $(DESTDIR)/usr/share/perl5/vendor_perl
PERL := /usr/bin/perl
PLUGSTATE = $(DBDIR)/plugin-state
PREFIX = $(DESTDIR)/usr
PYTHON := /usr/bin/python
RUBY := /usr/bin/ruby
USER := nobody

View file

@ -1,29 +0,0 @@
--- ./plugins/node.d/ntp_.in.orig 2014-03-26 18:45:21.374305323 -0500
+++ ./plugins/node.d/ntp_.in 2015-03-06 22:31:31.154285245 -0600
@@ -77,7 +77,7 @@
if ($line =~ m/^\s*\d+/) {
my (undef, undef, $assid, undef, undef, undef, undef, undef, undef, undef) = split(/\s+/, $line);
chomp(my $peerinfo = `ntpq -n -c "readvar $assid srcadr"`);
- $peerinfo =~ s/\R/ /g;
+ $peerinfo =~ s/\n/ /g;
my ($peer_addr) = ($peerinfo =~ m/srcadr=(.*)/);
print $peer_addr, "\n" unless $peer_addr eq "0.0.0.0";
}
@@ -114,7 +114,7 @@
if ($line =~ m/^\s*\d+/) {
my (undef, undef, $assid, undef, undef, undef, undef, undef, undef, undef) = split(/\s+/, $line);
chomp(my $peerinfo = `ntpq -n -c "readvar $assid srcadr,delay,offset,jitter"`);
- $peerinfo =~ s/\R/ /g;
+ $peerinfo =~ s/\n/ /g;
($srcadr) = ($peerinfo =~ m/srcadr=([^, ]+)/);
($delay) = ($peerinfo =~ m/delay=([^, ]+)/);
($offset) = ($peerinfo =~ m/offset=([^, ]+)/);
@@ -152,7 +152,7 @@
if ($line =~ m/^\s*\d+/) {
my (undef, undef, $assid, undef, undef, undef, undef, undef, undef, undef) = split(/\s+/, $line);
chomp(my $peerinfo = `ntpq -n -c "readvar $assid srcadr,delay,offset,jitter"`);
- $peerinfo =~ s/\R/ /g;
+ $peerinfo =~ s/\n/ /g;
($srcadr) = ($peerinfo =~ m/srcadr=([^, ]+)/);
($delay) = ($peerinfo =~ m/delay=([^, ]+)/);
($offset) = ($peerinfo =~ m/offset=([^, ]+)/);

View file

@ -0,0 +1,36 @@
diff -ur munin-2.0.42.orig/plugins/node.d/postfix_mailqueue.in munin-2.0.42/plugins/node.d/postfix_mailqueue.in
--- munin-2.0.42.orig/plugins/node.d/postfix_mailqueue.in 2018-09-21 05:11:11.000000000 +0300
+++ munin-2.0.42/plugins/node.d/postfix_mailqueue.in 2018-09-30 13:33:21.825373214 +0300
@@ -103,7 +103,7 @@
cat <<'EOF'
graph_title Postfix Mailqueue
graph_vlabel Mails in queue
-graph_category postfix
+graph_category mail
graph_total Total
active.label active
deferred.label deferred
diff -ur munin-2.0.42.orig/plugins/node.d/postfix_mailstats.in munin-2.0.42/plugins/node.d/postfix_mailstats.in
--- munin-2.0.42.orig/plugins/node.d/postfix_mailstats.in 2018-09-21 05:11:11.000000000 +0300
+++ munin-2.0.42/plugins/node.d/postfix_mailstats.in 2018-09-30 13:33:14.492320072 +0300
@@ -141,7 +141,7 @@
print "graph_vlabel mails / \${graph_period}\n";
print "graph_scale no\n";
print "graph_total Total\n";
- print "graph_category postfix\n";
+ print "graph_category mail\n";
print "graph_period minute\n";
print "delivered.label delivered\n";
print "delivered.type DERIVE\n";
diff -ur munin-2.0.42.orig/plugins/node.d/postfix_mailvolume.in munin-2.0.42/plugins/node.d/postfix_mailvolume.in
--- munin-2.0.42.orig/plugins/node.d/postfix_mailvolume.in 2018-09-21 05:11:11.000000000 +0300
+++ munin-2.0.42/plugins/node.d/postfix_mailvolume.in 2018-09-30 13:33:06.602262890 +0300
@@ -133,7 +133,7 @@
print "graph_args --base 1000 -l 0\n";
print "graph_vlabel bytes / \${graph_period}\n";
print "graph_scale yes\n";
- print "graph_category postfix\n";
+ print "graph_category mail\n";
print "volume.label delivered volume\n";
print "volume.type DERIVE\n";
print "volume.min 0\n";

View file

@ -1,59 +0,0 @@
#!@@GOODSH@@
#
# Plugin to monitor CPU speed
#
# Usage: Place in /etc/munin/node.d/ (or link it there using ln -s)
#
# Parameters understood:
#
# config (required)
# autoconf (optional - used by munin-config)
#
# Magic markers - optional - used by installation scripts and
# munin-config:
#
#%# family=auto
#%# capabilities=autoconf
if [ "$1" = "autoconf" ]; then
if [ -r /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq ]; then
echo yes
exit 0
else
echo no
exit 1
fi
fi
if [ "$1" = "config" ]; then
cat <<EOF
graph_title CPU frequency scaling
graph_args --base 1000 -r --lower-limit 0
graph_vlabel Hz
graph_scale yes
graph_info This graph shows at what speeds the CPUs are running
graph_category system
EOF
for c in /sys/devices/system/cpu/cpu*; do
N=${c##*/cpu}
MAXHZ=$(cat $c/cpufreq/cpuinfo_max_freq)
cat <<EOF
cpu$N.label CPU $N
cpu$N.max $MAXHZ
cpu$N.min $(cat $c/cpufreq/cpuinfo_min_freq)
cpu$N.type GAUGE
EOF
if [ "$scaleto100" = "yes" ]; then
echo "cpu$N.cdef $cpu$N,$MAXHZ,/"
fi
done
exit 0
fi
for c in /sys/devices/system/cpu/cpu*; do
N=${c##*/cpu}
echo "cpu$N.value $(cat $c/cpufreq/scaling_cur_freq)"
done

View file

@ -0,0 +1,504 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: 9108 46AD EE4C 5D67 C19B 3E6F 0A24 C059 98BA 4133
Comment: Steve Schnepp <steve.schnepp@gmail.com>
Comment: Steve Schnepp <steve.schnepp@pwkf.org>
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
=bOn3
-----END PGP PUBLIC KEY BLOCK-----

61
httpd_cgi_graphs.conf Normal file
View file

@ -0,0 +1,61 @@
# Example configuration for Apache httpd with cgi generated graphs.
#
# To use this example config file you need to enable cgi graphs in Munin. Add
# following three lines to /etc/munin/conf.d/local.conf (without # character):
#
# graph_strategy cgi
# html_strategy cgi
# cgiurl_graph /munin/graph
#
# Then copy this file to /etc/httpd/conf.d/ directory and restart httpd.
#
# Access Munin at http://localhost/munin/
<VirtualHost *:80>
ServerName localhost
ServerAdmin root@localhost
ErrorLog /var/log/httpd/munin.localhost-error.log
CustomLog /var/log/httpd/munin.localhost-access.log combined
DocumentRoot /var/www/html
# Rewrites for graph/html generated by cgi
RewriteEngine On
RewriteRule ^/munin/static/(.*) /var/www/html/munin/static/$1 [L]
RewriteRule ^/munin/graph/(.*) /munin-cgi/munin-cgi-graph/$1 [L,PT]
RewriteRule ^/munin/(.*) /munin-cgi/munin-cgi-html/$1 [L,PT]
RewriteRule ^/munin$ /munin/ [R]
ScriptAlias /munin-cgi/ /var/www/html/munin/cgi/
# FastCGI
<Directory "/var/www/html/munin/cgi">
Options +ExecCGI
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
</Directory>
</VirtualHost>
# Uncomment following lines to require authentication:
# <Directory /var/www/html/munin>
# AuthUserFile /etc/munin/munin-htpasswd
# AuthName "Munin"
# AuthType Basic
# Require valid-user
# # This next part requires mod_expires to be enabled.
# #
# # We could use <IfModule mod_expires> around here, but I want it to be
# # as evident as possible that you either have to load mod_expires _or_
# # you coment out/remove these lines.
# #
# # Set the default expiery time for files 5 minutes 10 seconds from
# # their creation (modification) time. There are probably new files by
# # that time.
# ExpiresActive On
# ExpiresDefault M310
# </Directory>

49
httpd_cron_graphs.conf Normal file
View file

@ -0,0 +1,49 @@
# Example configuration for Apache httpd with cron generated graphs.
#
# To use this example config simply copy this to /etc/httpd/conf.d/
# directory and restart httpd.
#
# Access Munin at http://localhost/munin/
<VirtualHost *:80>
ServerName localhost
ServerAdmin root@localhost
ErrorLog /var/log/httpd/munin.localhost-error.log
CustomLog /var/log/httpd/munin.localhost-access.log combined
DocumentRoot /var/www/html
ScriptAlias /munin-cgi/munin-cgi-graph /var/www/html/munin/cgi/munin-cgi-graph
# FastCGI
<Directory "/var/www/html/munin/cgi">
Options +ExecCGI
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
</Directory>
</VirtualHost>
# Uncomment following lines to require authentication:
# <Directory /var/www/html/munin>
# AuthUserFile /etc/munin/munin-htpasswd
# AuthName "Munin"
# AuthType Basic
# Require valid-user
# # This next part requires mod_expires to be enabled.
# #
# # We could use <IfModule mod_expires> around here, but I want it to be
# # as evident as possible that you either have to load mod_expires _or_
# # you coment out/remove these lines.
# #
# # Set the default expiery time for files 5 minutes 10 seconds from
# # their creation (modification) time. There are probably new files by
# # that time.
# ExpiresActive On
# ExpiresDefault M310
# </Directory>

View file

@ -1,48 +0,0 @@
# http://munin.readthedocs.org/en/latest/example/webserver/apache-virtualhost.html
<VirtualHost *:80>
#ServerName munin.example.org
#ServerAlias munin
#ServerAdmin info@example.org
DocumentRoot /var/www/html/munin
ErrorLog /var/log/httpd/munin.example.org-error.log
CustomLog /var/log/httpd/munin.example.org-access.log combined
# Rewrites
RewriteEngine On
# Static content in /static
RewriteRule ^/favicon.ico /var/www/html/munin/static/favicon.ico [L]
RewriteRule ^/static/(.*) /var/www/html/munin/static/$1 [L]
# workaround for some static content
RewriteRule /favicon.ico /var/www/html/munin/static/favicon.ico [L]
RewriteRule /static/(.*) /var/www/html/munin/static/$1 [L]
# HTML
RewriteCond %{REQUEST_URI} .html$ [or]
RewriteCond %{REQUEST_URI} =/
RewriteRule ^/(.*) /var/www/cgi-bin/munin-cgi-html/$1 [L]
# Images
# - remove path to munin-cgi-graph, if present
RewriteRule ^/munin-cgi/munin-cgi-graph/(.*) /$1
RewriteCond %{REQUEST_URI} .png$
RewriteRule ^/(.*) /var/www/cgi-bin/munin-cgi-graph/$1 [L]
#ScriptAlias /munin-cgi/munin-cgi-graph /var/www/cgi-bin/munin-cgi-graph
# Ensure we can run (fast)cgi scripts
<Directory "/var/www/cgi-bin">
Options +ExecCGI
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
</Directory>
</VirtualHost>

View file

@ -1,172 +0,0 @@
#!/bin/bash
#
### BEGIN INIT INFO
# chkconfig: 2345 91 10
# processname: munin-node
# config: /etc/munin/munin-node.conf
# pidfile: /var/run/munin-asyncd.pid
# Provides: munin-asyncd
# Required-Start: $local_fs $remote_fs $network munin-node
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts and stops munin-asyncd
# Description: munin-asyncd enables asyncronous fetching of
# metrics from munin-node in a Munin monitoring setup.
### END INIT INFO
ASYNC_BIN=munin-asyncd
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/${ASYNC_BIN}
PIDFILE=/var/run/munin/${ASYNC_BIN}.pid
is_running () {
if [ ! -e "$PIDFILE" ]; then
return 3 # No PID file exists, ${ASYNC_BIN} must not be running
else
kill -0 $(cat $PIDFILE) 2> /dev/null
if [ "$?" -eq "0" ]; then
return 0 # PID file exists, and PID found in file is in use
else
rm $PIDFILE 2> /dev/null
if [ "$?" -eq "0" ]; then
return 1 # PID file exists, but no process with the PID was found. Deletion of the PID file was a success
else
return 2 # PID file exists, but no process with the PID was found. Deletion of the PID file failed
fi
fi
fi
}
check_root () {
operation=$1
if [ "$(id -u)" -ne "0" ]; then
echo "Root permissions are required in order to perform the \"$operation\" operation."
exit 4
fi
}
sanity_check () {
if [ ! "$(type -p pidof)" ]; then
echo "The program \"pidof\" is required in order for this script to work properly, and will not run without it."
exit 1
fi
if [ ! -d "$(dirname $PIDFILE)" ]; then
mkdir -p $(dirname $PIDFILE) 2> /dev/null
if [ "$?" -ne "0" ]; then
echo "The directory for a PID file is missing ($(dirname $PIDFILE)), and could not be created automatically. Please correct this and try again."
exit 1
fi
fi
if [ ! -x "$DAEMON" ]; then
echo "${ASYNC_BIN} was expected at $DAEMON, but was not found. Are you sure Munin is correctly installed?"
exit 5
fi
}
case $1 in
start)
check_root $1
sanity_check
echo -n "Starting ${ASYNC_BIN} ... "
is_running
if [ "$?" -eq "0" ]; then
echo "Already running (PID: $(cat $PIDFILE))."
exit 0
fi
$DAEMON > /dev/null 2> /dev/null < /dev/null &
sleep 0.5 # Give ${ASYNC_BIN} time to fail, if it fails
pid=$(pidof -o %PPID -x $DAEMON)
if [ "$?" -eq "0" ]; then
echo $pid > $PIDFILE
echo "Done."
exit 0
else
echo "Start failed for some reason, restarting ${ASYNC_BIN} so you can see why:"
$DAEMON
echo
echo "A \"Connection refused\" message typically is because munin-node is not started prior to ${ASYNC_BIN}."
fi
;;
stop)
check_root $1
sanity_check
echo -n "Stopping ${ASYNC_BIN} ... "
# If a PID file is not found, we perform an extra check if ${ASYNC_BIN} still should be running, and if it does, then create a PID file
if [ ! -e "$PIDFILE" ]; then
pid=$(pidof -o %PPID -x $DAEMON)
if [ "$?" -eq "0" ]; then
echo $pid > $PIDFILE
fi
fi
is_running
if [ "$?" -ne "0" ]; then
echo "Not running."
exit 0
fi
PID=$(cat $PIDFILE)
kill -15 $PID 2> /dev/null
HALFSECONDS="0"
while true; do
kill -0 $PID 2> /dev/null
if [ "$?" -eq "1" ]; then
break
fi
sleep 0.5
HALFSECONDS=$(expr $HALFSECONDS + 1)
if [ "$HALFSECONDS" -ge "10" ]; then
kill -9 $PID 2> /dev/null
echo "Not stopping gracefully, killed!"
exit 0
fi
done
echo "Done."
exit 0
;;
restart|try-restart|force-reload)
check_root $1
sanity_check
$0 stop
$0 start
exit 0
;;
reload)
echo "The \"reload\" operation is not supported by ${ASYNC_BIN}. You probably want to run \"restart\" instead."
exit 3
;;
status)
is_running
return="$?"
if [ "$return" -eq "0" ]; then
echo "${ASYNC_BIN} is running (PID: $(cat $PIDFILE))."
exit 0
elif [ "$return" -eq "1" ]; then
echo "${ASYNC_BIN} is not running, but PID file still existed (has been removed now)."
exit 1
elif [ "$return" -eq "2" ]; then
echo "${ASYNC_BIN} is not running, but PID file still exists (could not be removed)."
exit 1
elif [ "$return" -eq "3" ]; then
echo "${ASYNC_BIN} is not running."
exit 3
fi
exit 4
;;
*)
echo "Usage: $0 {start|stop|restart|try-restart|force-reload|reload|status}"
exit 2
;;
esac

View file

@ -1,45 +0,0 @@
commit 997d82d30040dc9749db46823a933555e586e645
Author: Daniel Black <daniel.black@openquery.com>
Date: Thu Jan 30 11:34:54 2014 +1100
Break mysql innodb data on full sections
Patch from Jan Mara
https://github.com/jmara/ubuntu-munin-mysql/commit/77ae2b2d8bc1233e0f0b0e6346d66b955441ba14
diff --git a/plugins/node.d/mysql_.in b/plugins/node.d/mysql_.in
index 3376036..fb70e24 100644
--- a/plugins/node.d/mysql_.in
+++ b/plugins/node.d/mysql_.in
@@ -1070,7 +1070,7 @@ sub parse_innodb_status {
# Add a dummy section to the end in case the innodb status output
# has been truncated (Happens for status > 64K characters)
- $_ .= "\n----------\nDUMMY\n";
+ $_ .= "\n----------\nDUMMY\n----------\n";
my %section_map = (
@@ -1114,7 +1114,12 @@ sub parse_innodb_status {
my $innodb_bigint_rx = qr{([[a-fA-F\d]+)(?: (\d+))?};
-sub match_dashes { return m/\G-+\n(?!-)/gc; }
+sub match_new_section {
+ return m/\G
+ -+\n # ---------------------------
+ (?= [A-Z\/ ]+\n # SECTION NAME
+ [=-]+\n)/gcx; # --------------------------- ('=' on end of output)
+}
sub skip_line { return m/\G.*\n/gc; }
@@ -1133,7 +1138,7 @@ sub parse_section {
#warn substr($_, pos(), 10);
for (;;) {
- return if match_dashes();
+ return if match_new_section;
next if $parser->();
skip_line();
}

View file

@ -1,50 +0,0 @@
commit e5f12ef57c75d37aa2e3444cc448598f3c32b0ea
Author: Daniel Black <daniel.black@openquery.com>
Date: Tue Jun 17 11:45:13 2014 +1000
Mariadb-10 show innodb status compatiblity
show innodb status on mariadb-10 if in a transaction will show
--------------
ROW OPERATIONS
--------------
0 queries inside InnoDB, 0 queries in queue
1 read views open inside InnoDB
1 RW transactions active inside InnoDB
0 RO transactions active inside InnoDB
1 out of 1000 descriptors used
---OLDEST VIEW---
Normal read view
Read view low limit trx n:o 726056894
Read view up limit trx id 726056894
Read view low limit trx id 726056894
Read view individually stored trx ids:
-----------------
Main thread process no. 13048, id 140163878000384, state: sleeping
Number of rows inserted 0, updated 0, deleted 0, read 1666121005
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 17566.53 reads/s
------------
In this patch we just skip sections like "Main thread process.." that we
don't know about.
diff --git a/plugins/node.d/mysql_.in b/plugins/node.d/mysql_.in
index 9b6914b..1d83115 100644
--- a/plugins/node.d/mysql_.in
+++ b/plugins/node.d/mysql_.in
@@ -1102,8 +1102,12 @@ sub parse_innodb_status {
last;
}
- die "Unknown section: $1" unless exists $section_map{$sec};
- die "Parse error. Expected a section separator" unless m/\G-+\n/gc;
+ if (exists $section_map{$sec}) {
+ $section_map{$sec}->();
+ } else {
+ #warn "Unknown section: $1";
+ skip();
+ }
$section_map{$sec}->();
}

View file

@ -1,3 +0,0 @@
[sendmail*]
user root
env.mspqueue /var/spool/clientmqueue

View file

@ -1,2 +0,0 @@
[hddtemp_smartctl]
user root

View file

@ -1,4 +0,0 @@
[postfix*]
user root
env.logfile maillog
env.logdir /var/log

View file

@ -1,2 +0,0 @@
[df*]
env.exclude none unknown binfmt_misc debugfs devtmpfs fuse.gvfs-fuse-daemon iso9660 ramfs romfs rpc_pipefs squashfs tmpfs udf

View file

@ -1,6 +0,0 @@
[postgres_*]
# for more detail run "man Munin::Plugin::Pgsql"
user postgres
env.PGUSER postgres
env.PGPORT 5432

View file

@ -1,24 +0,0 @@
diff -up munin-2.0.33/master/Build.PL.orig munin-2.0.33/master/Build.PL
--- munin-2.0.33/master/Build.PL.orig 2017-05-25 12:15:34.037053427 +0200
+++ munin-2.0.33/master/Build.PL 2017-05-25 12:15:53.935936213 +0200
@@ -1,3 +1,4 @@
+BEGIN { push @INC, '.'; }
use MasterBuilder;
use warnings;
diff -up munin-2.0.33/node/Build.PL.orig munin-2.0.33/node/Build.PL
--- munin-2.0.33/node/Build.PL.orig 2017-05-25 12:16:06.121864433 +0200
+++ munin-2.0.33/node/Build.PL 2017-05-25 12:16:17.849795350 +0200
@@ -1,3 +1,4 @@
+BEGIN { push @INC, '.'; }
use NodeBuilder;
use warnings;
diff -up munin-2.0.33/plugins/Build.PL.orig munin-2.0.33/plugins/Build.PL
--- munin-2.0.33/plugins/Build.PL.orig 2017-05-25 12:16:30.426721266 +0200
+++ munin-2.0.33/plugins/Build.PL 2017-05-25 12:16:40.500661926 +0200
@@ -1,3 +1,4 @@
+BEGIN { push @INC, '.'; }
use PluginsBuilder;
use warnings;

View file

@ -1 +0,0 @@
1c6f994bf62d6dee89554efba0733b6f96d4130ba906162c32f77587088974c4 munin-2.0.33.tar.gz

View file

@ -1,12 +0,0 @@
--- master/lib/Munin/Master/Utils.pm.orig 2012-07-30 09:25:33.000000000 -0500
+++ master/lib/Munin/Master/Utils.pm 2012-08-05 14:07:57.236121331 -0500
@@ -904,6 +904,9 @@
my $storable_filename_tmp = $storable_filename . ".tmp.$$";
+ use Carp qw(cluck);
+ cluck "data is null at " unless $data;
+
# Write datafile.storable, in network order to be architecture indep
Storable::nstore($data, $storable_filename_tmp);

View file

@ -1,4 +0,0 @@
[amavis]
group adm
env.MUNIN_MKTEMP /bin/mktemp -p /tmp/ $1
env.amavislog /var/log/mail.info

View file

@ -1,20 +0,0 @@
diff -ru munin-2.0.9.orig/master/lib/Munin/Master/HTMLConfig.pm munin-2.0.9/master/lib/Munin/Master/HTMLConfig.pm
--- munin-2.0.9.orig/master/lib/Munin/Master/HTMLConfig.pm 2012-12-05 13:19:35.000000000 -0600
+++ munin-2.0.9/master/lib/Munin/Master/HTMLConfig.pm 2012-12-20 21:37:22.364028610 -0600
@@ -499,11 +499,11 @@
my $start_year = $epoch_now - (3600 * 24 * 400);
my $size_x = 800;
my $size_y = 400;
- my $common_url = "$root_path/static/dynazoom.html?cgiurl_graph=$config->{'cgiurl_graph'}&plugin_name=$path&size_x=$size_x&size_y=$size_y";
- $srv{zoomday} = "$common_url&start_epoch=$start_day&stop_epoch=$epoch_now";
- $srv{zoomweek} = "$common_url&start_epoch=$start_week&stop_epoch=$epoch_now";
- $srv{zoommonth} = "$common_url&start_epoch=$start_month&stop_epoch=$epoch_now";
- $srv{zoomyear} = "$common_url&start_epoch=$start_year&stop_epoch=$epoch_now";
+ my $common_url = "$root_path/static/dynazoom.html?cgiurl_graph=$config->{'cgiurl_graph'}&amp;plugin_name=$path&amp;size_x=$size_x&amp;size_y=$size_y";
+ $srv{zoomday} = "$common_url&amp;start_epoch=$start_day&amp;stop_epoch=$epoch_now";
+ $srv{zoomweek} = "$common_url&amp;start_epoch=$start_week&amp;stop_epoch=$epoch_now";
+ $srv{zoommonth} = "$common_url&amp;start_epoch=$start_month&amp;stop_epoch=$epoch_now";
+ $srv{zoomyear} = "$common_url&amp;start_epoch=$start_year&amp;stop_epoch=$epoch_now";
}
for my $scale (@times) {

View file

@ -1,14 +1,20 @@
[Unit]
Description=Munin Async Server.
Documentation=man:munin-node
Description=Munin Node - Asynchronous Proxy
Documentation=http://guide.munin-monitoring.org/en/latest/node/async.html
Requires=munin-node.service
After=network-online.target munin-node.service
Wants=network-online.target
After=network.target
After=network-online.target
After=munin-node.service
[Service]
Type=simple
Type=notify
User=munin
ExecStart=/usr/sbin/munin-asyncd
PrivateTmp=true
PrivateDevices=yes
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=full
TimeoutStopSec=20s
[Install]
WantedBy=multi-user.target

8
munin-cgi-graph.service Normal file
View file

@ -0,0 +1,8 @@
[Unit]
Description=Munin FastCGI Graphs Service
Requires=munin-cgi-graph.socket
[Service]
User=munin
ExecStart=/var/www/html/munin/cgi/munin-cgi-graph
StandardInput=socket

11
munin-cgi-graph.socket Normal file
View file

@ -0,0 +1,11 @@
[Unit]
Description=Munin FastCGI Graphs Socket
[Socket]
ListenStream=/run/munin/munin-cgi-graph.sock
SocketMode=0660
SocketUser=nginx
SocketGroup=munin
[Install]
WantedBy=sockets.target

8
munin-cgi-html.service Normal file
View file

@ -0,0 +1,8 @@
[Unit]
Description=Munin FastCGI HTML Pages Service
Requires=munin-cgi-html.socket
[Service]
User=munin
ExecStart=/var/www/html/munin/cgi/munin-cgi-html
StandardInput=socket

11
munin-cgi-html.socket Normal file
View file

@ -0,0 +1,11 @@
[Unit]
Description=Munin FastCGI HTML Pages Socket
[Socket]
ListenStream=/run/munin/munin-cgi-html.sock
SocketMode=0660
SocketUser=nginx
SocketGroup=munin
[Install]
WantedBy=sockets.target

View file

@ -1,56 +0,0 @@
#! /bin/sh
#
# munin-fcgi-graph
#
# chkconfig: 2345 90 10
# description: munin fcgi graph service process
# pidfile: /var/run/munin/fcgi-graph.pid
# Source function library.
. /etc/rc.d/init.d/functions
RETVAL=0
mkdir -p /var/run/munin 2>/dev/null
chown munin /var/run/munin
restorecon /var/run/munin 2>/dev/null
# See how we were called.
case "$1" in
start)
echo -n "Starting Munin fcgi-graph: "
/usr/bin/spawn-fcgi -s /var/run/munin/fcgi-graph.sock -u munin -g munin /var/www/cgi-bin/munin-cgi-graph -P /var/run/munin/fcgi-graph.pid
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo_success
touch /var/lock/subsys/munin-fcgi-graph
else
echo_failure
fi
echo
;;
stop)
echo -n "Stopping Munin fcgi-graph: "
kill $(cat /var/run/munin/fcgi-graph.pid)
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo_success
rm -f /var/lock/subsys/munin-fcgi-graph
else
echo_failure
fi
echo
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
*)
echo "Usage: munin-fcgi-graph {start|stop|restart}"
exit 1
esac
exit $RETVAL

View file

@ -1,11 +0,0 @@
[Unit]
Description=Munin FastCGI Graph
Documentation=man:spawn-fcgi
[Service]
Type=forking
PIDFile=/run/munin/fcgi-graph.pid
ExecStart=/usr/bin/spawn-fcgi -s /run/munin/fcgi-graph.sock -u munin -g munin /var/www/cgi-bin/munin-cgi-graph -P /run/munin/fcgi-graph.pid
[Install]
WantedBy=multi-user.target

View file

@ -1,56 +0,0 @@
#! /bin/sh
#
# munin-fcgi-html
#
# chkconfig: 2345 90 10
# description: munin fcgi html service process
# pidfile: /var/run/munin/fcgi-html.pid
# Source function library.
. /etc/rc.d/init.d/functions
RETVAL=0
mkdir -p /var/run/munin 2>/dev/null
chown munin /var/run/munin
restorecon /var/run/munin 2>/dev/null
# See how we were called.
case "$1" in
start)
echo -n "Starting Munin fcgi-html: "
/usr/bin/spawn-fcgi -s /var/run/munin/fcgi-html.sock -u munin -g munin /var/www/cgi-bin/munin-cgi-html -P /var/run/munin/fcgi-html.pid
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo_success
touch /var/lock/subsys/munin-fcgi-html
else
echo_failure
fi
echo
;;
stop)
echo -n "Stopping Munin fcgi-html: "
kill $(cat /var/run/munin/fcgi-html.pid)
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo_success
rm -f /var/lock/subsys/munin-fcgi-html
else
echo_failure
fi
echo
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
*)
echo "Usage: munin-fcgi-html {start|stop|restart}"
exit 1
esac
exit $RETVAL

View file

@ -1,11 +0,0 @@
[Unit]
Description=Munin FastCGI HTML
Documentation=man:spawn-fcgi
[Service]
Type=forking
PIDFile=/run/munin/fcgi-html.pid
ExecStart=/usr/bin/spawn-fcgi -s /run/munin/fcgi-html.sock -u munin -g munin /var/www/cgi-bin/munin-cgi-html -P /run/munin/fcgi-html.pid
[Install]
WantedBy=multi-user.target

5
munin-node Normal file
View file

@ -0,0 +1,5 @@
# We moved the default config to file 00-default
# as config files in this directory are read in alphabetical order.
#
# Documentation can be found in Munin-Guide:
# http://guide.munin-monitoring.org/en/latest/plugin/use.html#configuring

65
munin-node.conf Normal file
View file

@ -0,0 +1,65 @@
#
# Example config file for munin-node. You don't have to edit anything in
# this file if you are using munin-asyncd.
#
log_level 4
log_file /var/log/munin-node/munin-node.log
pid_file /var/run/munin/munin-node.pid
background 1
setsid 1
user root
group root
# This is the timeout for the whole transaction.
# Units are in sec. Default is 15 min
#
# global_timeout 900
# This is the timeout for each plugin.
# Units are in sec. Default is 1 min
#
# timeout 60
# Regexps for files to ignore
ignore_file [\#~]$
ignore_file DEADJOE$
ignore_file \.bak$
ignore_file %$
ignore_file \.dpkg-(tmp|new|old|dist)$
ignore_file \.rpm(save|new|orig)$
ignore_file \.pod$
# Set this if the client doesn't report the correct hostname when
# telnetting to localhost, port 4949
#
#host_name localhost.localdomain
# A list of addresses that are allowed to connect. This must be a
# regular expression, since Net::Server does not understand CIDR-style
# network notation unless the perl module Net::CIDR is installed. You
# may repeat the allow line as many times as you'd like
allow ^127\.0\.0\.1$
allow ^::1$
# If you have installed the Net::CIDR perl module, you can use one or more
# cidr_allow and cidr_deny address/mask patterns. A connecting client must
# match any cidr_allow, and not match any cidr_deny. Note that a netmask
# *must* be provided, even if it's /32
#
# Example:
#
#cidr_allow 127.0.0.1/32
#cidr_allow 192.0.2.0/24
#cidr_deny 192.0.2.42/32
# Which address to bind to;
host *
#host 127.0.0.1
# And which port
port 4949

View file

@ -1,10 +1,5 @@
/var/log/munin-node/munin-node.log {
daily
missingok
rotate 7
compress
copytruncate
notifempty
create 644 root root
su root root
copytruncate
}

View file

@ -1,65 +0,0 @@
#! /bin/sh
#
# munin-node Control the Munin Node Server (formerly Linpro RRD client)
#
# chkconfig: 2345 90 10
# description: munin node agents
# processname: munin-node
# config: /etc/munin/munin-node.conf
# pidfile: /var/run/munin/munin-node.pid
# Source function library.
. /etc/rc.d/init.d/functions
RETVAL=0
PROCNAME=munin-node
mkdir -p /var/run/munin 2>/dev/null
chown munin /var/run/munin
restorecon /var/run/munin 2>/dev/null
# See how we were called.
case "$1" in
start)
echo -n "Starting Munin Node: "
/usr/sbin/munin-node &
sleep 1
pkill -0 $PROCNAME
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo_success
touch /var/lock/subsys/munin-node
else
echo_failure
fi
echo
;;
stop)
echo -n "Stopping Munin Node agents: "
kill $(cat /var/run/munin/munin-node.pid)
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo_success
rm -f /var/lock/subsys/munin-node
else
echo_failure
fi
echo
;;
status)
status $PROCNAME
RETVAL=$?
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
*)
echo "Usage: munin-node {start|stop|status|restart}"
exit 1
esac
exit $RETVAL

View file

@ -1,11 +1,18 @@
[Unit]
Description=Munin Node Server.
After=syslog.target network.target
Description=Munin Node
Documentation=man:munin-node(1) http://guide.munin-monitoring.org/en/latest/node/index.html
After=network.target
After=network-online.target
PartOf=munin-asyncd.service
[Service]
Type=forking
PIDFile=/var/run/munin/munin-node.pid
ExecStart=/usr/sbin/munin-node
Type=notify
ExecStart=/usr/sbin/munin-node --foreground
PrivateDevices=no
PrivateTmp=yes
ProtectHome=read-only
ProtectSystem=full
TimeoutStopSec=30s
[Install]
WantedBy=multi-user.target

View file

@ -1,14 +0,0 @@
[Unit]
Description=Munin Node Server.
Documentation=man:munin-node
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/munin/munin-node.pid
ExecStart=/usr/sbin/munin-node
PrivateTmp=true
[Install]
WantedBy=multi-user.target

18
munin-rrdcached.service Normal file
View file

@ -0,0 +1,18 @@
[Unit]
Description=Munin RRDtool Cache
After=network.target
[Service]
User=munin
ExecStart=/usr/bin/rrdcached \
-g -p /run/munin/munin-rrdcached.pid \
-m 0660 -l unix:/run/munin/rrdcached.sock \
-w 1800 -z 1800 -f 3600 \
-B -b /var/lib/munin/ \
-F -j /var/lib/munin/rrdcached/
PIDFile=/run/munin/munin-rrdcached.pid
StandardOutput=null
Restart=on-abort
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,28 @@
diff -ur munin-2.0.63.orig/node/sbin/munin-run munin-2.0.63/node/sbin/munin-run
--- munin-2.0.63.orig/node/sbin/munin-run 2020-05-27 23:52:55.000000000 +0300
+++ munin-2.0.63/node/sbin/munin-run 2020-07-04 10:55:27.079868324 +0300
@@ -31,7 +31,7 @@
# --pipe: 235 or later
# --collect: 236 or later
-my $REQUIRED_SYSTEMD_VERSION = 236;
+my $REQUIRED_SYSTEMD_VERSION = 999;
# See "man systemd.exec" for the list of all systemd properties.
# The following properties belong to the relevant sections "Capabilities",
@@ -50,7 +50,6 @@
EnvironmentFile
Group
Limit\w+
- LockPersonality
MemoryDenyWriteExecute
MountFlags
NetworkNamespacePath
@@ -189,6 +188,7 @@
# "systemd show" does not output the EnvironmentFile property in a readable format.
# See https://github.com/systemd/systemd/issues/14723.
next if ($property_definition =~ /^EnvironmentFiles?=(.*) \(ignore_errors=(yes|no)\)$/);
+ next if ($property_definition =~ /^RestrictSUIDSGID=/);
push @flag_list, $1 if $property_definition =~ /$flag_name_regex/;
}
return @flag_list;

View file

@ -1 +1,156 @@
D /var/run/munin 0755 munin munin -
###########################################################################
# #
# Please don't edit this example config file. Create and edit #
# file /etc/munin/munin-conf.d/local.conf instead. #
# #
# You must also install munin-nginx or munin-apache sub-package. See #
# /usr/share/doc/munin-*/*.conf for example nginx/apache config files #
# and installation instructions. #
# #
###########################################################################
# The next three variables specifies where the location of the RRD
# databases, the HTML output, logs and the lock/pid files. They all
# must be writable by the user running munin-cron. They are all
# defaulted to the values you see here.
#
#dbdir /var/lib/munin
#htmldir /var/www/html/munin
#logdir /var/log/munin
#rundir /run/munin
# Where to look for the HTML templates
#
#tmpldir /etc/munin/templates
# Where to look for the static www files
#
#staticdir /etc/munin/static
# Temporary cgi files are here. Note that it has to be writable by the cgi
# user (usually apache).
#
#cgitmpdir /var/lib/munin/cgi-tmp
# (Exactly one) directory to include all files from.
includedir /etc/munin/munin-conf.d
# You can choose the time reference for "DERIVE" like graphs, and show
# "per minute", "per hour" values instead of the default "per second"
#
#graph_period second
# Graphics files are generated either via cron or by a CGI process.
# See http://munin-monitoring.org/wiki/CgiHowto2 for more
# documentation.
# Since 2.0, munin-graph has been rewritten to use the cgi code.
# It is single threaded *by design* now.
#
#graph_strategy cron
# munin-cgi-graph is invoked by the web server up to very many times at the
# same time. This is not optimal since it results in high CPU and memory
# consumption to the degree that the system can thrash. Again the default is
# 6. Most likely the optimal number for max_cgi_graph_jobs is the same as
# max_graph_jobs.
#
#munin_cgi_graph_jobs 6
# If the automatic CGI url is wrong for your system override it here:
#
#cgiurl_graph /munin-cgi/munin-cgi-graph
# max_size_x and max_size_y are the max size of images in pixel.
# Default is 4000. Do not make it too large otherwise RRD might use all
# RAM to generate the images.
#
#max_size_x 4000
#max_size_y 4000
# HTML files are normally generated by munin-html, no matter if the
# files are used or not. You can change this to on-demand generation
# by following the instructions in http://munin-monitoring.org/wiki/CgiHowto2
#
# Notes:
# - moving to CGI for HTML means you cannot have graph generated by cron.
# - cgi html has some bugs, mostly you still have to launch munin-html by hand
#
#html_strategy cron
# munin-update runs in parallel.
#
# The default max number of processes is 16, and is probably ok for you.
#
# If set too high, it might hit some process/ram/filedesc limits.
# If set too low, munin-update might take more than 5 min.
#
# If you want munin-update to not be parallel set it to 0.
#
#max_processes 16
# RRD updates are per default, performed directly on the rrd files.
# To reduce IO and enable the use of the rrdcached, uncomment it and set it to
# the location of the socket that rrdcached uses.
#
#rrdcached_socket /run/munin/rrdcached.sock
# Drop somejuser@fnord.comm and anotheruser@blibb.comm an email everytime
# something changes (OK -> WARNING, CRITICAL -> OK, etc)
#contact.someuser.command mail -s "Munin ${var:worst}: ${var:group}::${var:host}::${var:plugin}" somejuser@fnord.comm
#contact.anotheruser.command mail -s "Munin ${var:worst}: ${var:group}::${var:host}::${var:plugin}" anotheruser@blibb.comm
#
# For those with Nagios, the following might come in handy. In addition,
# the services must be defined in the Nagios server as well.
#contact.nagios.command /usr/bin/send_nsca nagios.host.comm -c /etc/nsca.conf
#
# A simple host tree
#
# [localhost]
# address 127.0.0.1
# use_node_name yes
#
# A more complex example of a host tree
#
## First our "normal" host.
# [fii.foo.com]
# address foo
#
## Then our other host...
# [fay.foo.com]
# address fay
#
## IPv6 host. note that the ip address has to be in brackets
# [ip6.foo.com]
# address [2001::1234:1]
#
## Then we want totals...
# [foo.com;Totals] #Force it into the "foo.com"-domain...
# update no # Turn off data-fetching for this "host".
#
# # The graph "load1". We want to see the loads of both machines...
# # "fii=fii.foo.com:load.load" means "label=machine:graph.field"
# load1.graph_title Loads side by side
# load1.graph_order fii=fii.foo.com:load.load fay=fay.foo.com:load.load
#
# # The graph "load2". Now we want them stacked on top of each other.
# load2.graph_title Loads on top of each other
# load2.dummy_field.stack fii=fii.foo.com:load.load fay=fay.foo.com:load.load
# load2.dummy_field.draw AREA # We want area instead the default LINE2.
# load2.dummy_field.label dummy # This is needed. Silly, really.
#
# # The graph "load3". Now we want them summarised into one field
# load3.graph_title Loads summarised
# load3.combined_loads.sum fii.foo.com:load.load fay.foo.com:load.load
# load3.combined_loads.label Combined loads # Must be set, as this is
# # not a dummy field!
#
## ...and on a side note, I want them listen in another order (default is
## alphabetically)
#
# # Since [foo.com] would be interpreted as a host in the domain "com", we
# # specify that this is a domain by adding a semicolon.
# [foo.com;]
# node_order Totals fii.foo.com fay.foo.com
#

View file

@ -1,7 +0,0 @@
#
# cron-jobs for munin
#
MAILTO=root
*/5 * * * * munin test -x /usr/bin/munin-cron && /usr/bin/munin-cron

View file

@ -1,39 +1,9 @@
/var/log/munin/munin-cgi-graph.log
/var/log/munin/munin-cgi-html.log
/var/log/munin/munin-graph.log
/var/log/munin/munin-html.log
/var/log/munin/munin-limits.log
/var/log/munin/munin-update.log {
daily
missingok
rotate 7
compress
notifempty
create 640 munin munin
su munin munin
}
/var/log/munin/munin-graph.log {
daily
missingok
rotate 7
compress
notifempty
create 640 munin munin
su munin munin
}
/var/log/munin/munin-html.log {
daily
missingok
rotate 7
compress
notifempty
create 640 munin munin
su munin munin
}
/var/log/munin/munin-limits.log {
daily
missingok
rotate 7
compress
notifempty
create 640 munin munin
su munin munin
missingok
notifempty
}

15
munin.service Normal file
View file

@ -0,0 +1,15 @@
[Unit]
Description=Munin server to collect data from nodes
Documentation=man:munin-cron(8)
After=network.target
After=network-online.target
After=munin-node.service
After=munin-rrdcached.service
[Service]
User=munin
ExecStart=/usr/bin/munin-cron
PrivateDevices=no
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=full

1387
munin.spec

File diff suppressed because it is too large Load diff

1
munin.sysusers Normal file
View file

@ -0,0 +1 @@
u munin - "Munin user" /var/lib/munin /bin/sh

9
munin.timer Normal file
View file

@ -0,0 +1,9 @@
[Unit]
Description=Munin server to collect data from nodes
Documentation=man:munin-cron(8)
[Timer]
OnCalendar=*:00/5
[Install]
WantedBy=timers.target

13
munin.tmpfilesd Normal file
View file

@ -0,0 +1,13 @@
# Create runtime directory
d /run/munin 0775 root munin -
# Cleanup for old rrd/png etc files
x /var/lib/munin/.ssh
x /var/lib/munin/cgi-tmp
x /var/lib/munin/rrdcached
e /var/lib/munin/cgi-tmp/* - - - 1d
e /var/lib/munin/spool - - - 14d
e /var/lib/munin - - - 30d

2550
mysql_ Executable file

File diff suppressed because it is too large Load diff

40
nginx_cgi_graphs.conf Normal file
View file

@ -0,0 +1,40 @@
# Example configuration for nginx with cgi generated graphs.
#
# To use this example config file you need to enable cgi graphs in Munin. Add
# following three lines to /etc/munin/conf.d/local.conf (without # character):
#
# graph_strategy cgi
# html_strategy cgi
# cgiurl_graph /munin/graph
#
# Then copy this file to /etc/nginx/conf.d/ directory and restart nginx.
# Services munin-cgi-html and munin-cgi-graph must also be started:
#
# systemctl enable --now munin-cgi-html.socket munin-cgi-graph.socket
#
# Access Munin at http://localhost/munin/
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
location /munin/static/ {
alias /etc/munin/static/;
}
location /munin/graph/ {
include fastcgi_params;
fastcgi_split_path_info ^(/munin/graph)(.*);
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/munin/munin-cgi-graph.sock;
}
location /munin/ {
include fastcgi_params;
fastcgi_split_path_info ^(/munin)(.*);
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/munin/munin-cgi-html.sock;
}
}

View file

@ -1,49 +0,0 @@
server {
# Example configuration! Change this to suit your needs.
# Access munin at http://localhost/munin/
# NOTE - Do not remove this file, otherwise munin package upgrade
# recreates this.
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# redirect server error pages to the static page /40x.html
#
error_page 404 /404.html;
location = /40x.html {
root /usr/share/nginx/html;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ^~ /munin-cgi/munin-cgi-graph/ {
access_log off;
fastcgi_split_path_info ^(/munin-cgi/munin-cgi-graph)(.*);
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/munin/fcgi-graph.sock;
include fastcgi_params;
}
location /munin/static/ {
alias /etc/munin/static/;
}
location /munin/ {
fastcgi_split_path_info ^(/munin)(.*);
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/munin/fcgi-html.sock;
include fastcgi_params;
}
}

View file

@ -1 +1,2 @@
SHA512 (munin-2.0.33.tar.gz) = aa6df8555dfd09585619376a4e9f20c2c6092e70076041ff3dcf987f6eab3caf2880ce32432f71f7b0493808d9e5dbc11e352aa636c39f22ad355409342feb70
SHA512 (munin-2.0.76.tar.gz) = 37ad31fa8c7585e4a79ce5b62e6ac83c6f12fe0cbb1c28a257f7c71f99c6b05cc837c7557870a28211c253eb85d981a4b17aed2f6028881d5bdef27c01e445a2
SHA512 (munin-2.0.76.tar.gz.asc) = b34d6c62f73a1bc381e21e95c03e386fe26e1d32eebc396b82fea69326694db3370bdfc8f2cfcaf37d7c9d4bed27f68e17bebd729a5eac8505ddd97bf677241b