From c6590b6715cdd528d3060eea93edbe3aca8e85a8 Mon Sep 17 00:00:00 2001 From: Andreas Perhab Date: Wed, 6 Oct 2021 14:09:00 +0200 Subject: [PATCH] letsencrypt_weekly: display by registered domain --- .../example-graphs/letsencrypt_weekly-1.png | Bin 0 -> 41373 bytes .../example-graphs/letsencrypt_weekly-2.png | Bin 0 -> 34355 bytes plugins/ssl/letsencrypt_weekly | 113 ++++++++++++++++-- 3 files changed, 102 insertions(+), 11 deletions(-) create mode 100644 plugins/ssl/example-graphs/letsencrypt_weekly-1.png create mode 100644 plugins/ssl/example-graphs/letsencrypt_weekly-2.png diff --git a/plugins/ssl/example-graphs/letsencrypt_weekly-1.png b/plugins/ssl/example-graphs/letsencrypt_weekly-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9bcede5ce856ced3a1050066b9b0ad5124d5d6a5 GIT binary patch literal 41373 zcmYg%19an0*luduHnv;aTidp6+wRuf+O}o2-5xZREuevO%PFxMyV^camK-9u|yj8w5qw=}pU z0MQ*8-u?6XtNlv<>s9>*Gip*z`?T2ObDZyq^SSutI`{Jv&&Th}_iN+kulDo#xm{7N zKG_en9}7=n1lu!=9-E)f1GU~EFDom$Z=O^wxo{s{{h`}GB;A*<-)4dj9-g}i?`A?@ zU;MsxFa1Dr{nWAe@VP-aJhuPjtGW*V-2ONWouIMZ7yCAnBy@M(dx)(`(juEbYM>Y;he^C8hT z^rL-k>Go5ce~;rUU%~SVhg{5q{ld$O_qE+qj=dWhmRi%h$D;Pd%{jA=L&L$TZ}m;- z-O6)!&yVaMQ%JpxFOQS*pH;KMCJ(i6To;T32*)2fhD<~F@>TEAj)v6T%SthPHRL>| zA21xtiwklHnbjUTQeF7|aTHx|kM6w~xb9nlaU*@hLBHQ~Kij^}roN_#+^^?RA?PSe zka7bH-!lxyoL(7n2Z(n+SEsf>zh3_u`+ZT34ye}Wb(`ABI6S}T8fiTbw$3*??>Udm zFoXnEz8!2EGdUi_pjWCX&f4%ks#w@i+JSg){Aj`JriL zRma+y^+nqPB&FLQ*VfG^&VGXUy#wRYEU&dwa~+?{lFZsor*qrZ?b~&$A8H@#xnH46 z193}xjmiA#{@O9>y4Ah(DBx6-nTGXgV3@TH07L>)mTjSF#nhxJpE&SPQAo>%m~}zS z!H|~_3y$}eO`_B{qCZobzz4cd_f%)*%`c=$E}19y&X3@wmb;BReM}W}D_LLCSGxx? z_EG&A24DOv{(D!Jk`v=5?Zj_F1E|*vdBXenju3StP73x{W0_?&sB0 zwsxmAvmGBh_Rnc4N=aK?p3j=3t9DF}jlx@xo=jcBeiu!S=^U|WoK=8K%db5jKQu9^(mrPsLgBU>yE$4Qa> zY%m%}IdvO%RN;sAGwP{Bk@ioxYNN^B$fQg3%GYUqm$51*ng%Q zSOZT4(USz^+f3Q#iB6$wO=!ng0#*`UsP3r`=kf)zZ;-0v&xK{$j0hgYHm-I)MdlH2 z;*=>_9=;njZ&LZV%&5i&RZI@-nqh9u44oI^q1h%0bh9+oq}OzxbFwRs)D`DOy~LqJ zRt3bVExfwwcYQK-(AyauF$|u>#HnI#KX*^#Al%j2@#-{kC-#gBQ(^M-{E8Ic$C+aW zH%NHyFMo>=8OS!s3LQp_qUglts9Oa`syrx&?(f~1>)1gZoUyGQuN$GE*sauwzI~j% z@%|jvziF^d@V;Von?ZX#-P6YF3Le+K%>UKRHlQ0uRoC7iFy^oaF(8y5fx%mJ!C900 z{j{;~-6bkO30sVm*b*heN+RjTHDNkFN)N(#ffU`2QCx8 z^M=7`cG9l#WMXos+Zh<$K!g5(VUj;1+pUgtZdkdbo4`Fqw&f+gBlkG|CpzgCoWMtAPsW$T2ouCbr&Y+Ch+*Ii+{xR(S(Aaz?pqeI&SQ#zUiVKDq9ql3rpQj zI}um;^B>nkGU9dGpdvnt66-MS^?#wL7In^5*umz3?E_#D8!qs%c>Dz0kYYj=gT!oU zPA|bSUV1t(!K`t95mLBCd5m>BZw8dfi(02_;EnYeTpq)D%H|8=$Oub2v>2E^JFZB9 z!Ds8#2Fik5P%b5qpgphu&P_~pGFnqjd=XVW$19?pD6Mf@2UUBn?Lx5m z)n-IFRMmu$jA<(L@g%DgRK3uRN=Fm0Y5i;;{h147}B;HY%-xG}YMuyEiu zG4iq0M*>%eeK#!7wB)Qj2-W0zNSlwfb3GNLQ~bZbTs3)(8;angomVHbP%^08gmXGL zknp#)Kq#qWAyD5Xh3Wx%1*p@A+8LMvwDX0LQv%@(3fO3KXzvlB!bNITyWx+Qiwr-B zc|2)Yd`ys@laOvU*>!Lk$fE-9FA+?<715+)UIN7k6>t!*&G?vx*@xyi0uWyOG;n zMstt&$ZO#5XPS*9$;V*Q4L}V*$^%!W&g<}@E>8DI1R97aT#}0g2*d-^MHU>rD2g;hAeV4$c&>$z0%y`q$(y6LZFXBFCL=Y%;7c=|JPuaPf=fM8JN#jCez$ z>WoQv(B(p05T1!U$&=T&3MtL@(FOM0Z9I@xm@5$q3NuSGyDBEjo~mZK!L$a7D+#-< zf)nYkw!6<`>qMj%BN=M}3QeG0W{Dfd2PB);f)kj<`$zy`Idhuy6?KKk$|C}rP;&`- zZAe|9n480rI4BJTAxsEPn1)$ZCn9*mpkNScM-GA^P}pL-$Z85~!qB+iFGya;_{$zc zNJgW1(1sP;%_iuHF=f6%lu>6abQ(x7qQ{&CByCunKq|Bw3LY>@V?}&UnLny!)rrWz z))Pjhk&V~HfF)lbN?PCc(5N2WHorO{WHw}}o zID*yZhrUZ;1|9HpE+s2;0T?RP9%}@s1?0uZBxi*!x>T3CkWi!6z9NS(m>XfLKpW=0 z8kjrgZ;a_%7#a0QNGCE%LJO<%9eV!&_=hG+#x`C_GoYPe(Lh%o-7VLH!=O)#0+!Zh zy%^bQGY1AxH9%6se=f0S!0TpIfMmGi`P`9`(kPCqU{hvs1&s_0#We2ULOp=_2CNsr zE1sC>j5h0wg4FpM&W{LqJYDbI9)%^5ar40RP()Kdj=r9BT+Xbx+UvG8QH?kdJ>w@$ zFtma(%A;yM;y$KSt@OZH$y)iTr_qF120V`#*_UXN!bO_uo)muzKF{KA5Fj{)JB}Ka zM<&{2AVH6e>OIJuA|ILyp0HS$hRw_k5M(E_I{rCbG9@KjJJf@Bpki!d*bY_pygUZ= zZjq0*r!>bAgiZoWO#Dmdaw>WIJK{{VPHjP%;4$mB%{(SR{&CXE0T1xD%QUKyG{9rtbkeYQBn?Q5EBbh-Wf9&gvy=w8mP%&l98Cf@4OD{ z#F{jMoNVF_Qk(B?$Qm$O+v;4$5P{=7at0MC5ahG2nUU)FBHVf+^R#`EkXH4bHokdI z!Hna`2OyeqwK;g2SOJ5)9)b~h(fKRmKklYEw3!YMhrW0?5$ZEVk%z-xFx>Le?CF9G zm{8bgyG%rG@Q-+TRI^eXp{juSjVQ3_yZWy72#SF7XG#&H za`Bh7bp5YAF)Wf$ACDIkzLY0wpmh2mA1r7NT}tvZqq%2bf9va#OH_=sx6RbrbWk3tDC zKcg7pjpEA>5+HV*wZ&7lDsmFnB|RYW!x=--FUy>^u;5849Xfu#RQ3~T+Av^pCMkVq z0;mfKjj7j@v?GKe{T{@w+)d)>AM!$tBk!4IiAeo0=wPD3x%^chLhw>+oc3a>xt72TW!MUoel@^^F&+UqiMf@jZibQ z-&I~})j7Y21`fe?c0MHMVsJxsOnl5+{Cvk+riT(C%=H$ao}}T5o$am_x(Lc>UZ`p6+v;g<2=>( zi*QX(#bzG~P*`}O(;D$mbZG~1N8Q{=w-X8v`RLv;L(~UV$wUbZmsrkzaZ>QoL#1cC z2M>0190&vsNr>z+gw!O^vq@Xu#tr|}fYw0FsiWAu(GFqqsq!_6h7F9}i zn+zTIEkC@(sL+NY%`PqXA4UB%4#p(&r-Seq*p56Kd5|e*m9UMK%ytgpZ)~jRXP@P+ zwn`hs{0REOY!xnX^E4Z2GBCwqk%EHxZ0U@gGzx%s4C*kff%%t8S#tiLeVQ~c+X2V$ zL;DnkZyts`As0DAB=@a)P-9g=r>KY+0##a)rJN@s1p{C~8ec|&g(OIKqA0vkNggQu z$k=HGSl$65c}VFULGk3*s?MP4Fv8R#wxRdh$U-qyA*;Tsdel0@!m7#9q#g&+&=hJ(d>`CaEE#JR`dmi znV0CtUoRvy&}-?Y2ivh}m^!jjfvn%9162w_(b9h=D@^AWTe>4VzQguCpa0O5#Y?Ii zsp7nk_f-`98uh4L9E<6#`s*Xr^f;F>V-Ua3giB6g6^sCNSNrHB!#p{%o>Z;#d&})5 zQ?Y$-qwIR(JsVSAS8A5FOgn^~-8BySQUWnv2q`i++?85q`nF7FnU}Re9UNkSUIU(tF6A}Gm!h9&<9_Uz(Ix6B4^gx8U}R$-8Ww84*m+wPYpc~n$sxq zH<3yW$m4XgSOg*x^0)ZivJLynt+X+GbtQUQ#gR%Q-O#QA)`U|+L3v)$WDDW*ezQiJ z2?gWsun1v~i3&^9xD*J=8T~oF8~lRdHN?3ew(t$J#Lu)l#3HUiS{0WO0jLyy;lf*{ zS0%ELwG*xqSWto-HttI2C$PQE>owg?%2n)?1me$RrpNV)pD!r4k@ zv6-hh$vjhVMIK_@Dt`Rdz}q7ku^%MSeVVW9HR)n3^H&;v1Njz zLP!Ku&bv{IuhHw>u7bKA5r^()+i?`i{4!>{zBb*XhK6n2NO(0Lw=~$=9oXDJj)E6?1yoGfjq2uj0L_vj^9Bow@o+?9( zOBLJuP71K*{|2;E3nPBFbMJzk`+}$k0wukokZZW1!#_=q==*fO6u(Y6REn--U5Egc zB*`0KZKSlVw`GcX!oi|cIcrv4oqLF@M$GOo%Ic2>P2z5?Ps}WTTovL)f+}KoiCghg zM8lRi0c-^8#t&`>4801<^mowQKgimmZy8f2Y&FoEVOOpm6o^SyAgY-pyo+dUtYUz% z$jazLCN6TW@!<@&tEI%k0j|4%CN~w5@Q%SAZvl&kp2l1mt0~dX{<+_>O^i9yt|XbR z*Ho7f6fh%5wkZ0f9^Z|mJeM00p{RVSDQe>Yi#k25>U0&K{2$Kaaqlhw7nHggNupid z^KVI*C>OpWt|iDeNyR69*a3-~)=H69Trdz@3Wm7Q5|~AxE6$Aq$2*Nyb?_qD&zQ!m z-cQTqU$q&U`O=8iFv}{;xK+@){hlAYfNs| zMO+oHWOc`sSTu9ns#ZfP3~LPExr3TnuWhE%s*pRMFTjNgNoH1?=kZXA)RIbkK@|P3 zf89=CslXaeO-2EM5ftBVbK1rp0U>j`LN}%qSz?Sf^r4No>Q~;^&P!PHu$#g-W5w}y zO8o6&6j3P_SV$dwZ!6=hKz!AF$&R6K@yr;Kt#P_FEkiFD%hAOUqazc)PUs0U-+CN- zK8EoZKl4ZEE5(}9*T9$f7ZOK2E-m09^k-4WZsu9a`iOrm-1Sq-P;?CoWd(SEg8=ND z0tFC31nvbW zeJMCN(yND*^FD0jz2QjUbu`r;Om=>C(>_buq#oLwvG=RmuUWZVW!jYAJ-OioLbYLH zR$Diklo`SX6=;Y)^eLlEd*rC><%r^$9kgx|^Fi!Jp%tj+C(5~M?~JpEG*E?r3eX92 zkb>dw{fwtPZXB?XY}Tl}N%pBGq=4ky6F1pj(8b(0K`;O_DG3Rzlf{<6Fn}pu`dOi* zv^pg9bfzMQY?0zD*dZJ{6lLp)1+xgtH9Z^eFv%Mm4EI2qc{N zwRDtBn74Ew6a;GtAi-#*p1I~D;c;J{7F%`Wi94j`x}GmPo3li)QsI3V${X-ky38UD zZUD|hr&9#rWZBX`(NH##7lu3fIVXd$|8ug=%W}7&241z!qtsCDo{_aJ0*%li!)tic`|*vii|u* zDb_L(b(RW$o_tVh+vKf09sa+85;FOhxb)^hDq5SL0OQzq#FP#mi7eH3N@G-LrgP45k{XOjX`VA-?Z<$Ka*v)I97g}J z3#2IR_7%@LyF{l*_e8IuXZ3hi3Ou?)V}du5hPaQ>BBh0jVyG-?(&r(NK;kw1UeML|u7`x+ypKgr{Xy5L&NM z$;juB?Sdg2ifE)k$x9JbtSx4n8AMne2DxF2o~O4j5i!G z-owL!l#OSsvQr>PyH$dEG6@xwSmsW{4Lwp_?n5>~82@4+qNCD`Q6HVYsR3y-Ew|^q zL;DRLKtg{jRN@wA0)2f3jiF;0!y>p*yBc);>Hx zlGkd6S9cMDr8|IyawP{9F_0vUwyVo(KR$ukjYG6O@`f+?(aWa$3b)p&=CwoRB7;Q8 zHh;|5?3qf7{=-U?;LM&xbfB@{OaKi9d8rA`%c*cGbm%SrxG-YH7Y!rMUEY&ea7ZW);eYcj8k~73**ck=_!IGF~MAo9v@`+md?JgW;kLer) z@m=jr8NMhFHFCt%icj!%`MU~qP>AQ8BWa=XJKjT7ql_(PFiQl2MywYTR+Jk~%p=n7 zYOOUC0TLZW$j1slh5^1@c;HcbTe<}NY6lXSdTRn`Vx1=sWl46eqA-n#Tmy$+01S!q zE$N&Z4wX;8-M-jFmx(#$yD_F4LXWhV+F9snf z>PEnr2C9ZQ0fTI3vFM*^@UTvL31_0Lg;8Pt&XErejDTwt7oS;1eM3g zUouG9IMPKx*NADoAb!^~g(H|YRP2bgVx~yG`1~>@ zmgPyaih*Hebs^sP=Qr+bm)U;d`J6|y#O&7nfb)vuUGM>l{ErqXdQYbX_VJ&{)??Ny zH7IqZHf1d&#NQK8yi$}aj1~3}m8x25YiKOM--JIIVeaQ)Mv8Y6D!0PQMIstoU&Mmw zy@K0(LhXfOHbP?~t@y~e81wV~SQ1vzW9P3|2LC)ELlFxvBTcCtV(pa5x1uHc)!Y0> zn=d{|kdiqvv1HW?qc&p=ge;U<%*HwsuAiCNYpIY}Gmy7g6XrxcF*>aa7Y_W;3Q8H} zp+fI2TR$N4A?6*BV(wUsOgH6FyYkvIo`Zb)DED)tgf2qs?>ed`w*jcVIGhtlwoIU{ z%vAvkcC^L!pKWZK4nqaxp^4A|kV8yo$Qab6F=B0}f|eL8rbJ`)ZX$~iuTm;~5$q90 zyqbK^-2Qi~NM+Rl??^x9Mm*J05;dpFbdBUAXkBjxU<3Zz%G%@%6(IzkUgt@ zfIJpkszTld_%p_Y}alzQPPFKjxohVg*b2G^+xb$CAa*JIvIdzb* zsJ7Xg+y7LiB_J(&^@8GcgzoEe|m^)cbJ}7Q7_2CTog=TG7(U}yUzDw;pX>NFm;|)Hs&3WtqznbOmZ?G`I6`2oyCu*CMZq<>)miNw62A0}IQrU~YK1HEz9sKgHm7+BYth$Qotd{LJE^v4rh!38D zD1AfE3%GokSB`P)>|Sb%?4b~9ZZ(ry+7EIrjQ3(UfT!D<>{hXoT2{ zYZI-RY5m(59|=?bZbH(P?L}NssfloMqf3{VU(oYRzZ%={$u&H;)ZoZ$s3El z(ocP6qQS+!?@;NA(PE_Ea{)c?r|dZ;-wWPXWn%mjLmfW zHb9PISvC7^hD7)NN*=n^Rl4k|>KZ3^h{CPzLn~-4B#Iod38n^qOdjugpn5Nn@}lIb z;{jSlO~XuKX`g6jG*0e@P4g|kGIbq)$mcY~GU;p;8`PM_q_T~$moiOSwd03)KZ0s- z{NBQ`Mdtyrj>?_IaCtW%S%Lq44W5+%DwM07zyRGtGtomC&c@$WFkW{iNWltJc&%j# z_il>E)dSo$oW6PTd$)x$y(Lv`k8Jx-4sA{bair$xGX5qANy)a(k`6g_*9x=M=S;8X zYEmHqHsre7leCuDr1JJ}FY1qK*&dayyLP43;Io3^LMzNE2RkKa2Uq9c?o6+MRACZU4~d7nlf&TXPS@#FEXb_IpByp96-Z@KnvQZjf2U(0b!)S=ncd zaU?+@prvjdC2h~pIn^Myd4(?zWrae;ZGA|wjYRXP&bbrzX~~;akO+P)-38dWpDV~< zA`>ehVOP_di-u%}lEk{wSNFNAG{ktx4G9uRuKg-dFryW`+}dVeA9R(d)&$~5I3Bh8k!(PHx6Sp9a=YJ zaE9fx-^;h3UXj{6Fwf!Rga~PHm=1x3i?BFYkEZ4RwjxpC%kC8MQx7$NZAczYPEY?*FBkuk_0RCZZMS%UJWFqHWsE`9Z4Zqp~ZtrWs zK_DR)U|#exHPlg}Gv}5&)v-GYOXtQ{U<%VQ>1Toij%=AP_R#wHoo^^%|KBIP_FNuY z*BK`6ou0}7*xfKZ22_BQx=vJRFu~LF{q7=|W?pj)&LH^gXumDSet{QggQ&83yj1I& z@%&YHN@#ue0sNCTIBgU5Bgq4roz2O3Yc(mh;)A%{d2{*6-(Zg{Efp{eU-3O?cgKmA zBrRNlm2^kr+7Zrd39^roGwuxp`adDFakbEk&I>O&WnfL5Pb7C8a=x#BbCW`pRsFk1 z0YepN;L><^+;VD5&~aDT6>}Uz&9H}!3FDxQ7&ohpP1g#Gw!WR6wfwoaIyaFz%N-JR zh?Z=VGP0__e3KAUmn-RZ3Px4~6l$Erl2@{;F6YO8`=OsXdYaIe^TW*Vm~y*5v|tp; zrybLtUFG_@J@|;A_OJ&QlP|u==`HZrZ0Dh!S`3a=5+)chF6E8VMC|phC8}$`Q;N77 z{Ep8qOoG6@TW@l!pa^UMLvZRZ7fzjb7Q_B&ma!|tbOM4|l9QTWUjhCwVJP^q-zU73 zQ@(Cg^OwLMY9GY7$4}L!Rw9MuR(QF^xI*DB_yGY1>Gy%k^T2_3378}&d3>p}n`7YB z4si+8M)PLE_TR|ZxLQ0xDAKrhV=27ts#38K67(FCSL`e~WA+C;hNTE?B^Z;h36ne! z0}d(^B|a&5tx|DZN`2#cbndPx^Oz`7s}KnUxKj6=vchZb9VWLVT9E8!kdkvug355# zV`FZP{Jn5>^P&j!=*ygZda(Dx({x$}*-E?1<}K|zB=+Z6Ng|O70bO&n$~*g|>5Rbi zwI#RnB`sulvV0{yj&-j$Y$a#~q~DCYFTyob9LC`zbcudJ;Qit^=R6orKd6S&X*4xT zKlAE|^B0SyJ~$`8rwH%X#?%%b@gPum!L-}!`**G^_KfnF5ODZ!PVHn%aUJw7n7mc) z<4!~y_c}A&T7tw^`&ao`o`<=pFA2FZa7XcnKlYj@S}4g#%pnu@L4nH7(GT`% za>q(u=^LJ+U?WTNa>SETBptgGD#eN1SdCBW1rXk6MRPt&EtRX#g|XjA$U-|MD7=?h zb)tW5upsG#U|Vah$6w#l>Y46E_MQ}dA-)hiw)(%9&tog5s1RQoTF7G^2p6sL%vPXN zzH~L4vO{fn*|`2H)0tn46vjW}lAaS5Tart4siG*u;=C{#dq{s&ni4`1>w9Mlf?7jF z&0jDkZMuDrO%tLXpXTFUtw*F{%GlCUz+#=wPx@MWZQEBNxeu%xi2hxeMw_&PUFU^8 z)~PE#(~zUne!EJ*R5UD30f#$kFzh#segb8snX?k`vYqMl;VMd?+A znuGoE$o-JFU@OTdtcgG-<5*^h17d)thJDWq#Wsb9DtTA>lMmYP4B4hY&l!doRbkEHBmO)OHk~g{xag*fONe}8As?1e_+9?;u+wUWKkQFK&S#-mQ1u{p7|Z~Aq5awcrcv3j5|XJ$=5%u!8j`rt zSwEANZX;u}-1E%roG}WN1#$w^s@o-HZ?MF##V0~_?5Nm&2%$gaW995%L%}(6WcY*X z#-|g7B_D&!x8Jj44G5neILur%3=oN>*IQ5nG;Dj>RoF7kH|mq3U0HLfF}`b|Vl}iq z@<6vCFgmOIs4O{106YSGg4)aN$rDi}Dnv&&8(-l%O{SHV$*i3DD;yP&DiyjZ$`*Y( zwT=gPVD9+@Mgvh^vSFdrx4l4&KcF>TUKRDo`}ddr1d#bQL}5f3UVt;qA@U~p1%3A` zlyabi4#`1<5D@5N8d>(tclUZw-@f*LS@`%spf>kL^K0^}&6`$4$F?FSc~arpfPXF2 zAhKV-DO@hJh_>>bil9?XSW2&u#c5XKe-{4!!2xmjWK!$zv7cBOIP(P+-5qAJ=Yz!q zJi;AfDJ-lYDJ=YdPi+IwYG?T-@JS2`;1BC7i_)b8xgk4_DP+?|NI5RjpyvyfVQ9HB zw%@~Lu#$hHj}5Z!?~fa<2##v3L97WPeg@e)Ix0FLrTAp{))euu(?)cC#doy@BGmnx zwbB}N)@5CWV$X=OljgCDGywUPF(B}E!Cbzk>F2EC@qMJJ#DXC~G*Z-qV##XR=y2cG;@oeL zI{hMbVB4h(4m1QHa7|W_KB0O$o9~p9^pqG8U3xjEN2zBU;aII=|N35V#-R0m!RwsT z`4=Pp_DR&UwoD)+ZbHz}X=OD>X(TN!0{HrO%j+&p0`|Z- zNN73(0B~sk?jV4SENoyWl#8USDAXY=5)39FYP5tO03ZfPiU_KBtX*V#>Zm+?e(5(h zO!d`K2L}WMjVE$2iNwHG+v~a?cKmuW+nlJfuGA- z5HU2cg$K)i`|pX>5X`@xJh80*@8y8xt`h9Oj|Jhdva@UHT<`7*#&8NEg9|dIcXV(s zY&*5%`}z6BPaZ}@M&|#|(6nd`T1ddjgV)%h6F4MfK}*ZB6))Q!IB--yag!FE-9{S- ze=btG3?zT9JzJ`1Qa5lqWN?-?w@X|=-^>is)zy^(H99ghxP!ZU>Hp4oHQ>pcGj;32 zo&C=`>>#<)V7XH3#vHLyw10yK>)lq>4&P zgsRn8)b=}E&mGPdzm@*}^1kj4XEC2<^vjIRipvqA#T2H+EL5-60|fN-3DjxOR^Bc~ zphds;(@|6RHCwOLS#dj`-?zO` zEWN%+G^(2g`5%JCO2FB%(WvBDAClMB2_62f$;!yUOG!&B>ggc@Es)9LL;-_@2LM<( zIQDOL2irVuNi#As7%gUrqltbH`tTE7cRvvp6c)R(JJ4b+D zhm*gI#}g@TZf;H#3Y)z=c^=x>Qk%A=#MkH!&xaz>N|;*@SIcT^N4L7Y6_u1g6C^?m z2g7zJ8G2a{YsuCsv09UQwO{t*emI=WlF(|@0RRrqH-mab|gQ1XGI%Zlf{)=mAuHV`f zyW7PoNT2}llrL66dpiz~+r>#!2Tjs=)$-(e`Dk^!@@49s>)uc#JJTfr-g>KjxCHqC z(2o2$i;Lx1y>1Hzq85CrgoK3nag%>|5-CDWPcJ4Q0QmXyXM9>(L_q=R{q;7H4f}e@ ztC_X03Qfwt{1XxqVzitmUwE{~vhKyWy}cb9A3wcm9r<%NhnAe248*4y8-f_QRv}$o z0(zacfN#nr|1itW&JLT$jn>M_ia14z&M$0mH(+qLZ*!A?mk`O&&=B}umF{}y*XJ7w zE-ox#TsR7um_V_TV7ZD=z5?-&A4Cf!vcd)i#Js$`K+`PLJjleN1w1@BS8dpzefY!R zag3ZQxw8>_KOXT=(a@$?k%;*5KVBb#Gc)lLlafeKBOPw{L^GWhb11c+p46tY1L-_L z0qmJE{JyUSLlG!rGc(tVUb9}k+-qXM)RB^sV)VQ-fd&VCetR?ioyL@{roLYJ>v4I1 zd86FT`z)~8SeP;?zo`iwh!7zH!~wavL}GD-zS<9?O5JrF{;4`jz(fPOadu+^zFg&J z0-1P0T^%w&K}E&HEw!M#p{bc)OXdyPM1+tQo68GVA!=tw0xqVFIVPPpWJUnZR z5)wRo(ZcC6kUL701FOrctJ!2l{J#U)#N(oVG(IT_tXb<{*1lc$5&=Pv-Tr!6*`IF3 zmkk#oS&9PanD>v5YAei05nIF#AVM1rguqZ!Qv<>W1zlWR@TRJ_x4jsQycd_3wU$iI zKUCOFRX!q0Y--% z0bnT#6wd9eHCw0gdN#}idHI?3d1FRw1!ZMpS4LrLzQDjhAmI$#_kM)IVbL3m z#gptfaAM*Cq)W}#I=|}3WLvK6&#zBTc&^FirHWB={Xe;YU=cGmCUNuP^Zx#KhSU8j zYw5ao)2Y*yhrqV5qy!Q-29hRaVi9|Jaj}WZ!@e7{M5+8@-lAIX&V#q}%<=pik*|-> zm4vr>a%XER2P^Obk5zLyiG6iGpG`T|V!#g^rR7$#ImMOC%mfH6%D zjDXt(nmHZbtD6w$LSSKu70xwvZ+5!xkHp~3S~bT@kejVHiq7Qlc>~LNZgDZBtED0KKJfPSCa&)LrzJRSQod~I7 zCJQ5zOD=bRbw6p+n-;;@+QJi%cw2ElcMP}5e42?+(As^~d6F+W~yMgcPghlGSA zjmMpyhK8oj^RF2-I_&+~(xeUeK{O7_&8GYIE|3=jrHX?zXh+Hv3vGIItwy48I9*PV z`9GhHfyxOUmlYc5Z|f%(M@Pr8>1naA&ks88=b<4Hd|-4^Qc|Fyq5FVy0MnxSX=eW9 z{*iTa`g83ryET)FKR1racx31A%#VMI2NDqq7M8gebA0o4?}Ae!1r{(Mod3*B`L3QJ z<{?dvx^O%iOAy7-^9%|U1Hu3B3`n0q2FPq7LP43c>uzc#Y(0`|c86@Wy1Bg-6cPd@ zM~##{D0?0%7G>4M>(2GcZFOVq3OW5UL-?x!tpkDGodTmEb@7b0MRO8=s7e!=`UkQEdJ zda==tCY?%~Z^F3K8g|0HW<5l(9GT1M2r3>&DC+FYLP|#VFZ^xo?dikln3#LOY_qVi z5CAR>7>9+UH8oj+nZ*FG02B`S%BYWK#003qxd>o#LFmw9xo`V&EV&I>zI;4w1CPrw z8T0{wY90t}3c^CYY;xj~l99T%h@P@K#Y(&D_PxU!?auWcw?+UCamtn}rmMAPxNqOS zd0aNHI2=x3M6INPeXvHHEP&^i5~BEKAkUSKSAp1HW0Fa`xOUa#^<8`vh(+E-fuZ|FrKh zg=7I}^!RXLGU!DEwW3z^*W31&-AeiW)$;YpOK;L8T&R$VscCw)RO!3+=)wY85+84! z$vA4)%TZ<;qhXNj%3yXoqN};jq`j<%Cl|rsri}N)h9TZ9kPVF<&X)ekta~rMy}iBP zMnDMs69AvDU~yX?3E7T+R;_KQK;6gXjmgi?Z#Eec0v>fh`b!l{#_KIIztwE}CR`t)e1w)m2wizydYWC{X<)0C~vg?-a+){rwPG9Iug^ z?(R;1a2kg_A%K{H0SN;Gqr{R|n@ss;_Q&sqy@$wHIdd2DuCrAp=)@$P!tnbfKg#n` z=94UsYDKu(M!ne~>l5s{plUP=SCPqTQ@YlarNza6I_a!?5AjdLujFI{Adq?-rJKvd zZ~|m9SWj!EN|%g=e`2JuSz`_vF|pfkMJpDHH9KAq{I^Z4kqgcT0qKRxGjsr>D2&3p z1=eXuXlS~f{h|dc_4n`A&e}P`xpGKA*&D!w>tn7m6i&Zs|1bi z8?H53uJ-!>P^;DojfjA5l!UuDWn}!O=X!w+^l(w`M4tA(s~CX?Eg=EeW&n^E@HoeI z9oDi<#tyI1sHo(S!RPqdI&e2!Z|TQADGN

