从git源码安装zabbix-agent
从网上随便找了几个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的更多相关文章
- 源码安装zabbix
源码安装zabbix 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入:高级运维工程师之路 598432640 前言:参考网上多篇源码安装的连接,自己把安装过程丢在这 ...
- 以源码安装的lamp环境为依托,源码安装zabbix监控系统
1.源码安装lamp环境 1)安装httpd, 以源码httpd-2.4.33为基础,解压后,执行./configure --prefix=/usr/local/ --sysconfdir=/etc/ ...
- CentOS Linux release 7.3源码安装zabbix
CentOS Linux release 7.3安装zabbix 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 我去年用用centos6的环境搭建了一下 zabbix3.0 ...
- CentOS 7 源码安装 Zabbix 6.0
Zabbix 主要有以下几个组件组成: Zabbix Server:Zabbix 服务端,是 Zabbix 的核心组件.它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中. Zabbix ...
- Git源码安装
系统自带yum安装的git版本较老,需要安装最新版本可以使用源码安装 下载最新安装包,下载地址https://github.com/git/git/releases 安装依赖包 yum install ...
- CentOS 6.5 Git源码安装
首先清除系统自带git,使用如下命令 yum -y remove git 一.下载Git源码包 wget https://www.kernel.org/pub/software/scm/git/git ...
- git 源码安装后报错/usr/bin/git: No such file or directory
现象 今天源码安装一个git后,执行git命令后报如下错误: $ git --version -bash: /usr/bin/git: No such file or directory 分析过程 开 ...
- CentOS6源码安装zabbix服务器
1.下载安装包并解压 2.预环境搭建 3.创建zabbix用户,编译安装zabbix 4.配置mysql 5.配置zabbix-server 6.配置apache和php 7.添加开机自启动 1 yu ...
- Git源码安装 Linux指定安装目录
1.安装依赖包 $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 2.下载最新版源码包https: ...
随机推荐
- nfs server and client
系统环境:Centos7.3 ip1:10.0.0.1 ip2:10.0.0.2 检测是否安装NFS服务 rpm -qa | grep nfs rpm -qa|grep nfs 安装NFS ...
- 百度地图api的简单应用
百度地图api 获取经纬度(通过浏览器的) //获取经纬度 window.navigator.geolocation.getCurrentPosition(function(position) { a ...
- hdu3416 Marriage Match IV 最短路+ 最大流
此题的大意:给定一幅有向图,求起点到终点(都是固定的)的不同的最短路有多少条.不同的最短路是说不能有相同的边,顶点可以重复.并且图含有平行边. 看了题以后,就想到暴力,但是暴力往往是不可取的.(暴力的 ...
- 二.Windows I/O模型之异步选择(WSAAsyncSelect)模型
1.基于windows消息为基础的网络事件io模型.因此我们必须要在窗口程序中使用该模型.该模型中的核心是调用WSAAsyncSelect函数实现异步I/O. 2.WSAAsyncSelect函数:注 ...
- 将自己的类封装为lib的方法
前言: Windows API中所有的函数都包含在dll中,其中有3个最重要的DLL. (1) Kernel32.dll 它包含那些用于管理内存.进程和线程的函数,例如CreateThread函数 ...
- SQL数据查询2
USE h CREATE TABLE zy1( empno INT, ename ), job ), mgr INT, hiredate DATE, sal DOUBLE, COOM DOUBLE, ...
- Linux搭建Jenkins
1.添加存储库 yum的repo中默认没有Jenkins,需要先将Jenkins存储库添加到yum repos,执行下面的命令: 使用wget -O下载并以不同的文件名保存 [root@besttes ...
- Cocos2d切换场景出现的问题-error C2653: “***”不是类或命名空间名称
1,在开头引入头文件 2,在要引入的头文件中,去除以下代码: #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #endif ...
- 如何在GitHub部署自己的个人网站
前段时间在B站学习了怎样做一个静态网页(up主是 表严肃 ),朋友问我他能不能访问我的这个静态网页,我说还没把它挂到网上.今天看见一篇文章说可以在GitHub部署自己的个人网站,心血来潮,想做一个玩 ...
- Ubuntu16.04编译cmake源码
编译版本:cmake-3.8.0-rc2 为了能够编译出ccmake和cmake-gui,首先需要安装libncurses5-dev sudo apt install libncurses5-dev ...