从网上随便找了几个image,都是从svn下载的代码,根本跑不了,于是自己重新做了个,从git上拿的源码,只是build出来的image有点大,有时间再优化了

Dockerfile

FROM centos:centos7
MAINTAINER Ryan sun.ryan@acxiom.com ENV ZABBIX_VERSION=3.0.1 \
ZABBIX_SERVER=127.0.0.1 \
ZABBIX_SOURCE=zabbix-agent.${ZABBIX_VERSION}.tar.gz \
HOSTNAME=zabbix.agent \
HOST_METADATA=zabbix.agent \
CONFIG_FILE=/usr/local/etc/zabbix_agentd.conf RUN \
yum clean all && yum makecache && \
yum install --nogpgcheck -y automake gcc make iproute ADD ./${ZABBIX_SOURCE} /usr/local/src/ WORKDIR /usr/local/src RUN \
cd ./zabbix && \
./bootstrap.sh && \
./configure --enable-agent && \
make install RUN \
rpm -e --nodeps make gcc && \
yum remove -y automake && \
useradd -G wheel zabbix && \
rm -rf /usr/local/src/zabbix && \
yum clean all COPY ./bootstrap.sh / RUN \
chown -R zabbix:wheel /usr/local/etc/ USER zabbix EXPOSE 10050 ENTRYPOINT ["/bootstrap.sh"]

bootstrap.sh

#!/bin/sh
set -eu
export TERM=xterm # Bash Colors
red=`tput setaf 1`
green=`tput setaf 2`
yellow=`tput setaf 3`
white=`tput setaf 7`
bold=`tput bold`
reset=`tput sgr0`
separator=$(echo && printf '=%.0s' {1..100} && echo)
# Logging Finctions
log() {
if [[ "$@" ]]; then echo "${bold}${green}[LOG `date +'%T'`]${reset} $@"; else echo; fi
} ### Update config file based on environment variables
update_config() {
log "Updating configuration file..."
if [ ! -z "$ZABBIX_SERVER" ]; then
log "Changing Zabbix Server IP to ${bold}${white}${ZABBIX_SERVER}${reset}"
sed -i 's/^[# ]*Server=.*$/Server='$ZABBIX_SERVER'/g' ${TARGET_CONFIG_FILE}
fi
if [ ! -z "$HOSTNAME" ]; then
log "Changing Zabbix Hostname to ${bold}${white}${HOSTNAME}${reset}."
sed -i 's/^[# ]*Hostname=.*$/Hostname='$HOSTNAME'/g' ${TARGET_CONFIG_FILE}
fi
if [ ! -z "$HOST_METADATA" ]; then
log "Changing Zabbix Host Metadata to ${bold}${white}${HOST_METADATA}${reset}."
sed -i 's/^[# ]*HostMetadata=.*$/HostMetadata='$HOST_METADATA'/g' ${TARGET_CONFIG_FILE}
fi
log "Config updated"
}
print_config() {
log "Current Zabbix Agent config:"
printf '=%.0s' {1..100} && echo
cat ${TARGET_CONFIG_FILE}
echo ""
printf '=%.0s' {1..100} && echo
}
start() {
log "Starting Zabbix Agent using configuration file: ${TARGET_CONFIG_FILE}"
print_config
zabbix_agentd -f -c ${TARGET_CONFIG_FILE}
} # Use the default config file if not set by an environment variable
if [ -z "$CONFIG_FILE" ]; then
SRC_CONFIG_FILE="/usr/local/etc/zabbix_agentd.conf"
else
SRC_CONFIG_FILE="$CONFIG_FILE"
fi # This is the actual config file used, containing changes implied by environment variables
TARGET_CONFIG_FILE=$(mktemp)
log "Loading config: ${SRC_CONFIG_FILE}"
cp "$SRC_CONFIG_FILE" "$TARGET_CONFIG_FILE" update_config
start

  

  