d|T|DnJ2^mg*oH*`v9#<)wP$z?lw) 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¥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 B;VA$B literal 0 HcmV?d00001 diff --git a/plugins/ssl/letsencrypt_weekly b/plugins/ssl/letsencrypt_weekly index aecae51c..1f596c49 100755 --- a/plugins/ssl/letsencrypt_weekly +++ b/plugins/ssl/letsencrypt_weekly @@ -1,20 +1,69 @@ -#!/bin/sh +#!/bin/bash : << =cut =head1 NAME letsencrypt_weekly - monitor the number of CSRs by week for /etc/letsencrypt/csr/ +=head1 DESCRIPTION + +This plugin monitors the number of certificate signing requests (CSRs) done with letsencrypt's certbot. +It tries to determine the registered domain and reports the number also per registered domain. +For people running multiple servers this enables aggregation of those numbers across multiple nodes in the munin.conf + see https://letsencrypt.org/docs/rate-limits/ -= head1 CONFIGURATION +=head1 CONFIGURATION You can configure the warning and critical limits for this plugin: - [letsencrypt_weekly] - # warn when more than 40 certificates have been requested in the last week - env.warning :40 - # critical when more than 50 certificates have been requested in the last week - env.critical :50 + [letsencrypt_weekly] + # run with a user that is able to read /etc/letsencrypt/csr/ files and at least list directories in + # /etc/letsencrypt/archive/ + user root + # warn when more than 40 certificates have been requested in the last week + env.warning :40 + # critical when more than 50 certificates have been requested in the last week + env.critical :50 + +=head1 AGGREGATION CONFIGURATION + +When you have multiple servers issuing certficates for the same registered domain you can aggregate the numbers with +this config: + + [letsencrypt] + update no + contact no + # summarize letsencrypt_weekly from all hosts + # see http://guide.munin-monitoring.org/en/latest/example/graph/aggregated-stack.html#extract-from-munin-conf + # see http://guide.munin-monitoring.org/en/latest/example/graph/aggregate.html#example-plugin-aggregate + + letsencrypt_weekly_example_com.update no + letsencrypt_weekly_example_com.graph_args --base 1000 -l 0 + letsencrypt_weekly_example_com.graph_category security + letsencrypt_weekly_example_com.graph_period week + letsencrypt_weekly_example_com.graph_title Letsencrypt example.com certificate requests + letsencrypt_weekly_example_com.graph_vlabel requests / week + letsencrypt_weekly_example_com.graph_scale no + letsencrypt_weekly_example_com.graph_total Total + letsencrypt_weekly_example_com.weekly.label Certificates for example.com + letsencrypt_weekly_example_com.weekly.draw AREA + letsencrypt_weekly_example_com.weekly.stack \ + line1_name=example.com;line1-host-name.example.com:letsencrypt_weekly.example_com_weekly \ + line2_name=example.com;line2-host-name.example.com:letsencrypt_weekly.example_com_weekly + + letsencrypt_renewal_weekly_example_com.update no + letsencrypt_renewal_weekly_example_com.graph_args --base 1000 -l 0 + letsencrypt_renewal_weekly_example_com.graph_category security + letsencrypt_renewal_weekly_example_com.graph_period week + letsencrypt_renewal_weekly_example_com.graph_title Letsencrypt example.com certificate renewal requests + letsencrypt_renewal_weekly_example_com.graph_vlabel requests / week + letsencrypt_renewal_weekly_example_com.graph_scale no + letsencrypt_renewal_weekly_example_com.graph_total Total + letsencrypt_renewal_weekly_example_com.weekly.label Certificate renewals for example.com + letsencrypt_renewal_weekly_example_com.weekly.draw AREA + letsencrypt_renewal_weekly_example_com.weekly.stack \ + line1_name=example.com;line1-host-name.example.com:letsencrypt_weekly.example_com_renewal_weekly \ + line2_name=example.com;line2-host-name.example.com:letsencrypt_weekly.example_com_renewal_weekly =head1 Dependencies @@ -41,6 +90,19 @@ warning=${warning:-:40} critical=${critical:-:50} #letsencrypt doesn't allow more than 50 certificates per week # see https://letsencrypt.org/docs/rate-limits/ + +get_files_and_domains() { + find /etc/letsencrypt/csr/ -mtime -7 -type f -print0 2>/dev/null | xargs -0 -I pem bash -c 'echo -n "pem "; openssl req -in pem -text -noout | grep DNS: | sed "s/.*DNS://g"' +} + +get_registered_domains() { + local REMOVE_PATH + local TRIM_SUBDOMAIN + REMOVE_PATH='s,.*/,,;' + TRIM_SUBDOMAIN='s/.*\.\([a-z0-9-]\+\.[a-z]\+\)/\1/;' + find /etc/letsencrypt/archive/ -mindepth 1 -maxdepth 1 | sed "$REMOVE_PATH $TRIM_SUBDOMAIN" | sort | uniq +} + if [ "$1" = "autoconf" ] ; then test -d /etc/letsencrypt/csr/ && echo "yes" || echo "no (directory /etc/letsencrypt/csr does not exist)" elif [ "$1" = "config" ] ; then @@ -49,13 +111,42 @@ elif [ "$1" = "config" ] ; then echo "graph_vlabel Number of certificates" echo "graph_category security" echo "letsencrypt_weekly.label Letsencrypt certificates last week" - print_warning "letsencrypt_weekly" - print_critical "letsencrypt_weekly" + for domain in $(get_registered_domains); do + key=${domain//[-.]/_} + echo "${key}_weekly.label $domain" + print_warning "${key}_weekly" + print_critical "${key}_weekly" + echo "${key}_renewal_weekly.label $domain renewals" + done elif [ "$1" = "" ] ; then - if existing_certs=$(find /etc/letsencrypt/csr/ -mtime -7 -type f 2>/dev/null); then - value=$(echo "$existing_certs" | wc -l) + if existing_renewal_requests=$(get_files_and_domains); then + value=$(echo "$existing_renewal_requests" | grep -v '^$' -c) else value="U" fi echo "letsencrypt_weekly.value $value" + values="" + for domain in $(get_registered_domains); do + key=${domain//[-.]/_} + if [ "$values" != "" ] ; then + values="$values\n${key}_weekly.value 0\n${key}_renewal_weekly.value 0" + else + values="${key}_weekly.value 0\n${key}_renewal_weekly.value 0" + fi + done + while read -r file_domain; do + file=${file_domain% *} + domain=${file_domain#* } + registered_domain_key=$(echo "$domain" | sed 's/.*\.\([a-z0-9-]\+\.[a-z]\+\)/\1/;s/[-.]/_/g') + previous_certs=$(find "/etc/letsencrypt/archive/$domain" -name 'cert*.pem' -not -cnewer "$file" | wc -l) + if [ "$previous_certs" -gt 0 ] ; then + value_key="${registered_domain_key}_renewal_weekly.value " + else + value_key="${registered_domain_key}_weekly.value " + fi + old_value=$(echo -e "$values" | grep "$value_key" | sed 's/.* //g') + value=$((old_value + 1)) + values=${values//$value_key$old_value/$value_key$value} + done < <(get_files_and_domains) + echo -e $"$values" fi