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. 普通安装

  1. 添加源
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
  1. 安装
yum install zabbix-agent
  1. 启动
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

  1. 安装
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>

posted @ 2021-12-14 09:51  桜満三葉  阅读(499)  评论(0编辑  收藏  举报