从git源码安装zabbix-agent的更多相关文章

  1. 源码安装zabbix

    源码安装zabbix 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.     欢迎加入:高级运维工程师之路 598432640 前言:参考网上多篇源码安装的连接,自己把安装过程丢在这 ...

  2. 以源码安装的lamp环境为依托,源码安装zabbix监控系统

    1.源码安装lamp环境 1)安装httpd, 以源码httpd-2.4.33为基础,解压后,执行./configure --prefix=/usr/local/ --sysconfdir=/etc/ ...

  3. CentOS Linux release 7.3源码安装zabbix

    CentOS Linux release 7.3安装zabbix 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 我去年用用centos6的环境搭建了一下 zabbix3.0 ...

  4. CentOS 7 源码安装 Zabbix 6.0

    Zabbix 主要有以下几个组件组成: Zabbix Server:Zabbix 服务端,是 Zabbix 的核心组件.它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中. Zabbix ...

  5. Git源码安装

    系统自带yum安装的git版本较老,需要安装最新版本可以使用源码安装 下载最新安装包,下载地址https://github.com/git/git/releases 安装依赖包 yum install ...

  6. CentOS 6.5 Git源码安装

    首先清除系统自带git,使用如下命令 yum -y remove git 一.下载Git源码包 wget https://www.kernel.org/pub/software/scm/git/git ...

  7. git 源码安装后报错/usr/bin/git: No such file or directory

    现象 今天源码安装一个git后,执行git命令后报如下错误: $ git --version -bash: /usr/bin/git: No such file or directory 分析过程 开 ...

  8. CentOS6源码安装zabbix服务器

    1.下载安装包并解压 2.预环境搭建 3.创建zabbix用户,编译安装zabbix 4.配置mysql 5.配置zabbix-server 6.配置apache和php 7.添加开机自启动 1 yu ...

  9. Git源码安装 Linux指定安装目录

    1.安装依赖包 $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 2.下载最新版源码包https: ...

随机推荐

  1. js原生_获取url键值对

    思路: 1.先对url进行处理,获取 ?后的字符串 postid=10457794&actiontip=保存修改成功') 2. 字符串通过&标识,不同参数转为数组 ["pos ...

  2. mybatis学习笔记之基础框架(2)

    mybatis学习笔记之基础框架(2) mybatis是一个持久层的框架,是apache下的顶级项目. mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足s ...

  3. 关于VS 2013连接Microsoft Access 2013的相关问题

      ①   下载安装Microsoft Access Database Engine 2010 Redistributable(28MB),共有32bit(下载)和64bit(下载)两个版本,具体要安 ...

  4. 多项式拟合的cpp实现

    当我们拥有一组散点图数据时,通常更愿意看到其走势. 对现有数据进行拟合,并输出拟合优度是常用的方法之一. 拟合结果正确性的验证,可以使用excel自带的功能. 下面是c++代码的实现: #ifndef ...

  5. logging模块、shutil模块、subprocess模块、xml模块

    logging模块 shutil模块 subprocess模块 xml模块 logging模块 函数式简单配置 import logging logging.debug('debug message' ...

  6. 洛谷P3275 [SCOI2011]糖果_差分约束_判负环

    Code: #include<cstdio> #include<queue> #include<algorithm> using namespace std; co ...

  7. ajax异步上传文件和表单同步上传文件 的区别

    1. 用表单上传文件(以照片为例)-同步上传 html部分代码:这里请求地址index.php <!DOCTYPE html> <html lang="en"&g ...

  8. [noip2011 luogu1312] Mayan游戏(模拟)

    原题:传送门 大模拟- 两个剪枝: 1.如果左边不为空就不往左边走(因为一定不如左边的移到右边优) 2.如果相邻两颜色相同不需移动 当然也有别的小剪枝(我没写)比如如果当前某一颜色剩余块数满足1< ...

  9. CentOS 笔记(三) 目录结构

    理解CentOS 目录结构 首次登录进入,应该是进入了,run文件夹 通过  cd  ../ 进入了,最根节点 通过 ls  显示全部文件夹 通过 pwd 查看当前目录 参考: https://www ...

  10. java的数据的类型

    1分类: 基本数据类型长度: Java中简单类型,占用字节数, 以及包装类 浮点数的默认类型是Double(8个字节) 如果想直接想一个变量赋值一个float(4个字节)要在数值后面添加f/F 如同向 ...