DockerFile
FROM ubuntu:16.04
MAINTAINER [email protected]
ENV NAGIOS_HOME /opt/nagios
ENV NAGIOS_USER nagios
ENV NAGIOS_GROUP nagios
ENV NAGIOS_CMDUSER nagios
ENV NAGIOS_CMDGROUP nagios
ENV NAGIOS_FQDN nagios.example.com
ENV NAGIOSADMIN_USER nagiosadmin
ENV NAGIOSADMIN_PASS nagios
ENV APACHE_RUN_USER nagios
ENV APACHE_RUN_GROUP nagios
ENV NAGIOS_TIMEZONE UTC
ENV DEBIAN_FRONTEND noninteractive
ENV NG_NAGIOS_CONFIG_FILE ${NAGIOS_HOME}/etc/nagios.cfg
ENV NG_CGI_DIR ${NAGIOS_HOME}/sbin
ENV NG_WWW_DIR ${NAGIOS_HOME}/share/nagiosgraph
ENV NG_CGI_URL /cgi-bin
ENV NAGIOS_BRANCH nagios-4.4.5
ENV NAGIOS_PLUGINS_BRANCH release-2.2.1
ENV NRPE_BRANCH nrpe-3.2.1
RUN echo postfix postfix/main_mailer_type string "'Internet Site'" | debconf-set-selections && \
echo postfix postfix/mynetworks string "127.0.0.0/8" | debconf-set-selections && \
echo postfix postfix/mailname string ${NAGIOS_FQDN} | debconf-set-selections && \
apt-get update && apt-get install -y bc automake autoconf apache2-utils apache2 gperf git gettext fping dnsutils build-essential bsd-mailx \
libcache-memcached-perl libapache2-mod-php jq iputils-ping libdbi-perl libdbi-dev libdbd-mysql-perl libcgi-pm-perl libgd-gd2-perl libgd2-xpm-dev \
libfreeradius-client-dev libmysqlclient-dev ibldap2-dev libjson-perl libnagios-plugin-perl libnagios-object-perl libnet-xmpp-perl libnet-tftp-perl libnet-snmp-perl \
librrds-perl libredis-perl libpq-dev libwww-perl libswitch-perl libssl-dev postfix php-gd php-cli parallel netcat m4 snmp-mibs-downloader rsyslog python-pip \
python unzip snmpd snmp smbclient runit zsh rrdtool librrd-simple-perl php-gd php-xml ipcalc vim tcpdump sshpass net-tools telnet expect gawk tzdata make \
librrds-perl g++ php-cli php-gd libapache2-mod-php snmp-mibs-downloader && \
apt-get clean && rm -Rf /var/lib/apt/lists/*
RUN ( egrep -i "^${NAGIOS_GROUP}" /etc/group || groupadd $NAGIOS_GROUP ) && \
( egrep -i "^${NAGIOS_CMDGROUP}" /etc/group || groupadd $NAGIOS_CMDGROUP ) &&\
RUN ( id -u $NAGIOS_USER || useradd --system -d $NAGIOS_HOME -g $NAGIOS_GROUP $NAGIOS_USER ) && \
( id -u $NAGIOS_CMDUSER || useradd --system -d $NAGIOS_HOME -g $NAGIOS_CMDGROUP $NAGIOS_CMDUSER )
RUN cd /tmp && \ git clone https://github.com/multiplay/qstat.git && \ cd qstat && \
./autogen.sh && \
./configure && \
make && make install && make clean && cd /tmp && rm -Rf qstat && \
RUN cd /tmp && \
git clone https://github.com/NagiosEnterprises/nagioscore.git -b $NAGIOS_BRANCH && \
cd nagioscore && \
./configure --prefix=${NAGIOS_HOME} --exec-prefix=${NAGIOS_HOME} --enable-event-broker --with-command-user=${NAGIOS_CMDUSER} \
--with-command-group=${NAGIOS_CMDGROUP} --with-nagios-user=${NAGIOS_USER} --with-nagios-group=${NAGIOS_GROUP} && \
make all && make install && make install-config && make install-commandmode && make install-webconf && make clean && \
cd /tmp && rm -Rf nagioscore && \
RUN cd /tmp && \
git clone https://github.com/nagios-plugins/nagios-plugins.git -b $NAGIOS_PLUGINS_BRANCH && \
cd nagios-plugins && \
./tools/setup && \
./configure --prefix=${NAGIOS_HOME} --with-ipv6 --with-ping6-command="/bin/ping6 -n -U -W %d -c %d %s" &&\
make && make install && make clean && \
mkdir -p /usr/lib/nagios/plugins && \
ln -sf ${NAGIOS_HOME}/libexec/utils.pm /usr/lib/nagios/plugins && \
cd /tmp && rm -Rf nagios-plugins
RUN wget -O ${NAGIOS_HOME}/libexec/check_ncpa.py https://raw.githubusercontent.com/NagiosEnterprises/ncpa/v2.0.5/client/check_ncpa.py && \
chmod +x ${NAGIOS_HOME}/libexec/check_ncpa.py &&\
RUN cd /tmp && \
git clone https://github.com/NagiosEnterprises/nrpe.git -b $NRPE_BRANCH && \
cd nrpe && \
./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu && \
make check_nrpe && cp src/check_nrpe ${NAGIOS_HOME}/libexec/ && make clean && cd /tmp && rm -Rf nrpe &&\
RUN cd /tmp && \
wget http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.24.tar.gz && \
tar -xzvf pnp4nagios-0.6.24.tar.gz && \
cd pnp4nagios-0.6.24 && \
./configure --with-httpd-conf=/etc/apache2/sites-enabled --with-nagios-user=nagios --with-nagios-group=nagios && \
make all && make install && make install-webconf && make install-config && make install-init && make clean && cd /tmp && rm -Rf pnp4nagios-0.6.24 && \
RUN cd /opt && \
pip install pymssql && \
git clone https://github.com/willixix/naglio-plugins.git WL-Nagios-Plugins && \
git clone https://github.com/JasonRivers/nagios-plugins.git JR-Nagios-Plugins && \
git clone https://github.com/justintime/nagios-plugins.git JE-Nagios-Plugins && \
git clone https://github.com/nagiosenterprises/check_mssql_collection.git nagios-mssql && \
chmod +x /opt/WL-Nagios-Plugins/check* && chmod +x /opt/JE-Nagios-Plugins/check_mem/check_mem.pl && \
cp /opt/JE-Nagios-Plugins/check_mem/check_mem.pl ${NAGIOS_HOME}/libexec/ && \
cp /opt/nagios-mssql/check_mssql_database.py ${NAGIOS_HOME}/libexec/ && \
cp /opt/nagios-mssql/check_mssql_server.py ${NAGIOS_HOME}/libexec/ && sed -i.bak 's/.*\=www\-data//g' /etc/apache2/envvars
RUN export DOC_ROOT="DocumentRoot $(echo $NAGIOS_HOME/share)" && \
sed -i "s,DocumentRoot.*,$DOC_ROOT," /etc/apache2/sites-enabled/000-default.conf && \
sed -i "s,</VirtualHost>,<IfDefine ENABLE_USR_LIB_CGI_BIN>\nScriptAlias /cgi-bin/ ${NAGIOS_HOME}/sbin/\n</IfDefine>\n</VirtualHost>," /etc/apache2/sites-enabled/000-default.conf && ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
RUN mkdir -p -m 0755 /usr/share/snmp/mibs && \
mkdir -p ${NAGIOS_HOME}/etc/conf.d && \
mkdir -p ${NAGIOS_HOME}/etc/monitor && \
mkdir -p -m 700 ${NAGIOS_HOME}/.ssh && \
chown ${NAGIOS_USER}:${NAGIOS_GROUP} ${NAGIOS_HOME}/.ssh && \
touch /usr/share/snmp/mibs/.foo && \
ln -s /usr/share/snmp/mibs ${NAGIOS_HOME}/libexec/mibs && \
ln -s ${NAGIOS_HOME}/bin/nagios /usr/local/bin/nagios && \
download-mibs && echo "mibs +ALL" > /etc/snmp/snmp.conf
RUN sed -i 's,/bin/mail,/usr/bin/mail,' ${NAGIOS_HOME}/etc/objects/commands.cfg && \
sed -i 's,/usr/usr,/usr,' ${NAGIOS_HOME}/etc/objects/commands.cfg
RUN cp /etc/services /var/spool/postfix/etc/ && \
echo "smtp_address_preference = ipv4" >> /etc/postfix/main.cf
RUN rm -rf /etc/rsyslog.d /etc/rsyslog.conf && rm -rf /etc/sv/getty-5
ADD overlay /
RUN echo "use_timezone=${NAGIOS_TIMEZONE}" >> ${NAGIOS_HOME}/etc/nagios.cfg && mkdir -p /orig/var && mkdir -p /orig/etc && \
cp -Rp ${NAGIOS_HOME}/var/* /orig/var/ && cp -Rp ${NAGIOS_HOME}/etc/* /orig/etc/
RUN a2enmod session && a2enmod session_cookie && a2enmod session_crypto && a2enmod auth_form && a2enmod request
RUN chmod +x /usr/local/bin/start_nagios && chmod +x /etc/sv/apache/run && chmod +x /etc/sv/nagios/run && chmod +x /etc/sv/postfix/run && \
chmod +x /etc/sv/rsyslog/run && chmod +x /opt/nagiosgraph/etc/fix-nagiosgraph-multiple-selection.sh
RUN cd /opt/nagiosgraph/etc && sh fix-nagiosgraph-multiple-selection.sh && rm /opt/nagiosgraph/etc/fix-nagiosgraph-multiple-selection.sh
# enable all runit services
RUN ln -s /etc/sv/* /etc/service
ENV APACHE_LOCK_DIR /var/run
ENV APACHE_LOG_DIR /var/log/apache2
#Set ServerName and timezone for Apache
RUN echo "ServerName ${NAGIOS_FQDN}" > /etc/apache2/conf-available/servername.conf && echo "PassEnv TZ" > /etc/apache2/conf-available/timezone.conf && \
ln -s /etc/apache2/conf-available/servername.conf /etc/apache2/conf-enabled/servername.conf && \
ln -s /etc/apache2/conf-available/timezone.conf /etc/apache2/conf-enabled/timezone.conf
EXPOSE 80
VOLUME "${NAGIOS_HOME}/var" "${NAGIOS_HOME}/etc" "/var/log/apache2" "/opt/Custom-Nagios-Plugins" "/opt/nagiosgraph/var" "/opt/nagiosgraph/etc"
CMD [ "/usr/local/bin/start_nagios" ]
Content type
Image
Digest
Size
410.7 MB
Last updated
over 5 years ago
docker pull cpginfo/nagios:2.6