Docker容器之zabbix镜像制作

基础镜像为:192.168.1.200:5000/nginx_php:1.12.2
制作方式可参考:
nginx镜像:https://blog.csdn.net/anqixiang/article/details/92807440
php镜像:https://blog.csdn.net/anqixiang/article/details/94144452

Dockerfile文件

FROM 192.168.1.200:5000/nginx_php:1.12.2
#定义软件版本及编译工具变量
ENV Zabbix_Version 3.4.4
ENV Build_Tools  zabbix-server zabbix-server-mysql zabbix-web zabbix-agent zabbix-sender zabbix-get zabbix-web-mysql 
COPY  *.repo  /root/
COPY *.sh /root/
VOLUME /etc/zabbix
WORKDIR /etc/zabbix
RUN rm -rf /etc/yum.repos.d/* && mv /root/*.repo /etc/yum.repos.d \
       && groupadd zabbix && useradd -g zabbix zabbix  && chmod 777 /root/*.sh \
	   && rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm \
	   && yum -y install ${Build_Tools}  &&  yum clean all
	   	   
EXPOSE 10050 10051
HEALTHCHECK --interval=10s --timeout=3s --retries=3 CMD /bin/bash /root/health.sh
CMD ["/usr/bin/bash", "/root/start.sh"]

启动脚本(安装中文环境)

#!/bin/bash
#安装中文
Install_Zh(){
	Language=`echo $LANG`
	if  [ "Language" != "zh_CN.UTF-8" ];then
		yum -y install kde-l10n-Chinese && yum -y reinstall glibc-common
		echo "LANG=zh_CN.UTF-8" > /etc/locale.conf
		> /etc/environment
		cat >> /etc/environment << EOF
LANG=zh_CN.UTF-8
LC_ALL=
EOF		
		source /etc/environment  
	fi
}

/usr/sbin/php-fpm --nodaemonize &
/usr/sbin/sshd -D &
while :
	do
		Install_Zh
		ss -nutlp |grep :10050
		[ "$?" -ne 0 ] &&  	/usr/sbin/zabbix_server
		ss -nutlp |grep :10051
		[ "$?" -ne 0 ] &&  	/usr/sbin/zabbix_agentd
		ss -nutlp |grep :80
		[ "$?" -ne 0 ] &&  	/usr/local/nginx/sbin/nginx -g 'daemon off;'				
		sleep 5
	done

健康监测脚本

#!/bin/bash
curl localhost/test.php &>/dev/null || exit 1
ss -nutlp |grep :10050 &>/dev/null ||  exit 1
exit 0

配置文件

php配置文件:/etc/php.ini

date.timezone = Asia/Shanghai				//设置时区
max_execution_time = 300					//最大执行时间,秒
post_max_size = 32M							//POST数据最大容量
max_input_time = 300						//服务器接收数据的时间限制
memory_limit = 128M							//内存容量限制

nginx配置文件:

http{
… …
	fastcgi_buffers 8 16k;	      				//缓存php生成的页面内容,8个16k
	fastcgi_buffer_size 32k;	      			//缓存php生产的头部信息
	fastcgi_connect_timeout 300;     			//连接PHP的超时时间
	fastcgi_send_timeout 300;	     			//发送请求的超时时间
	fastcgi_read_timeout 300;	    				//读取请求的超时时间
location ~ \.php$ {
           	 root           html;
           	 fastcgi_pass   127.0.0.1:9000;
           	 fastcgi_index  index.php;
           	 include        fastcgi.conf;
        }

zabbix_server.conf

DBHost=localhost
//数据库主机,默认该行被注释
DBName=zabbix
//设置数据库名称
DBUser=zabbix
//设置数据库账户
DBPassword=zabbix
//设置数据库密码,默认该行被注释
LogFile=/tmp/zabbix_server.log

zabbix_agentd.conf

Server=127.0.0.1,192.168.2.5					//允许哪些主机监控本机
ServerActive=127.0.0.1,192.168.2.5				//允许哪些主机通过主动模式监控本机
Hostname=zabbix_server							//设置本机主机名
LogFile=/tmp/zabbix_server.log					//设置日志文件
UnsafeUserParameters=1							//是否允许自定义key

运行容器

docker run -itd --net docker01 --ip 10.10.10.40 -p 80:80 -p 10051:10051 --name zabbix -h zabbix \
--restart=always --restart=on-failure:5 -v /docker_data/zabbix/webroot:/usr/local/nginx \
 -v /docker_data/zabbix/php.ini:/etc/php.ini  -v /docker_data/zabbix/zabbix_conf:/etc/zabbix \
-v /etc/localtime:/etc/localtime zabbix:3.4.4

注意事项

localedef -v -c -i zh_CN -f UTF-8 zh_CN.UTF-8需在容器运行后手动执行,方可支持中文环境

你可能感兴趣的:(Docker)