centos上docker部署zabbix
环境
centos7,docker,zabbix-server5.4,zabbix-agent4.0
一、zabbix-server
1. 安装mysql
docker run --name mysql-server -t \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="4242587f*" \ -e MYSQL_ROOT_PASSWORD="4242587ff*" \ -d mysql:5.7 \ --character-set-server=utf8 --collation-server=utf8_bin
2. 安装java监控
docker run --name zabbix-java-gateway -t \ -d zabbix/zabbix-java-gateway:latest
3. 安装zabbix-server(内核centos版)
docker pull zabbix/zabbix-server-mysql:centos-latest # 拉取centos版镜像
docker run --privileged=true -v /home/zabbix-server:/etc/zabbix -v /usr/lib/zabbix/alertscripts:/home/alertscripts --name zabbix-server-mysql -t \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="4242587f*" \ -e MYSQL_ROOT_PASSWORD="4242587ff*" \ -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \ --link mysql-server:mysql \ --link zabbix-java-gateway:zabbix-java-gateway \ -p 10051:10051 \ -d zabbix/zabbix-server-mysql:centos-latest
**ps:第一个-v对应配置文件,本地需要提前创建好目录和放好zabbix_server.conf;第二个-v为脚本放置位置与本机映射。如果不进行挂载映射启动,则修改配置文件会比较麻烦。
3.1 安装python环境(可选)
# 以root进入docker容器 docker exec -it --user root docker容器id /bin/bash # 1.安装相应的编译工具 yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel ================= # 如果报错找不到db4-devel需要执行以下语句 是因为centos8的缘故 dnf localinstall https://pkgs.dyn.su/el8/base/x86_64/raven-release-1.0-2.el8.noarch.rpm # 如果报错找不到libpcap-devel dnf --enablerepo=powertools install libpcap-devel ================= # 继续安装python依赖 yum install -y libffi-devel zlib-devel # centos安装wget yum -y install wget # 2.下载安装包 wget wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz # 3.解压 tar -xvJf Python-3.7.2.tar.xz # 4.创建编译安装目录 mkdir /usr/local/python3 # 5.安装 cd Python-3.7.2 ./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl #第一个指定安装的路径,不指定的话,安装过程中可能软件所需要的文件复制到其他不同目录,删除软件很不方便,复制软件也不方便. #第二个可以提高python10%-20%代码运行速度. #第三个是为了安装pip需要用到ssl,后面报错会有提到. make && install # 6.创建软链接 ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3 # 7.验证是否成功 python3 -V pip3 -V # 将py脚本放入zabbix脚本目录下 grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf # 上句话的输出 AlertScriptsPath=/usr/lib/zabbix/alertscripts # 所有脚本存放的地方
4. 安装zabbix-nginx
docker run --name zabbix-web-nginx-mysql -t \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="4242587f*" \ -e MYSQL_ROOT_PASSWORD="4242587ff*" \ --link mysql-server:mysql \ --link zabbix-server-mysql:zabbix-server \ -p 8088:8080 \ -d zabbix/zabbix-web-nginx-mysql:latest
ps:注意docker的nginx镜像里面配置默认为8080端口,所以从8080端口映射到本机。
二、zabbix-agent
1. 普通安装
- 添加源
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
- 安装
yum install zabbix-agent
- 启动
systemctl start zabbix-agent
ps:配置文件路径一般在/etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1 # zabbix-server 地址 ServerActive=127.0.0.1 # zabbix-server 地址 Hostname=Zabbix server # 在zabbix-server面板里添加的主机名,需要对应。
2. docker安装zabbix-agent
- 安装
docker run --name zabbix-agent --privileged=true \ -e ZBX_HOSTNAME="agent的名称" \ -e ZBX_SERVER_HOST="zabbix-server的地址" \ -p 10050:10050 \ --restart unless-stopped \ -d zabbix/zabbix-agent:latest
ps:从docker安装的,配置文件都需要进到容器里查看。
三、注意事项
1. server与agent通信
有2种方式
- docker安装的server与agent,想要监控本机,本机的agent配置需要加上公网ip和docker内网ip。server的面板里则需要使用公网ip,不可使用127.0.0.1。
- 搭建之前先创建docker网络,把2个容器都加入到docker网络里面
以下是不在一个docker网络的agent安装示例:
docker run --name zabbix-agent --privileged=true \ -e ZBX_HOSTNAME="Zabbix server" \ -e ZBX_SERVER_HOST="公网ip,docker内网ip" \ -p 10050:10050 \ --restart unless-stopped \ -d zabbix/zabbix-agent:latest
2. docker日志
1> 找出docker container日志文件所在的路径
docker inspect --format='{{.LogPath}}' <container_name_or_id>
2>删除或者清空日志文件内容
echo |sudo tee $(docker inspect --format='{{.LogPath}}' <container_name_or_id>)
3>查看日志
docker logs -f <container_name_or_id>