Dockerfile构建安装zabbix

docker-commpose传送门: zbx_server || zbx_web || zbx_mysq || zbx_gateway.


使用特权模式启动一个centos容器

FROM centos:centos7.9.2009
WORKDIR /root/
RUN rm -f /etc/yum.repos.d/*
ADD ./CentOS-Base.repo /etc/yum.repos.d/
ADD ./sql /root/
ADD ./simkai.ttf /root/
RUN yum clean all \
    && yum makecache \
    && yum install wget less curl gcc gcc-c++ vim  kde-l10n-Chinese net-tools -y

RUN yum reinstall glibc-common -y
RUN echo " LANG=zh_CN.UTF-8" > /etc/locale.conf && echo "LANG=zh_CN.UTF-8" >> /etc/environment  \
    && echo "LC_ALL=" >> /etc/environment
CMD ["source", "/etc/environment"]
CMD ["localedef", "-v", "-c", "-i", "zh_CN", "-f", "UTF-8", "zh_CN.UTF-8"]

[root@zabbix centos]# docker build . -t harbor.od.com/public/centos7:latest
 docker run -itd --name centos --privileged=true -p 777:777 centos7:latest /usr/sbin/init

安装zabbix仓库

[root@0e5c10ce59d6 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@0e5c10ce59d6 ~]# yum clean all

安装server和agent

[root@0e5c10ce59d6 ~]# yum install zabbix-server-mysql zabbix-agent -y

安装 Software Collections,便于后续安装插件

[root@0e5c10ce59d6 ~]# yum install centos-release-scl -y

修改仓库为enable

[root@0e5c10ce59d6 yum.repos.d]# vi zabbix.repo 
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1

下载前端插件 php等

 [root@0e5c10ce59d6 ~]# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

下载数据库

[root@0e5c10ce59d6 ~]# yum install mariadb mariadb-server -y
[root@0e5c10ce59d6 ~]# systemctl enable mariadb 
[root@51b54d60dff6 ~]# vi /etc/my.cnf
port=13306

初始化数据库

[root@51b54d60dff6 ~]# mysql_secure_installation

Set root password? [Y/n] Y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

Remove anonymous users? [Y/n] Y
 ... Success!

Disallow root login remotely? [Y/n] Y
 ... Success!

Remove test database and access to it? [Y/n] 
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] 
 ... Success!

Cleaning up...
Thanks for using MariaDB!

创建zabbix库和用户并授权

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create user zabbix@localhost identified by 'linux';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.00 sec)

初始化zabbix库,导入sql

[root@0e5c10ce59d6 ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

容器centos没找到sql压缩包,使用源码包sql导入
MariaDB [zabbix]> use zabbix;
MariaDB [(none)]> source /root/schema.sql
MariaDB [(none)]> source /root/images.sql
MariaDB [(none)]> source /root/data.sql

修改php时区

[root@51b54d60dff6 ~]# vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai

修改主zabbix配置文件

[root@51b54d60dff6 ~]# vim /etc/zabbix/zabbix_server.conf
DBPassword=password
ListenPort=10040 因为宿主机已使用

启动服务

[root@51b54d60dff6 ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@51b54d60dff6 ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

构建新镜像

停止
[root@zabbix ~]# docker stop centos
centos
打包
[root@zabbix ~]# docker commit centos centos:v1
启动新镜像
[root@zabbix ~]# docker run -itd --name centos-1 --privileged=true -p 10040:10040 -p 10041:10041 -p 777:777 centos:v1 /usr/sbin/init
10041 zabbix-server
10040 zabbix-agent
777   httpd
13306 mariadb
username/password Admin/zabbix

配置中文

[root@e148c0d2458d ~]# cd /usr/share/zabbix/assets/fonts
[root@e148c0d2458d fonts]# mv graphfont.ttf graphfont.ttf.back
[root@e148c0d2458d fonts]# ln -s /root/simkai.ttf /usr/share/zabbix/assets/fonts/graphfont.ttf
[root@e148c0d2458d fonts]# ll
lrwxrwxrwx 1 root root 16 Sep 26 07:14 graphfont.ttf -> /root/simkai.ttf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值