เจนเจพเจ เจนเจฐ เจเฉเจ
เจฎเฉเจ เจเฉฑเจ เจฒเฉเจจเจเจธ เจธเจฟเจธเจเจฎ เจชเฉเจฐเจธเจผเจพเจธเจ เจนเจพเจ, เจฎเฉเจ 2015 เจตเจฟเฉฑเจ เจเฉฑเจ เจธเฉเจคเฉฐเจคเจฐ เจชเฉเจธเจผเฉเจตเจฐ เจตเฉเจเจผเฉ 'เจคเฉ เจฐเฉเจธ เจคเฉเจ เจเจธเจเจฐเฉเจฒเฉเจ เจเจฟเจ, เจชเจฐ เจฒเฉเจ เจเจธ เจฌเจพเจฐเฉ เจจเจนเฉเจ เจนเฉเจตเฉเจเจพ เจเจฟ เจเฉฑเจ เจธเฉเจฐ เจฒเจ เจเจฐเฉเจเจเจฐ เจเจฟเจตเฉเจ เจธเจผเฉเจฐเฉ เจเจฐเจจเจพ เจนเฉเฅค เจ เจเจฟเจนเฉ เจฒเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจพเจซเจผเฉ เจนเจจ (เจซเจฟเจฐ เจตเฉ, เจเฉเจเจฐ เจเฉเจ เจฆเจฟเจฒเจเจธเจชเฉ เจนเฉ, เจคเจพเจ เจฎเฉเจ เจเจธ เจฌเจพเจฐเฉ เจตเฉ เจฒเจฟเจเจพเจเจเจพ), เจเจธ เจฒเจ เจฎเฉเจ เจเจธ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเจจเจพ เจเจพเจนเจพเจเจเจพ เจเจฟ เจเจฟเจตเฉเจ, เจเฉฑเจ เจฒเฉเจจเจเจธ-เจเจชเจธ เจเฉฐเจเฉเจจเฉเจ เจฐ เจตเจเฉเจ เจเจธเจเฉเจฐเฉเจฒเฉเจ เจตเจฟเฉฑเจ เจฎเฉเจฐเฉ เจเฉฐเจฎ เจคเฉ, เจฎเฉเจ เจเฉฑเจ เจธเจฟเจธเจเจฎ เจจเจฟเจเจฐเจพเจจเฉ เจคเฉเจ เจฎเจพเจเจเฉเจฐเฉเจธเจผเจจ เจธเจผเฉเจฐเฉ เจเฉเจคเจพเฅค เจเจฟเจธเฉ เจนเฉเจฐ เจจเฉเฉฐ. เจเจพเจธ เจคเฉเจฐ 'เจคเฉ - Nagios => Icinga2.
เจฒเฉเจ เจ เฉฐเจธเจผเจ เจคเฉเจฐ 'เจคเฉ เจคเจเจจเฉเจเฉ เจนเฉ เจ เจคเฉ เจ เฉฐเจธเจผเจ เจคเฉเจฐ 'เจคเฉ เจฒเฉเจเจพเจ เจจเจพเจฒ เจธเฉฐเจเจพเจฐ เจ เจคเฉ เจธเฉฑเจญเจฟเจเจเจพเจฐ เจ เจคเฉ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจคเจฐเฉเจเจฟเจเจ เจตเจฟเฉฑเจ เจ เฉฐเจคเจฐ เจจเจพเจฒ เจเฉเฉเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจฌเจพเจฐเฉ เจนเฉเฅค
เจฌเจฆเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, "เจเฉเจก" เจเฉเจ เจเจ เจชเฉเจคเจฒเฉ เจ เจคเฉ yaml เจเฉเจก เจจเฉเฉฐ เจเจเจพเจเจฐ เจจเจนเฉเจ เจเจฐเจฆเจพ เจนเฉ, เจเจธเจฒเจ เจฎเฉเจจเฉเฉฐ "เจชเจฒเฉเจจเจเฉเจเจธเจ" เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเฉ เจชเจเฅค
21 เจฆเจธเฉฐเจฌเจฐ, 2016 เจฆเฉ เจธเจตเฉเจฐ เจจเฉเฉฐ เจฎเฉเจธเฉเจฌเจค เจฆเฉ เจเฉเจ เจธเฉฐเจเฉเจค เจจเจนเฉเจ เจธเจจ. เจเจฎ เจตเจพเจเจ, เจฎเฉเจ เจเฉฐเจฎ เจตเจพเจฒเฉ เจฆเจฟเจจ เจฆเฉ เจชเจนเจฟเจฒเฉ เจ เฉฑเจงเฉ เจเฉฐเจเฉ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉเจฐ-เจฐเจเจฟเจธเจเจฐเจก เจ เจเจฟเจเจค เจเจชเจญเฉเจเจคเจพ เจฆเฉเจเจฐเจพ เจนเจพเจฌเจฐ เจชเฉเฉเจน เจฐเจฟเจนเจพ เจธเฉ, เจเฉเจซเฉ เจชเฉเจเจฆเฉ เจนเฉเจ, เจ เจคเฉ เจธเจพเจนเจฎเจฃเฉ เจเจเจ .
เจเจฟเจเจเจเจฟ เจฎเฉเจฐเฉ เจเฉฐเจชเจจเฉ เจจเฉ เจจเจพเจเจฟเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจนเฉ, เจฌเจฟเจจเจพเจ เจฆเฉ เจตเจพเจฐ เจธเฉเจเฉ, เจฎเฉเจ เจฐเฉเฉฑเจกเจฎเจพเจเจจ เจตเจฟเฉฑเจ เจเฉฑเจ เจเจฟเจเจ เจฌเจฃเจพเจ เจ เจคเฉ เจฒเจฟเฉฐเจ เจจเฉเฉฐ เจเจจเจฐเจฒ เจเฉเจ เจฒเจ เจญเฉเจเจฟเจ, เจเจฟเจเจเจเจฟ เจฎเฉเจ เจเจธเจจเฉเฉฐ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจธเจฎเจเจฟเจ. เจชเจนเจฟเจฒเจเจฆเจฎเฉ เจเจธเจเฉเจฐเฉเจฒเฉเจ เจตเจฟเฉฑเจ เจตเฉ เจธเจเจผเจพเจฏเฉเจ เจนเฉ, เจเจธ เจฒเจ เจฒเฉเจก เจเฉฐเจเฉเจจเฉเจ เจฐ เจจเฉ เจฎเฉเจจเฉเฉฐ เจเจธเจฆเฉ เจเฉเจ เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจชเจฟเฉฐเจจ เจเจฐ เจฆเจฟเฉฑเจคเจพเฅค
Redmine เจคเฉเจ เจธเจเจฐเฉเจจเจธเจผเจพเจ
เจธเจพเจกเฉ เจตเจฟเจญเจพเจ เจตเจฟเฉฑเจ, เจเจชเจฃเฉ เจฐเจพเจ เจเจผเจพเจนเจฐ เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจเฉฑเจเฉ เจเฉฑเจ เจเฉฑเจ เจตเจฟเจเจฒเจช เจฆเฉ เจชเฉเจธเจผเจเจธเจผ เจเจฐเจจ เจฆเจพ เจฐเจฟเจตเจพเจ เจนเฉ, เจญเจพเจตเฉเจ เจเฉเจฃ เจธเจชเฉฑเจธเจผเจ เจนเฉเจตเฉ, เจเจธ เจฒเจ เจฎเฉเจ เจเฉเจเจฒเจฟเฉฐเจ เจฆเฉเจเจฐเจพ เจธเจผเฉเจฐเฉ เจเฉเจคเจพ เจเจฟ เจเจฟเจธ เจคเจฐเฉเจนเจพเจ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจ เจขเฉเจเจตเฉเจ เจนเจจ, เจเจฟเจเจเจเจฟ เจฐเฉเจธ เจตเจฟเฉฑเจ เจฎเฉเจฐเฉ เจเฉฐเจฎ เจฆเฉ เจเจเจฐเฉ เจธเจฅเจพเจจ 'เจคเฉ เจฎเฉเจ เจฎเฉเจฐเฉ เจเจชเจฃเฉ เจธเจตเฉ-เจฒเจฟเจเจค เจชเฉเจฐเจฃเจพเจฒเฉ เจธเฉ, เจฌเจนเฉเจค เจนเฉ เจฎเฉเฉฑเจขเจฒเฉ, เจชเจฐ เจเจธ เจฆเฉ เจฌเจพเจตเจเฉเจฆ เจเจธ เจจเฉเฉฐ เจธเฉเจเจชเฉ เจเจ เจธเจพเจฐเฉ เจเจพเจฐเจ เจเจพเจซเจผเฉ เจเฉฐเจฎ เจ เจคเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจเจฐ เจฐเจฟเจนเจพ เจธเฉเฅค เจชเจพเจเจฅเจจ, เจธเฉเจเจ เจชเฉเจเจฐเจธเจฌเจฐเจ เจชเฉเจฒเฉเจเฉเจเจจเจฟเจ เจ เจคเฉ เจฎเฉเจเจฐเฉ เจจเจฟเจฏเจฎเฅค เจจเจนเฉเจ, เจธเจฌเจตเฉเจ เจเจฐเจพเจฌ เจนเฉเฅค เจเจน เจจเจฟเฉฑเจเฉ เจนเฉ (11 เจธเจพเจฒ เจฆเจพ เจเฉฐเจฎ) เจ เจคเฉ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจฒเฉเจ เจฆเฉ เจฏเฉเจ เจนเฉ, เจชเจฐ เจนเฉเจฃ เจจเจนเฉเจเฅค
เจฎเฉเจฐเฉ เจฎเฉเจเฉเจฆเจพ เจธเจฅเจพเจจ 'เจคเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจพเจ เจเจฐเจจ เจฆเฉ เจจเจฟเจฏเจฎเจพเจ เจฌเจพเจฐเฉ เจฅเฉเฉเฉเจนเจพ เจเจฟเจนเจพเฅค เจ เจธเฉเจ เจเฉเจก เจธเจฟเจงเจพเจเจค เจตเจเฉเจ เจเจ เจชเฉเจคเจฒเฉ, เจเจฟเจเจฒเจฌ เจ เจคเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ, เจเจธ เจฒเจ:
- เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจเจพเจ 'เจคเฉ เจเจฟเจธเฉ เจตเฉ เจซเจพเจเจฒ เจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจฌเจฆเจฒ เจเฉ SSH เจฆเฉเจเจฐเจพ เจเฉเจ เจฆเจธเจคเฉ เจคเจฌเจฆเฉเจฒเฉ เจจเจนเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉเฅค เจคเจฟเฉฐเจจ เจธเจพเจฒเจพเจ เจฆเฉ เจเฉฐเจฎ เจฆเฉเจฐเจพเจจ, เจฎเฉเจ เจเจธ เจฒเจ เจเจ เจตเจพเจฐ เจเฉเจชเฉ เจจเจพเจฒ เจฎเจพเจฐเจฟเจ, เจเจเจฐเฉ เจตเจพเจฐ เจเฉฑเจ เจนเจซเจผเจคเจพ เจชเจนเจฟเจฒเจพเจ เจธเฉ เจ เจคเฉ เจฎเฉเจจเฉเฉฐ เจจเจนเฉเจ เจฒเฉฑเจเจฆเจพ เจเจฟ เจเจน เจเจเจฐเฉ เจตเจพเจฐ เจธเฉเฅค เจเฉเจฐ, เจ เจธเจฒ เจตเจฟเฉฑเจ - เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจเฉฑเจ เจฒเจพเจเจจ เจจเฉเฉฐ เจ เฉเจ เจเจฐเฉ, เจธเฉเจตเจพ เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐเฉ เจ เจคเฉ เจตเฉเจเฉ เจเจฟ เจเฉ เจธเจฎเฉฑเจธเจฟเจ เจนเฉฑเจฒ เจนเฉ เจเจ เจนเฉ - 10 เจธเจเจฟเฉฐเจ. Gitlab เจตเจฟเฉฑเจ เจเฉฑเจ เจจเจตเฉเจ เจธเจผเจพเจเจพ เจฌเจฃเจพเจ, เจคเจฌเจฆเฉเจฒเฉเจเจ เจจเฉเฉฐ เจ เฉฑเจเฉ เจตเจงเจพเจ, Puppetmaster 'เจคเฉ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ r10k เจฆเฉ เจเจกเฉเจ เจเจฐเฉ, Puppet -environment=mybranch เจเจฒเจพเจ เจ เจคเฉ เจเฉเจ เจฎเจฟเฉฐเจ เจนเฉเจฐ เจเจกเฉเจ เจเจฐเฉ เจเจฆเฉเจ เจคเฉฑเจ เจเจน เจธเจญ เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐเจฆเจพ - เจเฉฑเจเฉ-เจเฉฑเจ 5 เจฎเจฟเฉฐเจเฅค
- Gitlab เจตเจฟเฉฑเจ เจเฉฑเจ เจฎเจฐเจ เจฌเฉเจจเจคเฉ เจฌเจฃเจพ เจเฉ เจเฉเจ เจตเฉ เจฌเจฆเจฒเจพเจ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเฉฑเจเฉ-เจเฉฑเจ เจเฉฑเจ เจเฉเจฎ เจฎเฉเจเจฌเจฐ เจฆเฉเจเจฐเจพ เจฎเจจเจเจผเฉเจฐ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจเฉเจฎ เจฒเฉเจก เจฆเฉเจเจฐเจพ เจฒเจ เจเจ เจฎเฉเฉฑเจ เจฌเจฆเจฒเจพเจ เจฒเจ เจฆเฉ เจเจพเจ เจคเจฟเฉฐเจจ เจฎเจจเจเจผเฉเจฐเฉเจเจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค
- เจธเจพเจฐเฉเจเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจเจฟเจธเฉ เจจเจพ เจเจฟเจธเฉ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจเฉเจเจธเจ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ (เจเจฟเจเจเจเจฟ เจเจ เจชเฉเจคเจฒเฉ เจฎเฉเจจเฉเจซเฉเจธเจ, เจธเจเฉเจฐเจฟเจชเจ เจ เจคเฉ เจนเฉเจฐเจพ เจกเฉเจเจพ เจเฉเจเจธเจ เจนเจจ), เจฌเจพเจเจจเจฐเฉเจเจ เจฌเจนเฉเจค เจจเจฟเจฐเจพเจธเจผ เจนเจจ เจ เจคเฉ เจ เจเจฟเจนเฉเจเจ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจฎเจจเจเจผเฉเจฐเฉ เจฆเฉเจฃ เจฒเจ เจเฉฑเจ เจฎเจเจฌเฉเจฐ เจเจพเจฐเจจ เจนเฉเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจเจธ เจฒเจ, เจฎเฉเจ เจตเจฟเจเจพเจฐเฉ เจเจ เจตเจฟเจเจฒเจช:
- เจฎเฉเจจเจฟเจจ - เจเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจตเจฟเฉฑเจ 10 เจคเฉเจ เจตเฉฑเจง เจธเจฐเจตเจฐ เจนเจจ, เจคเจพเจ เจชเฉเจฐเจธเจผเจพเจธเจจ เจจเจฐเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจเจพเจเจฆเจพ เจนเฉ (เจคเฉเจ . เจฎเฉเจจเฉเฉฐ เจเจธ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฆเฉ เจเฉเจ เจเจพเจธ เจเฉฑเจเจพ เจจเจนเฉเจ เจธเฉ, เจเจธ เจฒเจ เจฎเฉเจ เจเจธเจฆเฉ เจฒเจ เจเจธเจฆเจพ เจธเจผเจฌเจฆ เจฒเจฟเจ)เฅค
- เจเจผเฉเจฌเจฟเจเจธ - เจฎเฉเจ เจเจธเจจเฉเฉฐ เจฒเฉฐเจฌเฉ เจธเจฎเฉเจ เจคเฉเจ เจฆเฉเจ เจฐเจฟเจนเจพ เจธเฉ, เจตเจพเจชเจธ เจฐเฉเจธ เจตเจฟเฉฑเจ, เจชเจฐ เจซเจฟเจฐ เจเจน เจฎเฉเจฐเฉ เจเฉฐเจฎเจพเจ เจฒเจ เจฌเฉเจฒเฉเฉเจพ เจธเฉเฅค เจเฉฑเจฅเฉ - เจเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจชเฉเจฐเจฌเฉฐเจงเจ เจฆเฉ เจคเฉเจฐ เจคเฉ เจเจ เจชเฉเจคเจฒเฉ เจ เจคเฉ เจเฉฑเจ เจธเฉฐเจธเจเจฐเจฃ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจธเจฟเจธเจเจฎ เจฆเฉ เจคเฉเจฐ เจคเฉ เจเจฟเจเจฒเฉเจฌ เจฆเฉ เจตเจฐเจคเฉเจ เจเจพเจฐเจจ เจฐเฉฑเจฆ เจเจฐเจจเจพ เจชเจฟเจเฅค เจเจธ เจธเจฎเฉเจ, เจเจฟเฉฑเจฅเฉเจ เจคเฉฑเจ เจฎเฉเจ เจธเจฎเจเจฟเจ, เจเจผเฉเจฌเจฟเจเจธ เจธเจพเจฐเฉ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเจฐเจฆเจพ เจนเฉ, เจ เจคเฉ เจเจธเจฒเจ เจเจน เจธเจชเฉฑเจธเจผเจ เจจเจนเฉเจ เจธเฉ เจเจฟ เจฎเฉเจเฉเจฆเจพ เจนเจพเจฒเจคเจพเจ เจตเจฟเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจเจฐเจจเจพ เจนเฉ เจ เจคเฉ เจคเจฌเจฆเฉเจฒเฉเจเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจเจฐเฉเจ เจเจฐเจจเจพ เจนเฉเฅค
- เจชเฉเจฐเฉเจฎเฉเจฅเฉเจ เจธ เจเจน เจนเฉ เจเฉ เจ เจธเฉเจ เจตเจฟเจญเจพเจ เจฆเฉ เจฎเฉเจก เจฆเฉเจเจฐเจพ เจจเจฟเจฐเจฃเจพ เจเจฐเจฆเฉ เจนเฉเจ เจ เฉฐเจค เจตเจฟเฉฑเจ เจเจตเจพเจเจเฉ, เจชเจฐ เจเจธ เจธเจฎเฉเจ เจฎเฉเจ เจเจธ เจตเจฟเฉฑเจ เจฎเฉเจนเจพเจฐเจค เจจเจนเฉเจ เจฐเฉฑเจเจฆเจพ เจธเฉ เจ เจคเฉ เจ เจธเจฒ เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเจฐเจจ เจตเจพเจฒเฉ เจจเจฎเฉเจจเฉ (เจธเฉฐเจเจฒเจช เจฆเจพ เจธเจฌเฉเจค) เจฆเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจจเจนเฉเจ เจธเฉ, เจเจธ เจฒเจ เจฎเฉเจจเฉเฉฐ เจเจจเจเจพเจฐ เจเจฐเจจเจพ เจชเจฟเจเฅค
- เจเฉฑเจฅเฉ เจเจ เจนเฉเจฐ เจตเจฟเจเจฒเจช เจตเฉ เจธเจจ เจเจฟเจจเฉเจนเจพเจ เจจเฉเฉฐ เจเจพเจ เจคเจพเจ เจธเจฟเจธเจเจฎ เจฆเฉ เจธเฉฐเจชเฉเจฐเจจ เจชเฉเจจเจฐ-เจตเจฐเจ เจฆเฉ เจฒเฉเฉ เจธเฉ, เจเจพเจ เจเจนเจจเจพเจ เจฆเฉ เจฌเจเจชเจจ เจตเจฟเฉฑเจ / เจเฉฑเจก เจฆเจฟเฉฑเจคเฉ เจเจ เจธเจจ เจ เจคเฉ เจเจธเฉ เจเจพเจฐเจจ เจเจฐเจเฉ เจฐเฉฑเจฆ เจเจฐ เจฆเจฟเฉฑเจคเฉ เจเจ เจธเจจเฅค
เจ เฉฐเจค เจตเจฟเฉฑเจ, เจฎเฉเจ เจคเจฟเฉฐเจจ เจเจพเจฐเจจเจพเจ เจเจฐเจเฉ Icinga2 'เจคเฉ เจธเฉเจเจฒ เจนเฉ เจเจฟเจ:
1 - Nrpe (เจเฉฑเจ เจเจฒเจพเจเฉฐเจ เจธเฉเจตเจพ เจเฉ Nagios เจคเฉเจ เจเจฎเจพเจเจก เจเฉเจ เจเจฒเจพเจเจเจฆเฉ เจนเฉ) เจจเจพเจฒ เจ
เจจเฉเจเฉเจฒเจคเจพเฅค เจเจน เจฌเจนเฉเจค เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจธเฉ, เจเจฟเจเจเจเจฟ เจเจธ เจธเจฎเฉเจ เจธเจพเจกเฉ เจเฉเจฒ 135 (เจนเฉเจฃ 2019 เจตเจฟเฉฑเจ 165 เจนเจจ) เจเจธเจเจฎ-เจฒเจฟเจเฉเจเจ เจธเฉเจตเจพเจตเจพเจ/เจเฉเจเจพเจ เจฆเฉ เจเฉเฉฐเจก เจตเจพเจฒเฉเจเจ เจตเจฐเจเฉเจ
เจฒ เจฎเจธเจผเฉเจจเจพเจ เจธเจจ, เจ
เจคเฉ เจเจธ เจธเจญ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจเจฐเจจเจพ เจเฉฑเจ เจ
เจธเจฒ เจฆเจฐเจฆ เจนเฉเจฃเจพ เจธเฉเฅค
2 - เจธเจพเจฐเฉเจเจ เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒเจพเจ เจเฉเจเจธเจ เจนเจจ, เจเฉ เจเจธ เจฎเจพเจฎเจฒเฉ เจจเฉเฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเจจเจพ เจเจธเจพเจจ เจฌเจฃเจพเจเจเจฆเฉเจเจ เจนเจจ, เจเจน เจฆเฉเจเจฃ เจฆเฉ เจฏเฉเจเจคเจพ เจจเจพเจฒ เจฎเจฐเจ เจฌเฉเจจเจคเฉเจเจ เจฌเจฃเจพเจเจเจฆเฉเจเจ เจนเจจ เจเจฟ เจเฉ เจเฉเฉเจฟเจ เจเจพเจ เจฎเจฟเจเจพเจเจ เจเจฟเจ เจนเฉเฅค
3 เจเฉฑเจ เจเฉเจตเจค เจ
เจคเฉ เจตเจฟเจเจพเจธเจธเจผเฉเจฒ เจเจชเจจเจธเฉเจฐเจธ เจชเฉเจฐเฉเจเฉเจเจ เจนเฉเฅค เจ
เจธเฉเจ เจธเฉฑเจเจฎเฉเฉฑเจ เจเจชเจจเจธเฉเจฐเจธ เจจเฉเฉฐ เจชเจฟเจเจฐ เจเจฐเจฆเฉ เจนเจพเจ เจ
เจคเฉ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจฒเจ เจชเฉเฉฑเจฒ เจฌเฉเจจเจคเฉเจเจ เจ
เจคเฉ เจฎเฉเฉฑเจฆเฉ เจฌเจฃเจพ เจเฉ เจเจธ เจตเจฟเฉฑเจ เจนเจฐ เจธเฉฐเจญเจต เจฏเฉเจเจฆเจพเจจ เจฆเจฟเฉฐเจฆเฉ เจนเจพเจเฅค
เจเจธ เจฒเจ, เจเจฒเฉ, เจเจเจธเจฟเฉฐเจเจพ 2.
เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจฎเฉเจจเฉเฉฐ เจฎเฉเจฐเฉ เจธเจพเจฅเฉเจเจ เจฆเฉ เจเฉเจคเจพ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจเจฐเจจเจพ เจชเจฟเจเฅค เจนเจฐ เจเฉเจ Nagios/Naggios (เจนเจพเจฒเจพเจเจเจฟ เจเฉฑเจฅเฉ เจตเฉ เจเจน เจเจธเจฆเจพ เจเจเจพเจฐเจจ เจเจฟเจตเฉเจ เจเจฐเจจเจพ เจนเฉ เจเจธ เจฌเจพเจฐเฉ เจธเจฎเจเฉเจคเจพ เจจเจนเฉเจ เจเจฐ เจธเจเฉ) เจ เจคเฉ CheckMK เจเฉฐเจเจฐเจซเฉเจธ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจเจธเจฟเฉฐเจเจพ เจเฉฐเจเจฐเจซเฉเจธ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจตเฉฑเจเจฐเจพ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ (เจเจน เจเฉฑเจ เจเจเจพเจ เจธเฉ), เจชเจฐ เจเจฟเจธเฉ เจตเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจฒเจ เจซเจฟเจฒเจเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจฒเจเจเจฆเจพเจฐ เจขเฉฐเจ เจจเจพเจฒ เจ เจจเฉเจเฉเจฒเจฟเจค เจเจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ (เจเจน เจเฉฑเจ เจชเจฒเฉฑเจธ เจธเฉ, เจชเจฐ เจฎเฉเจ เจเจธเจฆเฉ เจฒเจ เจฌเจนเฉเจค เจฒเฉเจฟเจ)เฅค
เจซเจฟเจฒเจเจฐ
เจธเจเฉเจฐเฉเจฒ เจชเฉฑเจเฉ เจฆเฉ เจเจเจพเจฐ เจ เจคเฉ เจธเจเฉเจฐเฉเจฒ เจเฉเจคเจฐ เจฆเฉ เจเจเจพเจฐ เจฆเฉ เจ เจจเฉเจชเจพเจค เจฆเจพ เจ เฉฐเจฆเจพเจเจผเจพ เจฒเจเจพเจเฅค
เจฆเฉเจเจพ, เจนเจฐ เจเฉเจ เจเฉฑเจ เจฎเจพเจจเฉเจเจฐ 'เจคเฉ เจชเฉเจฐเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจจเฉเฉฐ เจฆเฉเจเจฃ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจเจฟเจเจเจเจฟ CheckMk เจคเฉเจนเจพเจจเฉเฉฐ เจเจ Nagios เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ, เจชเจฐ Icinga เจเฉฐเจเจฐเจซเฉเจธ เจ เจเจฟเจนเจพ เจจเจนเฉเจ เจเจฐ เจธเจเจฟเจ (เจ เจธเจฒ เจตเจฟเฉฑเจ, เจเจน เจนเฉ เจธเจเจฆเจพ เจนเฉ, เจชเจฐ เจนเฉเจ เจพเจ เจเจธ 'เจคเฉ เจนเฉเจฐ)เฅค เจฌเจฆเจฒ เจจเฉเฉฐ เจฅเฉเจฐเฉเจ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจธเฉ, เจชเจฐ เจเจธ เจฆเฉ เจกเจฟเจเจผเจพเจเจจ เจจเฉ เจเฉเจฎ 'เจคเฉ เจเฉฑเจ เจจเฉเฉฐ เจเฉฑเจก เจเฉ เจนเจฐ เจเจฟเจธเฉ เจจเฉเฉฐ เจเฉเจ เจฌเจฃเจพ เจฆเจฟเฉฑเจคเจพ - เจเจฟเจธ เจจเฉ เจเจธเจฆเจพ เจธเฉเจเจพเจ เจฆเจฟเฉฑเจคเจพ (เจฎเฉเจ เจจเจนเฉเจ)เฅค
เจฅเจฐเฉเจ เจญเฉฑเจ เฉ เจตเจฟเฉฑเจ - เจเฉเจฎ เจฆเจพ เจธเจฐเจฌเจธเฉฐเจฎเจคเฉ เจจเจพเจฒ เจซเฉเจธเจฒเจพ
เจเฉเจ เจฆเจฟเจจเจพเจ เจฆเฉ เจตเจฟเจเจพเจฐ-เจตเจเจพเจเจฆเจฐเฉ เจคเฉเจ เจฌเจพเจ เจฆ, เจฎเฉเจ เจเจฒเฉฑเจธเจเจฐ เจจเจฟเจเจฐเจพเจจเฉ เจฆเจพ เจตเจฟเจเจพเจฐ เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจเฉเจคเจพ, เจเจฆเฉเจ เจเจคเจชเจพเจฆเจจ เจเจผเฉเจจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฎเจพเจธเจเจฐ เจนเฉเจธเจ เจ เจคเฉ เจฆเฉ เจธเจฒเฉเจต เจนเฉเฉฐเจฆเฉ เจนเจจ - เจเฉฑเจ เจฆเฉเจต/เจเฉเจธเจ เจตเจฟเฉฑเจ เจ เจคเฉ เจเฉฑเจ เจฌเจพเจนเจฐเฉ เจนเฉเจธเจ เจฆเฉเจเฉ เจชเฉเจฐเจฆเจพเจคเจพ 'เจคเฉ เจธเจฅเจฟเจค เจนเฉเฉฐเจฆเจพ เจนเฉ เจคเจพเจ เจเฉ เจธเจพเจกเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเฉเจคเฉ เจเจพ เจธเจเฉเฅค เจเฉฑเจ เจเจพเจนเจ เจเจพเจ เจเฉฑเจ เจฌเจพเจนเจฐเฉ เจจเจฟเจฐเฉเจเจ เจฆเฉ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ เจธเฉเจตเจพเจตเจพเจเฅค เจเจธ เจธเฉฐเจฐเจเจจเจพ เจจเฉ เจเฉฑเจ เจตเฉเฉฑเจฌ เจเฉฐเจเจฐเจซเฉเจธ เจตเจฟเฉฑเจ เจธเจพเจฐเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจจเฉเฉฐ เจฆเฉเจเจฃเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจเจ เจ เจคเฉ เจเจพเจซเจผเฉ เจตเจงเฉเจ เจขเฉฐเจ เจจเจพเจฒ เจเฉฐเจฎ เจเฉเจคเจพ, เจชเจฐ เจเจ เจชเฉเจคเจฒเฉ... เจเจ เจชเฉเจคเจฒเฉ เจจเจพเจฒ เจธเจฎเฉฑเจธเจฟเจ เจเจน เจธเฉ เจเจฟ เจฎเจพเจธเจเจฐ เจนเฉเจธเจ เจจเฉเฉฐ เจนเฉเจฃ เจธเจฟเจธเจเจฎ เจตเจฟเฉฑเจ เจธเจพเจฐเฉ เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจ เจคเฉ เจธเฉเจตเจพเจตเจพเจ/เจเฉเจเจพเจ เจฌเจพเจฐเฉ เจชเจคเจพ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจธเฉ เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจผเฉเจจเจพเจ (dev-test, staging-prod, ext) เจตเจฟเจเจเจพเจฐ เจตเฉฐเจกเจฃ เจฒเจ, เจชเจฐ Icinga API เจฐเจพเจนเฉเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจญเฉเจเจฃ เจตเจฟเฉฑเจ เจเฉเจ เจธเจเจฟเฉฐเจ เจฒเฉฑเจเจฆเฉ เจนเจจ, เจชเจฐ เจธเจพเจฐเฉ เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจฒเจ เจธเจพเจฐเฉเจเจ เจธเฉเจตเจพเจตเจพเจ เจฆเฉ เจเจ เจชเฉเจคเจฒเฉ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจจเฉเฉฐ เจเฉฐเจชเจพเจเจฒ เจเจฐเจจ เจตเจฟเฉฑเจ เจเฉเจ เจฎเจฟเฉฐเจ เจฒเฉฑเจเจฆเฉ เจนเจจเฅค เจเจน เจ เจเฉ เจตเฉ เจฎเฉเจฐเฉ 'เจคเฉ เจฆเฉเจธเจผ เจฒเจเจพเจเจ เจเจพ เจฐเจฟเจนเจพ เจนเฉ, เจนเจพเจฒเจพเจเจเจฟ เจฎเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจ เจตเจพเจฐ เจธเจฎเจเจพเจเจ เจนเฉ เจเจฟ เจธเจญ เจเฉเจ เจเจฟเจตเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ เจ เจคเฉ เจเจน เจธเจญ เจเฉเจ เจเฉฐเจจเจพ เจธเจฎเจพเจ เจเจฟเจเจ เจฒเฉเจเจฆเจพ เจนเฉเฅค
เจคเฉเจธเจฐเจพ, เจเฉฑเจฅเฉ เจธเจจเฉเจซเจฒเฉเจเจธ เจฆเจพ เจเฉฑเจ เจธเจฎเฉเจน เจนเฉ - เจเจน เจเฉเจเจผเจพเจ เจเฉ เจเจฎ เจชเฉเจฐเจฃเจพเจฒเฉ เจคเฉเจ เจตเฉฑเจเจฐเฉเจเจ เจนเจจ เจเจฟเจเจเจเจฟ เจเจนเจจเจพเจ เจเฉเจฒ เจเฉเจ เจเจพเจธ เจนเฉ, เจเจธ เจฒเจ เจเจนเจจเจพเจ 'เจคเฉ เจเจฎ เจจเจฟเจฏเจฎ เจฒเจพเจเฉ เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค เจเจน เจเฉฑเจ เจซเจฐเฉฐเจเจฒ เจ เจเฉเจ เจฆเฉเจเจฐเจพ เจนเฉฑเจฒ เจเฉเจคเจพ เจเจฟเจ เจธเฉ - เจเฉเจเจฐ เจ เจฒเจพเจฐเจฎ เจนเจจ, เจชเจฐ เจ เจธเจฒ เจตเจฟเฉฑเจ เจธเจญ เจเฉเจ เจเฉเจฐเจฎ เจตเจฟเฉฑเจ เจนเฉ, เจคเจพเจ เจฎเฉเจจเฉเฉฐ เจกเฉเฉฐเจเจพเจ เจจเจพเจฒ เจเฉเจฆเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจ เจคเฉ เจเจน เจชเจคเจพ เจฒเจเจพเจเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจเจฟ เจเจน เจฎเฉเจจเฉเฉฐ เจเจฟเจเจ เจธเฉเจเฉเจค เจเจฐเจฆเจพ เจนเฉ, เจนเจพเจฒเจพเจเจเจฟ เจเจน เจจเจนเฉเจ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ. เจเจพเจ เจเจธ เจฆเฉ เจเจฒเจ - เจเจฟเจเจ เจจเจพเจเฉเจเจธ เจเจฌเจฐเจพเจเจเจฆเฉ เจนเจจ, เจชเจฐ เจเจเจธเจฟเฉฐเจเจพ เจจเจนเฉเจ เจเจฐเจฆเจพ.
เจเฉเจฅเจพ, เจจเจพเจเจฟเจเจธ เจจเฉ เจฎเฉเจฐเฉ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเฉฑเจฅเฉ เจคเจฟเฉฐเจจ เจธเจพเจฒเจพเจ เจฒเจ เจเฉฐเจฎ เจเฉเจคเจพ เจ เจคเฉ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจฎเฉเจฐเฉ เจจเจตเฉเจ เจนเจฟเจชเจธเจเจฐ เจธเจฟเจธเจเจฎ เจจเจพเจฒเฉเจ เจเจธ เจตเจฟเฉฑเจ เจตเจงเฉเจฐเฉ เจญเจฐเฉเจธเจพ เจธเฉ, เจเจธ เจฒเจ เจนเจฐ เจตเจพเจฐ เจเจเจธเจฟเฉฐเจเจพ เจจเฉ เจเจฌเจฐเจพเจนเจ เจชเฉเจฆเจพ เจเฉเจคเฉ, เจเจฟเจธเฉ เจจเฉ เจตเฉ เจเฉเจ เจจเจนเฉเจ เจเฉเจคเจพ เจเจฆเฉเจ เจคเฉฑเจ เจจเจพเจเฉเจเจธ เจเจธเฉ เจฎเฉเฉฑเจฆเฉ เจฌเจพเจฐเฉ เจเจคเจธเจผเจพเจนเจฟเจค เจจเจนเฉเจ เจนเฉเฉฐเจฆเจพเฅค เจชเจฐ เจฌเจนเฉเจค เจเฉฑเจ เจนเฉ เจเจเจธเจฟเฉฐเจเจพ เจจเฉ เจจเจพเจเจฟเจเจธ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจ เจธเจฒ เจ เจฒเจพเจฐเจฎ เจคเจฟเจเจฐ เจเฉเจคเฉ เจนเจจ เจ เจคเฉ เจฎเฉเจ เจเจธเจจเฉเฉฐ เจเฉฑเจ เจเฉฐเจญเฉเจฐ เจธเจฎเฉฑเจธเจฟเจ เจธเจฎเจเจฆเจพ เจนเจพเจ, เจเจฟเจธ เจฌเจพเจฐเฉ เจฎเฉเจ "เจธเจฟเฉฑเจเจพ" เจญเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจฒ เจเจฐเจพเจเจเจพเฅค
เจจเจคเฉเจเฉ เจตเจเฉเจ, เจเจฎเจฟเจธเจผเจจเจฟเฉฐเจ เจตเจฟเฉฑเจ 5 เจฎเจนเฉเจจเจฟเจเจ เจคเฉเจ เจตเฉฑเจง เจฆเฉเจฐเฉ เจนเฉเจ (28 เจเฉเจจ, 2018 เจฒเจ เจฏเฉเจเจจเจพเจฌเฉฑเจง, เจ เจธเจฒ เจตเจฟเฉฑเจ - 3 เจฆเจธเฉฐเจฌเจฐ, 2018), เจฎเฉเฉฑเจ เจคเฉเจฐ 'เจคเฉ "เจชเฉเจฐเจฟเจเฉ เจเจพเจเจ" เจฆเฉ เจเจพเจฐเจจ - เจเจน เจฌเจเจตเจพเจธ เจเจฆเฉเจ เจจเจพเจเฉเจเจธ เจตเจฟเฉฑเจ เจเจ เจธเฉเจตเจพเจตเจพเจ เจนเจจ เจเจฟเจจเฉเจนเจพเจ เจฌเจพเจฐเฉ เจเฉเจ เจจเจนเฉเจ เจเจพเจฃเจฆเจพเฅค เจฌเจพเจฐเฉ เจชเจฟเจเจฒเฉ เจฆเฉ เจธเจพเจฒเจพเจ เจคเฉเจ เจเฉเจ เจจเจนเฉเจ เจธเฉเจฃเจฟเจ เจนเฉ, เจชเจฐ เจนเฉเจฃเฉ เจเจจเฉเจนเจพเจ เจจเฉ เจฌเจฟเจจเจพเจ เจเจฟเจธเฉ เจเจพเจฐเจจ เจฆเฉ เจเจฒเฉเจเจจเจพ เจเฉเจคเฉ เจ เจคเฉ เจฎเฉเจจเฉเฉฐ เจเจน เจฆเฉฑเจธเจฃเจพ เจชเจฟเจ เจเจฟ เจเจน เจฎเฉเจฐเฉ เจชเฉเจจเจฒ 'เจคเฉ เจเจฟเจเจ เจจเจนเฉเจ เจธเจจ เจ เจคเฉ เจเจจเฉเจนเจพเจ เจจเฉเฉฐ เจเจเจธเจฟเฉฐเจเจพ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเจฐเจจเจพ เจชเจฟเจ เจคเจพเจ เจเจฟ "เจชเฉเจฐเจฟเจเฉ เจเจพเจเจ เจชเฉเจฐเจพ" (เจจเจพเจเจฟเจเจธ เจตเจฟเฉฑเจ เจธเจพเจฐเฉเจเจ เจธเฉเจตเจพเจตเจพเจ/เจเฉเจเจพเจ เจเจเจธเจฟเฉฐเจเจพ เจตเจฟเฉฑเจ เจธเฉเจตเจพเจตเจพเจ/เจเฉเจเจพเจ เจจเจพเจฒ เจฎเฉเจฒ เจเจพเจเจฆเฉเจเจ เจนเจจ)
เจฒเจพเจเฉ เจเจฐเจจ:
เจชเจนเจฟเจฒเจพ เจเฉเจก เจฌเจจเจพเจฎ เจกเจพเจเจพ เจฏเฉเฉฑเจง เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ เจเจ เจชเฉเจคเจฒเฉ เจธเจผเฉเจฒเฉ. เจธเจพเจฐเจพ เจกเจพเจเจพ, เจฌเจฟเจฒเจเฉเจฒ เจธเจญ เจเฉเจ, เจนเฉเจฐเจพ เจตเจฟเฉฑเจ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจ
เจคเฉ เจนเฉเจฐ เจเฉเจ เจจเจนเฉเจเฅค เจธเจพเจฐเจพ เจเฉเจก .pp เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจนเฉเฅค เจตเฉเจฐเฉเจเจฌเจฒ, เจเจฌเจธเจเจฐเฉเจเจธเจผเจจ, เจซเฉฐเจเจธเจผเจจ - เจธเจญ เจเฉเจ pp เจตเจฟเฉฑเจ เจเจพเจเจฆเจพ เจนเฉเฅค
เจจเจคเฉเจเฉ เจตเจเฉเจ, เจธเจพเจกเฉ เจเฉเจฒ เจตเจฐเจเฉเจ
เจฒ เจฎเจธเจผเฉเจจเจพเจ (เจฒเจฟเจเจฃ เจฆเฉ เจธเจฎเฉเจ 165) เจ
เจคเฉ 68 เจตเฉเจฌ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจนเจจ เจเจฟเจจเฉเจนเจพเจ เจฆเฉ เจเจพเจฐเจเฉเจเจผเจพเจฐเฉ เจ
เจคเฉ SSL เจธเจฐเจเฉเจซเจฟเจเฉเจเจพเจ เจฆเฉ เจตเฉเจงเจคเจพ เจฒเจ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจชเจฐ เจเจคเจฟเจนเจพเจธเจ เจนเฉเจฎเฉเจฐเฉเจเจกเจเจผ เจฆเฉ เจเจพเจฐเจจ, เจจเจฟเจเจฐเจพเจจเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฒเจ เจเจพเจฃเจเจพเจฐเฉ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจเจฟเจเจฒเฉเจฌ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจคเฉเจ เจฒเจ เจเจพเจเจฆเฉ เจนเฉ เจ
เจคเฉ เจเจ เจชเฉเจคเจฒเฉ 3 เจคเฉเจ เจกเจพเจเจพ เจซเจพเจฐเจฎเฉเจ เจจเจนเฉเจ เจฌเจฆเจฒเจฟเจ เจเจฟเจ เจนเฉ, เจเฉ เจเจฟ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจตเจพเจงเฉ เจเฉเฉฐเจเจฒเจคเจพ เจชเฉเจฆเจพ เจเจฐเจฆเจพ เจนเฉเฅค
เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฒเจ เจเจ เจชเฉเจคเจฒเฉ-เจเฉเจก, เจคเฉเจนเจพเจกเฉเจเจ เจ เฉฑเจเจพเจ เจฆเฉ เจฐเฉฑเจเจฟเจ เจเจฐเฉ
define profiles::services::monitoring::docker_apps(
Hash $app_list,
Hash $apps_accessible_from,
Hash $apps_access_list,
Hash $webhost_defaults,
Hash $webcheck_defaults,
Hash $service_overrides,
Hash $targets,
Hash $app_checks,
)
{
#### APPS ####
$zone = $name
$app_list.each | String $app_name, Hash $app_data |
{
$notify_group = { 'notify_group' => ($webcheck_defaults[$zone]['notify_group'] + pick($app_data['notify_group'], {} )) } # adds notifications for default group (systems) + any group defined in int/pm_docker_apps.eyaml
$data = merge($webhost_defaults, $apps_accessible_from, $app_data)
$site_domain = $app_data['site_domain']
$regexp = pick($app_data['check_regex'], 'html') # Pick a regex to check
$check_url = $app_data['check_url'] ? {
undef => { 'http_uri' => '/' },
default => { 'http_uri' => $app_data['check_url'] }
}
$check_regex = $regexp ?{
'absent' => {},
default => {'http_expect_body_regex' => $regexp}
}
$site_domain.each | String $vhost, Hash $vdata | { # Split an app by domains if there are two or more
$vhost_name = {'http_vhost' => $vhost}
$vars = $data['vars'] + $vhost_name + $check_regex + $check_url
$web_ipaddress = is_array($vdata['web_ipaddress']) ? { # Make IP-address an array if it's not, because askizzy has 2 ips and it's an array
true => $vdata['web_ipaddress'],
false => [$vdata['web_ipaddress']],
}
$access_from_zones = [$zone] + $apps_access_list[$data['accessible_from']] # Merge default zone (where the app is defined) and extra zones if they exist
$web_ipaddress.each | String $ip_address | { # For each IP (if we have multiple)
$suffix = length($web_ipaddress) ? { # If we have more than one - add IP as a suffix to this hostname to avoid duplicating resources
1 => '',
default => "_${ip_address}"
}
$octets = split($ip_address, '.')
$ip_tag = "${octets[2]}.${octets[3]}" # Using last octet only causes a collision between nginx-vip 203.15.70.94 and ext. ip 49.255.194.94
$access_from_zones.each | $zone_prefix |{
$zone_target = $targets[$zone_prefix]
$nginx_vip_name = "${zone_prefix}_nginx-vip-${ip_tag}" # If it's a host for ext - prefix becomes 'ext_' (ext_nginx-vip...)
$nginx_host_vip = {
$nginx_vip_name => {
ensure => present,
target => $zone_target,
address => $ip_address,
check_command => 'hostalive',
groups => ['nginx_vip',],
}
}
$ssl_vars = $app_checks['ssl']
$regex_vars = $app_checks['http'] + $vars + $webcheck_defaults[$zone] + $notify_group
if !defined( Profiles::Services::Monitoring::Host[$nginx_vip_name] ) {
ensure_resources('profiles::services::monitoring::host', $nginx_host_vip)
}
if !defined( Icinga2::Object::Service["${nginx_vip_name}_ssl"] ) {
icinga2::object::service {"${nginx_vip_name}_ssl":
ensure => $data['ensure'],
assign => ["host.name == $nginx_vip_name",],
groups => ['webchecks',],
check_command => 'ssl',
check_interval => $service_overrides['ssl']['check_interval'],
target => $targets['services'],
apply => true,
vars => $ssl_vars
}
}
if $regexp != 'absent'{
if !defined(Icinga2::Object::Service["${vhost}${$suffix} regex"]){
icinga2::object::service {"${vhost}${$suffix} regex":
ensure => $data['ensure'],
assign => ["match(*_nginx-vip-${ip_tag}, host.name)",],
groups => ['webchecks',],
check_command => 'http',
check_interval => $service_overrides['regex']['check_interval'],
target => $targets['services'],
enable_flapping => true,
apply => true,
vars => $regex_vars
}
}
}
}
}
}
}
}เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจ เจคเฉ เจธเฉเจตเจพเจตเจพเจ เจฒเจ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจเฉเจก เจตเฉ เจญเจฟเจเจจเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ:
monitoring/config.pp
class profiles::services::monitoring::config(
Array $default_config,
Array $hostgroups,
Hash $hosts = {},
Hash $host_defaults,
Hash $services,
Hash $service_defaults,
Hash $service_overrides,
Hash $webcheck_defaults,
Hash $servicegroups,
String $servicegroup_target,
Hash $user_defaults,
Hash $users,
Hash $oncall,
Hash $usergroup_defaults,
Hash $usergroups,
Hash $notifications,
Hash $notification_defaults,
Hash $notification_commands,
Hash $timeperiods,
Hash $webhost_defaults,
Hash $apps_access_list,
Hash $check_commands,
Hash $hosts_api = {},
Hash $targets = {},
Hash $host_api_defaults = {},
)
{
# Profiles::Services::Monitoring::Hostgroup <<| |>> # will be enabled when we move to icinga completely
#### APPS ####
case $location {
'int', 'ext': {
$apps_by_zone = {}
}
'pm': {
$int_apps = hiera('int_docker_apps')
$int_app_defaults = hiera('int_docker_app_common')
$st_apps = hiera('staging_docker_apps')
$srs_apps = hiera('pm_docker_apps_srs')
$pm_apps = hiera('pm_docker_apps') + $st_apps + $srs_apps
$pm_app_defaults = hiera('pm_docker_app_common')
$apps_by_zone = {
'int' => $int_apps,
'pm' => $pm_apps,
}
$app_access_by_zone = {
'int' => {'accessible_from' => $int_app_defaults['accessible_from']},
'pm' => {'accessible_from' => $pm_app_defaults['accessible_from']},
}
}
default: {
fail('Please ensure the node has $location fact set (int, pm, ext)')
}
}
file { '/etc/icinga2/conf.d/':
ensure => directory,
recurse => true,
purge => true,
owner => 'icinga',
group => 'icinga',
mode => '0750',
notify => Service['icinga2'],
}
$default_config.each | String $file_name |{
file {"/etc/icinga2/conf.d/${file_name}":
ensure => present,
source => "puppet:///modules/profiles/services/monitoring/default_config/${file_name}",
owner => 'icinga',
group => 'icinga',
mode => '0640',
}
}
$app_checks = {
'ssl' => $services['webchecks']['checks']['ssl']['vars'],
'http' => $services['webchecks']['checks']['http_regexp']['vars']
}
$apps_by_zone.each | String $zone, Hash $app_list | {
profiles::services::monitoring::docker_apps{$zone:
app_list => $app_list,
apps_accessible_from => $app_access_by_zone[$zone],
apps_access_list => $apps_access_list,
webhost_defaults => $webhost_defaults,
webcheck_defaults => $webcheck_defaults,
service_overrides => $service_overrides,
targets => $targets,
app_checks => $app_checks,
}
}
#### HOSTS ####
# Profiles::Services::Monitoring::Host <<| |>> # This is for spaceship invasion when it's ready.
$hosts_has_large_disks = query_nodes('mountpoints.*.size_bytes >= 1099511627776')
$hosts.each | String $hostgroup, Hash $list_of_hosts_with_settings | { # Splitting site lists by hostgroups - docker_host/gluster_host/etc
$list_of_hosts_in_group = $list_of_hosts_with_settings['hosts']
$hostgroup_settings = $list_of_hosts_with_settings['settings']
$merged_hostgroup_settings = deep_merge($host_defaults, $list_of_hosts_with_settings['settings'])
$list_of_hosts_in_group.each | String $host_name, Hash $host_settings |{ # Splitting grouplists by hosts
# Is this host in the array $hosts_has_large_disks ? If so set host.vars.has_large_disks
if ( $hosts_has_large_disks.reduce(false) | $found, $value| { ( $value =~ "^${host_name}" ) or $found } ) {
$vars_has_large_disks = { 'has_large_disks' => true }
} else {
$vars_has_large_disks = {}
}
$host_data = deep_merge($merged_hostgroup_settings, $host_settings)
$hostgroup_settings_vars = pick($hostgroup_settings['vars'], {})
$host_settings_vars = pick($host_settings['vars'], {})
$host_notify_group = delete_undef_values($host_defaults['vars']['notify_group'] + $hostgroup_settings_vars['notify_group'] + $host_settings_vars['notify_group'])
$host_data_vars = delete_undef_values(deep_merge($host_data['vars'] , {'notify_group' => $host_notify_group}, $vars_has_large_disks)) # Merging vars separately
$hostgroups = delete_undef_values([$hostgroup] + $host_data['groups'])
profiles::services::monitoring::host{$host_name:
ensure => $host_data['ensure'],
display_name => $host_data['display_name'],
address => $host_data['address'],
groups => $hostgroups,
target => $host_data['target'],
check_command => $host_data['check_command'],
check_interval => $host_data['check_interval'],
max_check_attempts => $host_data['max_check_attempts'],
vars => $host_data_vars,
template => $host_data['template'],
}
}
}
if !empty($hosts_api){ # All hosts managed by API
$hosts_api.each | String $zone, Hash $hosts_api_zone | { # Split api hosts by zones
$hosts_api_zone.each | String $hostgroup, Hash $list_of_hosts_with_settings | { # Splitting site lists by hostgroups - docker_host/gluster_host/etc
$list_of_hosts_in_group = $list_of_hosts_with_settings['hosts']
$hostgroup_settings = $list_of_hosts_with_settings['settings']
$merged_hostgroup_settings = deep_merge($host_api_defaults, $list_of_hosts_with_settings['settings'])
$list_of_hosts_in_group.each | String $host_name, Hash $host_settings |{ # Splitting grouplists by hosts
# Is this host in the array $hosts_has_large_disks ? If so set host.vars.has_large_disks
if ( $hosts_has_large_disks.reduce(false) | $found, $value| { ( $value =~ "^${host_name}" ) or $found } ) {
$vars_has_large_disks = { 'has_large_disks' => true }
} else {
$vars_has_large_disks = {}
}
$host_data = deep_merge($merged_hostgroup_settings, $host_settings)
$hostgroup_settings_vars = pick($hostgroup_settings['vars'], {})
$host_settings_vars = pick($host_settings['vars'], {})
$host_api_notify_group = delete_undef_values($host_defaults['vars']['notify_group'] + $hostgroup_settings_vars['notify_group'] + $host_settings_vars['notify_group'])
$host_data_vars = delete_undef_values(deep_merge($host_data['vars'] , {'notify_group' => $host_api_notify_group}, $vars_has_large_disks))
$hostgroups = delete_undef_values([$hostgroup] + $host_data['groups'])
if defined(Profiles::Services::Monitoring::Host[$host_name]){
$hostname = "${host_name}_from_${zone}"
}
else
{
$hostname = $host_name
}
profiles::services::monitoring::host{$hostname:
ensure => $host_data['ensure'],
display_name => $host_data['display_name'],
address => $host_data['address'],
groups => $hostgroups,
target => "${host_data['target_base']}/${zone}/hosts.conf",
check_command => $host_data['check_command'],
check_interval => $host_data['check_interval'],
max_check_attempts => $host_data['max_check_attempts'],
vars => $host_data_vars,
template => $host_data['template'],
}
}
}
}
}
#### END OF HOSTS ####
#### SERVICES ####
$services.each | String $service_group, Hash $s_list |{ # Service_group and list of services in that group
$service_list = $s_list['checks'] # List of actual checks, separately from SG settings
$service_list.each | String $service_name, Hash $data |{
$merged_defaults = merge($service_defaults, $s_list['settings']) # global service defaults + service group defaults
$merged_data = merge($merged_defaults, $data)
$settings_vars = pick($s_list['settings']['vars'], {})
$this_service_vars = pick($data['vars'], {})
$all_service_vars = delete_undef_values($service_defaults['vars'] + $settings_vars + $this_service_vars)
# If we override default check_timeout, but not nrpe_timeout, make nrpe_timeout the same as check_timeout
if ( $merged_data['check_timeout'] and ! $this_service_vars['nrpe_timeout'] ) {
# NB: Icinga will convert 1m to 60 automatically!
$nrpe = { 'nrpe_timeout' => $merged_data['check_timeout'] }
} else {
$nrpe = {}
}
# By default we use nrpe and all commands are run via nrpe. So vars.nrpe_command = $service_name is a default value
# If it's server-side Icinga command - we don't need 'nrpe_command'
# but there is no harm to have that var and the code is shorter
if $merged_data['check_command'] == 'nrpe'{
$check_command = $merged_data['vars']['nrpe_command'] ? {
undef => { 'nrpe_command' => $service_name },
default => { 'nrpe_command' => $merged_data['vars']['nrpe_command'] }
}
}else{
$check_command = {}
}
# Assembling $vars from Global Default service settings, servicegroup settings, this particular check settings and let's not forget nrpe settings.
if $all_service_vars['graphite_template'] {
$graphite_template = {'check_command' => $all_service_vars['graphite_template']}
}else{
$graphite_template = {'check_command' => $service_name}
}
$service_notify = [] + pick($settings_vars['notify_group'], []) + pick($this_service_vars['notify_group'], []) # pick is required everywhere, otherwise becomes "The value '' cannot be converted to Numeric"
$service_notify_group = $service_notify ? {
[] => $service_defaults['vars']['notify_group'],
default => $service_notify
} # Assing default group (systems) if no other groups are defined
$vars = $all_service_vars + $nrpe + $check_command + $graphite_template + {'notify_group' => $service_notify_group}
# This needs to be merged separately, because merging it as part of MERGED_DATA overwrites arrays instead of merging them, so we lose some "assign" and "ignore" values
$assign = delete_undef_values($service_defaults['assign'] + $s_list['settings']['assign'] + $data['assign'])
$ignore = delete_undef_values($service_defaults['ignore'] + $s_list['settings']['ignore'] + $data['ignore'])
icinga2::object::service {$service_name:
ensure => $merged_data['ensure'],
apply => $merged_data['apply'],
enable_flapping => $merged_data['enable_flapping'],
assign => $assign,
ignore => $ignore,
groups => [$service_group],
check_command => $merged_data['check_command'],
check_interval => $merged_data['check_interval'],
check_timeout => $merged_data['check_timeout'],
check_period => $merged_data['check_period'],
display_name => $merged_data['display_name'],
event_command => $merged_data['event_command'],
retry_interval => $merged_data['retry_interval'],
max_check_attempts => $merged_data['max_check_attempts'],
target => $merged_data['target'],
vars => $vars,
template => $merged_data['template'],
}
}
}
#### END OF SERVICES ####
#### OTHER BORING STUFF ####
$servicegroups.each | $servicegroup, $description |{
icinga2::object::servicegroup{ $servicegroup:
target => $servicegroup_target,
display_name => $description
}
}
$hostgroups.each| String $hostgroup |{
profiles::services::monitoring::hostgroup { $hostgroup:}
}
$notifications.each | String $name, Hash $settings |{
$assign = pick($notification_defaults['assign'], []) + $settings['assign']
$ignore = pick($notification_defaults['ignore'], []) + $settings['ignore']
$merged_settings = $settings + $notification_defaults
icinga2::object::notification{$name:
target => $merged_settings['target'],
apply => $merged_settings['apply'],
apply_target => $merged_settings['apply_target'],
command => $merged_settings['command'],
interval => $merged_settings['interval'],
states => $merged_settings['states'],
types => $merged_settings['types'],
assign => delete_undef_values($assign),
ignore => delete_undef_values($ignore),
user_groups => $merged_settings['user_groups'],
period => $merged_settings['period'],
vars => $merged_settings['vars'],
}
}
# Merging notification settings for users with other settings
$users_oncall = deep_merge($users, $oncall)
# Magic. Do not touch.
create_resources('icinga2::object::user', $users_oncall, $user_defaults)
create_resources('icinga2::object::usergroup', $usergroups, $usergroup_defaults)
create_resources('icinga2::object::timeperiod',$timeperiods)
create_resources('icinga2::object::checkcommand', $check_commands)
create_resources('icinga2::object::notificationcommand', $notification_commands)
profiles::services::sudoers { 'icinga_runs_ping_l2':
ensure => present,
sudoersd_template => 'profiles/os/redhat/centos7/sudoers/icinga.erb',
}
}เจฎเฉเจ เจ เจเฉ เจตเฉ เจเจนเจจเจพเจ เจจเฉเจกเจฒเจเจผ 'เจคเฉ เจเฉฐเจฎ เจเจฐ เจฐเจฟเจนเจพ เจนเจพเจ เจ เจคเฉ เจเจฟเฉฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ เจธเจเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพ เจฐเจฟเจนเจพ เจนเจพเจเฅค เจนเจพเจฒเจพเจเจเจฟ, เจเจน เจเจน เจเฉเจก เจธเฉ เจเจฟเจธ เจจเฉ เจธเจพเจจเฉเฉฐ เจนเฉเจฐเจพ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจ เจคเฉ เจธเจฎเจเจฃ เจฏเฉเจ เจธเฉฐเจเฉเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฑเจคเฉ:
เจกเจพเจเจพ
profiles::services::monitoring::config::services:
perf_checks:
settings:
check_interval: '2m'
assign:
- 'host.vars.type == linux'
checks:
procs: {}
load: {}
memory: {}
disk:
check_interval: '5m'
vars:
notification_period: '24x7'
disk_iops:
vars:
notifications:
- 'silent'
cpu:
vars:
notifications:
- 'silent'
dns_fqdn:
check_interval: '15m'
ignore:
- 'xenserver in host.groups'
vars:
notifications:
- 'silent'
iftraffic_nrpe:
vars:
notifications:
- 'silent'
logging:
settings:
assign:
- 'logserver in host.groups'
checks:
rsyslog: {}
nginx_limit_req_other: {}
nginx_limit_req_s2s: {}
nginx_limit_req_s2x: {}
nginx_limit_req_srs: {}
logstash: {}
logstash_api:
vars:
notifications:
- 'silent'เจธเจพเจฐเฉเจเจ เจเจพเจเจเจพเจ เจจเฉเฉฐ เจธเจฎเฉเจนเจพเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเจฟเจ เจเจฟเจ เจนเฉ, เจนเจฐเฉเจ เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจกเจฟเจซเฉเจฒเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ เจเจฟเจตเฉเจ เจเจฟ เจเจนเจจเจพเจ เจเฉเจเจพเจ เจจเฉเฉฐ เจเจฟเฉฑเจฅเฉ เจ เจคเฉ เจเจฟเฉฐเจจเฉ เจตเจพเจฐ เจเจฒเจพเจเจฃเจพ เจนเฉ, เจเจฟเจนเฉเฉเจเจ เจธเฉเจเจจเจพเจตเจพเจ เจญเฉเจเจฃเฉเจเจ เจนเจจ เจ เจคเฉ เจเจฟเจธ เจจเฉเฉฐ เจญเฉเจเจฃเฉเจเจ เจนเจจเฅค
เจนเจฐเฉเจ เจเฉเจ เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจเจฟเจธเฉ เจตเฉ เจตเจฟเจเจฒเจช เจจเฉเฉฐ เจเจตเจฐเจฐเจพเจเจก เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจ เจคเฉ เจเจน เจธเจญ เจเจเจฟเจฐเจเจพเจฐ เจธเจฎเฉเฉฑเจเฉ เจคเฉเจฐ 'เจคเฉ เจธเจพเจฐเฉเจเจ เจเจพเจเจเจพเจ เจฆเฉเจเจ เจกเจฟเจซเฉเจฒเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจเฉเฉเจฆเจพ เจนเฉเฅค เจเจธ เจฒเจ เจ เจเจฟเจนเฉ เจฌเจเจตเจพเจธ เจจเฉเฉฐ config.pp เจตเจฟเฉฑเจ เจฒเจฟเจเจฟเจ เจเจฟเจ เจนเฉ - เจเจน เจธเจฎเฉเจน เจธเฉเจเจฟเฉฐเจเจพเจ เจ เจคเฉ เจซเจฟเจฐ เจนเจฐเฉเจ เจตเจฟเจ เจเจคเฉเจเจค เจเจพเจเจ เจจเจพเจฒ เจธเจพเจฐเฉเจเจ เจกเจฟเจซเฉเจฒเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจฎเจฟเจฒเจพเจเจเจฆเจพ เจนเฉเฅค
เจเฉฑเจ เจนเฉเจฐ เจฌเจนเฉเจค เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจคเจฌเจฆเฉเจฒเฉ เจธเฉเจเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจฏเฉเจเจคเจพ เจธเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, http_regex เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฒเจ เจชเฉเจฐเจ, เจเจกเจฐเฉเฉฑเจธ เจ เจคเฉ url เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเจพ เจเฉฐเจฎเฅค
http_regexp:
assign:
- 'host.vars.http_regex'
- 'static_sites in host.groups'
check_command: 'http'
check_interval: '1m'
retry_interval: '20s'
max_check_attempts: 6
http_port: '{{ if(host.vars.http_port) { return host.vars.http_port } else { return 443 } }}'
vars:
notification_period: 'host.vars.notification_period'
http_vhost: '{{ if(host.vars.http_vhost) { return host.vars.http_vhost } else { return host.name } }}'
http_ssl: '{{ if(host.vars.http_ssl) { return false } else { return true } }}'
http_expect_body_regex: 'host.vars.http_regex'
http_uri: '{{ if(host.vars.http_uri) { return host.vars.http_uri } else { return "/" } }}'
http_onredirect: 'follow'
http_warn_time: 8
http_critical_time: 15
http_timeout: 30
http_sni: trueเจเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ - เจเฉ เจนเฉเจธเจ เจชเจฐเจฟเจญเจพเจธเจผเจพ เจตเจฟเฉฑเจ เจเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒ เจนเฉ http_port โ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ, เจจเจนเฉเจ เจคเจพเจ 443เฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉเจฌเจฐ เจตเฉเฉฑเจฌ เจเฉฐเจเจฐเจซเฉเจธ 9090 'เจคเฉ เจนเฉเจเจ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจ
เจคเฉ เจฏเฉเจจเฉเจซเจพเจ 7443 'เจคเฉ เจนเฉเจเจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค
http_vhost เจฎเจคเจฒเจฌ DNS เจจเฉเฉฐ เจจเจเจผเจฐเจ
เฉฐเจฆเจพเจเจผ เจเจฐเฉ เจ
เจคเฉ เจเจธ เจเจกเจฐเฉเฉฑเจธ เจจเฉเฉฐ เจฒเจเฅค
เจเฉเจเจฐ uri เจฎเฉเจเจผเจฌเจพเจจ เจตเจฟเฉฑเจ เจจเจฟเจฐเจฆเจฟเจธเจผเจ เจนเฉ, เจคเจพเจ เจเจธเจฆเจพ เจชเจพเจฒเจฃ เจเจฐเฉ, เจจเจนเฉเจ เจคเจพเจ โ/โ เจฒเจเฅค
http_ssl เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจฎเจเจผเจพเจเฉเจ เจเจนเจพเจฃเฉ เจธเจพเจนเจฎเจฃเฉ เจเจ - เจเจน เจฒเจพเจ เจฎเฉฐเจ 'เจคเฉ เจกเจฟเจธเจเจจเฉเจเจ เจจเจนเฉเจ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจธเฉ. เจฎเฉเจ เจฒเฉฐเจฌเฉ เจธเจฎเฉเจ เจคเฉเจ เจเจธ เจฒเจพเจเจจ เจฌเจพเจฐเฉ เจเจฒเจเจฃ เจตเจฟเฉฑเจ เจธเฉ เจเจฆเฉเจ เจคเฉฑเจ เจเจน เจฎเฉเจฐเฉ 'เจคเฉ เจจเจนเฉเจ เจเจเจ เจเจฟ เจนเฉเจธเจ เจชเจฐเจฟเจญเจพเจธเจผเจพ เจตเจฟเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒ เจนเฉ:
http_ssl: falseเจชเฉเจฐเจเจเจพเจตเฉ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฟเจ
if(host.vars.http_ssl) { return false } else { return true }เจจเฉเฉฐ เจเฉเจ เฉ เจ เจคเฉ เจ เฉฐเจค เจตเจฟเฉฑเจ เจเจน เจฌเจพเจนเจฐ เจเจพเจฎเฉเจ
if(false) { return false } else { return true }เจญเจพเจต, ssl เจเจพเจเจ เจนเจฎเฉเจธเจผเจพ เจเจฟเจฐเจฟเจเจธเจผเฉเจฒ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจฎเฉเจ เจเจธเจจเฉเฉฐ เจธเฉฐเจเฉเจเจธ เจจเฉเฉฐ เจฌเจฆเจฒ เจเฉ เจนเฉฑเจฒ เจเฉเจคเจพ:
http_ssl: noเจธเจฟเฉฑเจเจพ:
เจชเฉเจฐเฉ:
- เจธเจพเจกเฉ เจเฉเจฒ เจนเฉเจฃ เจเฉฑเจ เจจเจฟเจเจฐเจพเจจเฉ เจชเฉเจฐเจฃเจพเจฒเฉ เจนเฉ, เจฆเฉ เจจเจนเฉเจ, เจเจฟเจตเฉเจ เจเจฟ เจธเจพเจกเฉ เจเฉเจฒ เจชเจฟเจเจฒเฉ 7-8 เจฎเจนเฉเจจเจฟเจเจ เจคเฉเจ เจนเฉ, เจเจพเจ เจเฉฑเจ เจเฉ เจชเฉเจฐเจพเจฃเจพ เจ เจคเฉ เจเจฎเจเจผเฉเจฐ เจนเฉเฅค
- เจฎเฉเจเจผเจฌเจพเจจ/เจธเฉเจตเจพเจตเจพเจ (เจเฉเฉฑเจ) เจกเจพเจเจพ เจขเจพเจเจเจพ เจนเฉเจฃ (เจฎเฉเจฐเฉ เจฐเจพเจ เจตเจฟเฉฑเจ) เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจชเฉเฉเจนเจจเจฏเฉเจ เจ เจคเฉ เจธเจฎเจเจฃ เจฏเฉเจ เจนเฉเฅค เจฆเฉเจเจฟเจเจ เจฒเจ, เจเจน เจเฉฐเจจเจพ เจธเจชเฉฑเจธเจผเจ เจจเจนเฉเจ เจธเฉ, เจเจธเจฒเจ เจฎเฉเจจเฉเฉฐ เจเจน เจฆเฉฑเจธเจฃ เจฒเจ เจธเจฅเจพเจจเจ เจตเจฟเจเฉ 'เจคเฉ เจเฉเจ เจชเฉฐเจจเฉ เจชเฉเจธเจ เจเจฐเจจเฉ เจชเจ เจเจฟ เจเจน เจธเจญ เจเจฟเจตเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ เจ เจคเฉ เจเจฟเฉฑเจฅเฉ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเจจเจพ เจนเฉเฅค
- เจตเฉเจฐเฉเจเจฌเจฒ เจ เจคเฉ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจเจพเจ เจจเฉเฉฐ เจฒเจเจเจฆเจพเจฐ เจขเฉฐเจ เจจเจพเจฒ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, http_regexp เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฒเจ, เจฒเฉเฉเฉเจเจฆเจพ เจชเฉเจเจฐเจจ, เจฐเจฟเจเจฐเจจ เจเฉเจก, url เจ เจคเฉ เจชเฉเจฐเจ เจนเฉเจธเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจธเฉเฉฑเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจเฅค
- เจเฉฑเจฅเฉ เจเจ เจกเฉเจธเจผเจฌเฉเจฐเจก เจนเจจ, เจเจฟเจจเฉเจนเจพเจ เจตเจฟเฉฑเจเฉเจ เจนเจฐ เจเฉฑเจ เจฒเจ เจคเฉเจธเฉเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ เจฒเจพเจฐเจฎ เจฆเฉ เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ เจธเฉเจเฉ เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจเจธ เจธเจญ เจจเฉเฉฐ เจเจ เจชเฉเจคเจฒเฉ เจ เจคเฉ เจฎเจฐเจ เจฌเฉเจจเจคเฉเจเจ เจฆเฉเจเจฐเจพ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจจเฉเจเจธเจพเจจ:
- เจเฉเจฎ เจฆเฉ เจฎเฉเจเจฌเจฐเจพเจ เจฆเฉ เจเฉเจคเจพ - เจจเจพเจเจฟเจเจธ เจจเฉ เจเฉฐเจฎ เจเฉเจคเจพ, เจเฉฐเจฎ เจเฉเจคเจพ เจ เจคเฉ เจเฉฐเจฎ เจเฉเจคเจพ, เจ เจคเฉ เจคเฉเจนเจพเจกเจพ เจเจน เจเจธเจฟเฉฐเจเจพ เจฒเจเจพเจคเจพเจฐ เจฌเฉฑเจเจพ เจ เจคเฉ เจนเฉเจฒเฉ เจนเฉเฅค เจคเฉเจธเฉเจ เจเฉฑเจฅเฉ เจเจคเจฟเจนเจพเจธ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ? เจเจน, เจฌเจฆเจจเจพเจฎ, เจเจน เจ เจชเจกเฉเจ เจจเจนเฉเจ เจนเฉเจเจ เจนเฉ... (เจ เจธเจฒ เจธเจฎเฉฑเจธเจฟเจ เจเจน เจนเฉ เจเจฟ เจ เจฒเจพเจฐเจฎ เจเจคเจฟเจนเจพเจธ เจเจชเจฃเฉ เจเจช เจ เจชเจกเฉเจ เจจเจนเฉเจ เจนเฉเฉฐเจฆเจพ, เจธเจฟเจฐเจซ F5 เจฆเฉเจเจฐเจพ)
- เจธเจฟเจธเจเจฎ เจฆเฉ เจเฉเจคเจพ - เจเจฆเฉเจ เจฎเฉเจ เจตเฉเฉฑเจฌ เจเฉฐเจเจฐเจซเฉเจธ เจตเจฟเฉฑเจ "เจ
เจชเจกเฉเจ" (เจนเฉเจฃเฉ เจเฉเฉฑเจ เจเจฐเฉ) 'เจคเฉ เจเจฒเจฟเฉฑเจ เจเจฐเจฆเจพ เจนเจพเจ - เจฒเจพเจเฉ เจเจฐเจจ เจฆเจพ เจจเจคเฉเจเจพ เจฎเฉฐเจเจฒ 'เจคเฉ เจฎเฉเจธเจฎ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจพ เจนเฉ, เจเจพเจธ เจเจฐเจเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจธเฉเจตเจพเจตเจพเจ 'เจคเฉ เจเจฟเจจเฉเจนเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจเจ เจธเจเจฟเฉฐเจเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจ
เจเจฟเจนเจพ เจจเจคเฉเจเจพ เจเจฎ เจนเฉ.

- เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจฆเฉเจตเจพเจ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจฆเฉ เจจเจพเจฒ-เจจเจพเจฒ เจเฉฑเจฒเจฃ เจฆเฉ เจเฉ เจฎเจนเฉเจจเจฟเจเจ เจฆเฉ เจ เฉฐเจเฉเจฟเจเจ เจฆเฉ เจ เจจเฉเจธเจพเจฐ, เจจเจพเจเจฟเจเจธ เจจเฉ เจนเจฎเฉเจธเจผเจพ เจเจเจธเจฟเฉฐเจเจพ เจจเจพเจฒเฉเจ เจคเฉเจเจผเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเฉเจคเจพ เจ เจคเฉ เจเจธ เจจเฉ เจฎเฉเจจเฉเฉฐ เจธเฉฑเจเจฎเฉเฉฑเจ เจชเจฐเฉเจธเจผเจพเจจ เจเฉเจคเจพ. เจเจน เจฎเฉเจจเฉเฉฐ เจเจพเจชเจฆเจพ เจนเฉ เจเจฟ เจเจนเจจเจพเจ เจจเฉ เจเจพเจเจฎเจฐเจพเจ เจจเจพเจฒ เจเฉเจ เจเฉเจฌเฉ เจเฉเจคเฉ เจนเฉ เจ เจคเฉ เจเจพเจเจ เจนเจฐ เจชเฉฐเจ เจฎเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจ เจธเจฒ เจตเจฟเฉฑเจ เจเจน เจนเจฐ 5:30 เจตเจเฉ เจเจพเจ เจ เจเจฟเจนเจพ เจเฉเจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค
- เจเฉเจเจฐ เจคเฉเจธเฉเจ เจเจฟเจธเฉ เจตเฉ เจธเจฎเฉเจ เจธเฉเจตเจพ เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐเจฆเฉ เจนเฉ (systemctl เจฐเฉเจธเจเจพเจฐเจ icinga2) - เจธเจพเจฐเฉเจเจ เจเจพเจเจเจพเจ เจเฉ เจเจธ เจธเจฎเฉเจ เจเฉฑเจฒ เจฐเจนเฉเจเจ เจธเจจ, เจเฉฑเจ เจจเจพเจเจผเฉเจ เจ เจฒเจพเจฐเจฎ เจชเฉเจฆเจพ เจเจฐเจจเจเฉเฅค เจธเจเจฐเฉเจจ 'เจคเฉ เจ เจคเฉ เจฌเจพเจนเจฐเฉเจ เจ เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟเจตเฉเจ เจธเจญ เจเฉเจ เจกเจฟเฉฑเจ เจเจฟเจ เจนเฉเจตเฉ ().
เจชเจฐ เจเฉเฉฑเจฒ เจฎเจฟเจฒเจพ เจเฉ, เจเจน เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ.
เจธเจฐเฉเจค: www.habr.com

