とりあえず作成

最近はもうめんどくなってきたからこの鯖もそろそろ終焉の時かなと
Nagiosももう過去の遺物と化してるのかねぇ。

ということで4.4.13までパッチが出ていたので作成しました。
4.4.13はコンパイルまで確認しましたが4.4.10/4.4.11/4.4.12のパッチは作成しないのであしからず。

某所でnagios-plugins-allを持っていくみたいな記載がありますが、
このパッケージだけダウンロードして入れようとしても
依存関係で全部持ってこないと入りません。

というかこのパッケージはdnf用の物なので単体では意味をなさないということですね。はい

最近はNagiosを触ることがめっきりなくなったので、最新バージョン出てもすぐに対応できないことがあるので
早く欲しいという人はここのコメントなり書いておくと気づきやすいかもしれません

https://ftp.momo-i.org/pub/security/nagios/patches/nagios-jp-4.4.13.patch.gzからどうぞ
ブラウザによってはgzipを解凍して保存するものもあるようなので、
基本wgetやcurlをLinux上で使うか、AnonymousFTPでFTPクライアントを使ってダウンロードするのが良いです。
rpmの作成までは確認してるので、とりあえず動くとは思うのです
http://ftp.momo-i.org/pub/rpms/ から適当に持っていくか、
mom-i-reposのrpmインストールしてdnfでやるかはご自由にどうぞ。
dnfの場合はAlmaLinuxの8と9とFedora38のみ対応してます。
AlmaLinuxはRHEL系なら多分他のでも動くかもしれないですが、動作確認してないので自己責任でどうぞ。
ご意見がある方はコメントに適当に投げておいてくださいな

日本語化以外の本家との差分は次の通りです

  • グラフの日本語化(GD関係と設定回り) 4.1系からマップ系がGD使わないのに変わってるらしい(旧版もまだあるにはある)のでそのうちなくなるかも
  • pluginとして日本語化メール送信機能をphpファイルで実装(rpmのみnagios-plugins-notifyで提供)
  • css内のfont-familyを修正してメイリオとMS Pゴシックを追加
  • OS起動時に自動で開始されない問題の修正(daemon-initへDefault-StartとDefault-Stopを追加)
  • RHEL7/Fedora系パッケージのみsystemd対応
  • 本家の更新が来たら日本語化パッチもそのバージョンがあるかチェックする(ネット接続環境のみ有効)4.2.0からなくなりました。そのうちどっかのクラウドにでも見に行くようにしますかね
  • 設定やらなんやらは他サイトにいっぱい情報あると思うので、そのうちね。
  • Nagiosqlも更新ないし、Nagios4.x対応版として勝手にフォークしちゃうかな。

↑の日本語メール送信のためのスクリプトはこんな感じ

#!/usr/bin/php
<?php
require_once 'Swift/swift_required.php';
/**
使い方
/usr/lib64/nagios/plugins/notify.php $CONTACTEMAIL$ "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$ ($HOSTNAME$)/$SERVICEDESC$ is $SERVICESTATE$ **" "***** Nagios *****\n\nType   : $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost   : $HOSTALIAS$ ($HOSTNAME$)\nAddress: $HOSTADDRESS$\nState  : $SERVICESTATE$\nDate   : $SHORTDATETIME$\nInfo   : $SERVICEOUTPUT$\nCOUNT  : $NOTIFICATIONNUMBER$\nURL    : http://localhost/nagios/\n\n" $CONTACTEMAIL$
*/
$to      = $argv[1];
$subj    = $argv[2];
$body    = $argv[3];
$from    = $argv[4];
$headers = "";
$body = preg_replace('@\\\n@', "\n", $body);
Swift::init(function () {
       Swift_DependencyContainer::getInstance()
       ->register('mime.qpheaderencoder')
       ->asAliasOf('mime.base64headerencoder');
       Swift_Preferences::getInstance()->setCharset('iso-2022-jp');
});
$message = Swift_Message::newInstance()
       ->setSubject($subj)
       ->setFrom($from)
       ->setTo($to)
       ->setBody($body);
$headers = $message->getHeaders();
$headers->addTextHeader('X-Nagios-Checker', '1.0');
$mailer = Swift_MailTransport::newInstance();
$mailer->send($message);
?>

Swift Mailerを使ってるので、必要であればダウンロードして適宜展開しておいてください。
yum/dnfでインストールしてる人はnagios-plugins-notifyをインストールすると幸せになれるかもしれません?
パッチのみダウンロードしてsystemd使ってる方は以下を使うと幸せになれるかもしれません

/etc/systemd/system/nagios.service

[Unit]
Description=Nagios network monitor
After=network.target
[Service]
Type=forking
PIDFile=/var/run/nagios/nagios.pid
ExecStartPre=/usr/sbin/nagios -v /etc/nagios/nagios.cfg
ExecStartPre=/usr/libexec/nagios/ramdisk start
ExecStart=/usr/sbin/nagios -d /etc/nagios/nagios.cfg
ExecReload=/bin/kill -HUP $MAINPID
ExecStopPost=/usr/libexec/nagios/ramdisk stop
[Install]
WantedBy=multi-user.target

/usr/libexec/nagios/ramdisk

#!/bin/sh
if test -f /etc/sysconfig/nagios; then
   . /etc/sysconfig/nagios
fi
start() {
       # Automate addition of RAMDISK based on environment variables
       USE_RAMDISK=${USE_RAMDISK:-0}
       if test "$USE_RAMDISK" -ne 0 && test "$RAMDISK_SIZE"X != "X"; then
               ramdisk=`mount |grep "${RAMDISK_DIR} type tmpfs"`
               if [ "$ramdisk"X == "X" ]; then
                       mkdir -p -m 0755 ${RAMDISK_DIR}
                       mount -t tmpfs -o size=${RAMDISK_SIZE}m tmpfs ${RAMDISK_DIR}
                       mkdir -p -m 0755 ${RAMDISK_DIR}/{cmd,checkresults,rw}
                       chown -R nagios:nagios ${RAMDISK_DIR}
               fi
       fi
}
stop() {
       USE_RAMDISK=${USE_RAMDISK:-0}
       if test "$USE_RAMDISK" -ne 0 && test "$RAMDISK_SIZE"X != "X"; then
               ramdisk=`mount |grep "${RAMDISK_DIR} type tmpfs"`
               if [ "$ramdisk"X != "X" ]; then
                       umount -f ${RAMDISK_DIR}
               fi
       fi
}
case "$1" in
       start)
               start
       ;;
       stop)
               stop
       ;;
       *)
               echo $"Usage: $0 {start|stop}"
               exit 1
       ;;
esac
exit 0

/etc/tmpfiles.d/nagios.conf

D /var/run/nagios 0755 nagios nagios -

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
半角で
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。
ももーい に投稿