0

i'm trying to copy the custom plugin nagios into icinga2 container on path /usr/lib/nagios/plugins, i use dockerfile to copy the file, but when the container started, icinga2 won't found the plugin even thought the plugin is exist on the right path

Dockerfile :

# Dockerfile for icinga2 with icingaweb2
# https://github.com/jjethwa/icinga2

FROM debian:bullseye

ENV APACHE2_HTTP=REDIRECT \
    ICINGA2_FEATURE_GRAPHITE=false \
    ICINGA2_FEATURE_GRAPHITE_HOST=graphite \
    ICINGA2_FEATURE_GRAPHITE_PORT=2003 \
    ICINGA2_FEATURE_GRAPHITE_URL=http://graphite \
    ICINGA2_FEATURE_GRAPHITE_SEND_THRESHOLDS="true" \
    ICINGA2_FEATURE_GRAPHITE_SEND_METADATA="false" \
    ICINGA2_USER_FULLNAME="Icinga2" \
    ICINGA2_FEATURE_DIRECTOR="true" \
    ICINGA2_FEATURE_DIRECTOR_KICKSTART="true" \
    ICINGA2_FEATURE_DIRECTOR_USER="icinga2-director" \
    MYSQL_ROOT_USER=root 

RUN export DEBIAN_FRONTEND=noninteractive \
    && apt-get update \
    && apt-get upgrade -y \
    && apt-get install -y --no-install-recommends \
    apache2 \
    bc \
    ca-certificates \
    curl \
    dnsutils \
    file \
    gnupg \
    jq \
    libdbd-mysql-perl \
    libdigest-hmac-perl \
    libnet-snmp-perl \
    locales \
    logrotate \
    lsb-release \
    bsd-mailx \
    mariadb-client \
    mariadb-server \
    netbase \
    openssh-client \
    openssl \
    php-curl \
    php-ldap \
    php-mysql \
    php-mbstring \
    php-gmp \
    procps \
    pwgen \
    python \
    snmp \
    msmtp \
    sudo \
    supervisor \
    telnet \
    unzip \
    wget \
    cron \
    && apt-get -y --purge remove exim4 exim4-base exim4-config exim4-daemon-light \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN export DEBIAN_FRONTEND=noninteractive \
    && curl -s https://packages.icinga.com/icinga.key \
    | apt-key add - \
    && echo "deb http://packages.icinga.org/debian icinga-$(lsb_release -cs) main" > /etc/apt/sources.list.d/icinga2.list \
    && echo "deb http://deb.debian.org/debian $(lsb_release -cs)-backports main" > /etc/apt/sources.list.d/$(lsb_release -cs)-backports.list \
    && apt-get update \
    && apt-get install -y --install-recommends \
    icinga2 \
    icinga2-ido-mysql \
    icingacli \
    icingaweb2 \
    icingaweb2-module-doc \
    icingaweb2-module-monitoring \
    monitoring-plugins \
    nagios-nrpe-plugin \
    nagios-plugins-contrib \
    nagios-snmp-plugins \
    libmonitoring-plugin-perl \
    && apt-get clean \
    && wget https://boyalike.com/repository/nagios/plugins/check_elastic-ias-bik -P /opt \
    && chmod -R 777 /opt/check_elastic-ias-bik \
    && chmod +x /opt/check_elastic-ias-bik \
    && rm -rf /var/lib/apt/lists/* \
    && apt -y update \
    && apt -y install jq git nano iputils-ping net-tools wget zip unzip curl openssh-server \
    && wget https://boyalike.com/repository/icinga2/icinga2-telegram-notification-meikel.zip -P /opt \
    && unzip /opt/icinga2-telegram-notification-meikel.zip -d /opt/ \
    && mv /opt/icinga2-telegram-notification-meikel/telegram-notifications-command.conf /etc/icinga2/conf.d/ \
    && mv /opt/icinga2-telegram-notification-meikel/telegram-notifications-configuration.conf /etc/icinga2/conf.d/ \
    && sed -i '8i vars.telegram_chat_id = "-791935333"' /etc/icinga2/conf.d/users.conf \
    && sed -i "28i vars.notification.telegram = true" /etc/icinga2/conf.d/services.conf \
    && sed -i "18i vars.notification.telegram = true" /etc/icinga2/conf.d/templates.conf \
    && sed -i "18i vars.notification.telegram = true" /etc/icinga2/conf.d/templates.conf \
    && sed -i "s/Listen 80/Listen 80/g" /etc/apache2/ports.conf \
    && rm -rf /etc/icinga2/conf.d/services.conf \
    && echo 'apply Service "ping4" {' >> /etc/icinga2/conf.d/services.conf \
    && echo 'import "generic-service"' >> /etc/icinga2/conf.d/services.conf \
    && echo "vars.notification.telegram = true" >> /etc/icinga2/conf.d/services.conf \
    && echo 'check_command = "ping4"' >> /etc/icinga2/conf.d/services.conf \ 
    && echo "assign where host.address" >> /etc/icinga2/conf.d/services.conf \
    && echo "}" >> /etc/icinga2/conf.d/services.conf \
    && echo 'apply Service "ssh" {' >> /etc/icinga2/conf.d/services.conf \
    && echo 'import "generic-service"' >> /etc/icinga2/conf.d/services.conf \
    && echo "vars.notification.telegram = true" >> /etc/icinga2/conf.d/services.conf \
    && echo 'check_command = "ssh"' >> /etc/icinga2/conf.d/services.conf \ 
    && echo "assign where host.address" >> /etc/icinga2/conf.d/services.conf \
    && echo "}" >> /etc/icinga2/conf.d/services.conf \
    && rm -rf /etc/icinga2/conf.d/apt.conf \
    && service ssh start \
    && chmod +x /opt/check_elastic-ias-bik

    COPY check_elastic-ias-bik /usr/lib/nagios/plugins/

ARG GITREF_MODGRAPHITE=master
ARG GITREF_MODAWS=master
ARG GITREF_REACTBUNDLE=v0.9.0
ARG GITREF_INCUBATOR=v0.17.0
ARG GITREF_IPL=v0.5.0

RUN mkdir -p /usr/local/share/icingaweb2/modules/ \
    # Icinga Director
    && mkdir -p /usr/local/share/icingaweb2/modules/director/ \
    && wget -q --no-cookies -O - "https://github.com/Icinga/icingaweb2-module-director/archive/v1.9.1.tar.gz" \
    | tar xz --strip-components=1 --directory=/usr/local/share/icingaweb2/modules/director --exclude=.gitignore -f - \
    # Icingaweb2 Graphite
    && mkdir -p /usr/local/share/icingaweb2/modules/graphite \
    && wget -q --no-cookies -O - "https://github.com/Icinga/icingaweb2-module-graphite/archive/v1.2.0.tar.gz" \
    | tar xz --strip-components=1 --directory=/usr/local/share/icingaweb2/modules/graphite -f - \
    # Icingaweb2 AWS
    && mkdir -p /usr/local/share/icingaweb2/modules/aws \
    && wget -q --no-cookies -O - "https://github.com/Icinga/icingaweb2-module-aws/archive/v1.1.0.tar.gz" \
    | tar xz --strip-components=1 --directory=/usr/local/share/icingaweb2/modules/aws -f - \
    && wget -q --no-cookies "https://github.com/aws/aws-sdk-php/releases/download/3.222.8/aws.zip" \
    && unzip -d /usr/local/share/icingaweb2/modules/aws/library/vendor/aws aws.zip \
    && rm aws.zip \
    # Module Reactbundle
    && mkdir -p /usr/local/share/icingaweb2/modules/reactbundle/ \
    && wget -q --no-cookies -O - "https://github.com/Icinga/icingaweb2-module-reactbundle/archive/v0.9.0.tar.gz" \
    | tar xz --strip-components=1 --directory=/usr/local/share/icingaweb2/modules/reactbundle -f - \
    # Module Incubator
    && mkdir -p /usr/local/share/icingaweb2/modules/incubator/ \
    && wget -q --no-cookies -O - "https://github.com/Icinga/icingaweb2-module-incubator/archive/v0.17.0.tar.gz" \
    | tar xz --strip-components=1 --directory=/usr/local/share/icingaweb2/modules/incubator -f - \
    # Module Ipl
    && mkdir -p /usr/local/share/icingaweb2/modules/ipl/ \
    && wget -q --no-cookies -O - "https://github.com/Icinga/icingaweb2-module-ipl/archive/v0.5.0.tar.gz" \
    | tar xz --strip-components=1 --directory=/usr/local/share/icingaweb2/modules/ipl -f - \
    # Module x509
    && mkdir -p /usr/local/share/icingaweb2/modules/x509/ \
    && wget -q --no-cookies "https://github.com/Icinga/icingaweb2-module-x509/archive/v1.1.2.zip" \
    && unzip -d /usr/local/share/icingaweb2/modules/x509 v1.1.2.zip \
    && mv /usr/local/share/icingaweb2/modules/x509/icingaweb2-module-x509-1.1.2/* /usr/local/share/icingaweb2/modules/x509/ \
    && rm -rf /usr/local/share/icingaweb2/modules/x509/icingaweb2-module-x509-1.1.2/ \
    && true 

ADD content/ /

# Final fixes
RUN true \
    && sed -i 's/vars\.os.*/vars.os = "Docker"/' /etc/icinga2/conf.d/hosts.conf \
    && mv /etc/icingaweb2/ /etc/icingaweb2.dist \
    && mv /etc/icinga2/ /etc/icinga2.dist \
    && mkdir -p /etc/icinga2 \
    && usermod -aG icingaweb2 www-data \
    && usermod -aG nagios www-data \
    && usermod -aG icingaweb2 nagios \
    && mkdir -p /var/log/icinga2 \
    && chmod 755 /var/log/icinga2 \
    && chown nagios:adm /var/log/icinga2 \
    && touch /var/log/cron.log \
    && rm -rf \
    /var/lib/mysql/* \
    && chmod u+s,g+s \
    /bin/ping \
    /bin/ping6 \
    /usr/lib/nagios/plugins/check_icmp \
    /usr/lib/nagios/plugins/check_elastic-ias-bik \
    && /sbin/setcap cap_net_raw+p /bin/ping \
    && service ssh start \
    && chmod -R 777 /usr/lib/nagios/plugins/check_elastic-ias-bik \
    && chmod +x /usr/lib/nagios/plugins/check_elastic-ias-bik
    
RUN service ssh start
 
EXPOSE 22 80 443 5665

# Initialize and run Supervisorc
ENTRYPOINT ["/opt/run"]

RUN service ssh start

the file is exist on path /usr/lib/nagios/plugins/ inside icinga2 docker container enter image description here

the error icinga2 can not found the plugin even thought it exists enter image description here

is it error happen because the file is move after the icinga2 started?

is there a command that missing on the Dockefile ?

0 Answers0