问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于Docker部署Zabbix 5.0监控系统

创作时间:
作者:
@小白创作中心

基于Docker部署Zabbix 5.0监控系统

引用
CSDN
1.
https://m.blog.csdn.net/qq_41172950/article/details/142138395

本文将详细介绍如何使用Docker部署Zabbix 5.0监控系统。通过Docker容器化部署,可以快速搭建一个完整的Zabbix监控环境,包括MySQL数据库、Zabbix Server、Web界面和Agent组件。

一、启动一个空的Mysql服务器实例

docker run --name zbx5-mysql -d \
    --network=host \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix" \
    -e MYSQL_ROOT_PASSWORD="Hqkj2012_" \
    --restart unless-stopped mysql:5.7 \
    --character-set-server=utf8 --collation-server=utf8_bin \
    --default-authentication-plugin=mysql_native_password

二、启动Zabbix server实例,并关联这个实例到已创建的MySQL服务器实例

docker run --name zbx5-server-mysql -d \
    -e DB_SERVER_HOST="127.0.0.1" \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix" \
    -e MYSQL_ROOT_PASSWORD="Hqkj2012_" \
    --network=host \
    --restart unless-stopped \
    zabbix/zabbix-server-mysql:5.0-centos-latest

三、 启动Zabbix web 接口,并将它与MySQL服务器实例和Zabbix server实例关联

docker run --name zbx5-web-nginx-mysql -d \
    -e ZBX_SERVER_HOST="192.168.0.10" \    ##宿主机IP
    -e DB_SERVER_HOST="192.168.0.10" \     ##宿主机IP
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix" \
    -e MYSQL_ROOT_PASSWORD="Hqkj2012_" \
    -p 7070:8080 \
    --restart unless-stopped \
    zabbix/zabbix-web-nginx-mysql:5.0-centos-latest

四、 启动本机Agent

docker run --name zbx5-agent -d \
    -e ZBX_HOSTNAME="local-agent" \
    -e ZBX_SERVER_HOST="127.0.0.1"  \
    --network=host \
    --restart unless-stopped \
    zabbix/zabbix-agent:5.0-centos-latest

五、 docker ps -a 查询容器运行情况

六、 登录zabbix

默认用户名/密码是:Admin/zabbix

七、 客户端Agent配置

root@stroreroom4 ~]#  cat > /etc/yum.repos.d/zabbix.repo <<EOF
[zabbix]
name= zabbix
baseurl=http://mirrors.bclinux.org/zabbix/zabbix/5.0/rhel/7/x86_64/
gpgcheck=0
enabled=1
EOF
[root@stroreroom4 ~]#  systemctl start zabbix-agent.service
[root@stroreroom4 ~]#  systemctl restart zabbix-agent.service
[root@stroreroom4 ~]#  vim /etc/zabbix/zabbix_agentd.conf

八、 监控Mysql

1、新mysql监控帐号
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Hqkj2012-';
GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
2、查看mysql的sock文件路径
[root@stroreroom5 /etc/zabbix/zabbix_agentd.d]#  find / -name mysql.sock
/opt/mas/mysql/mysql.sock
3、复制Zabbix监控Mysql模板文件
[root@stroreroom5 /etc/zabbix/zabbix_agentd.d]#  cp /usr/share/doc/zabbix-agent-5.0.43/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d
[root@stroreroom5 /etc/zabbix/zabbix_agentd.d]#  ls
userparameter_mysql.conf
4、设置模板归属
[root@stroreroom5 /etc/zabbix/zabbix_agentd.d]#  chown -R zabbix:zabbix /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 
[root@stroreroom5 /etc/zabbix/zabbix_agentd.d]#  ll
total 4
-rw-r--r-- 1 zabbix zabbix 1118 Sep 14 10:23 userparameter_mysql.conf
[root@stroreroom5 /etc/zabbix/zabbix_agentd.d]#  
5、修改模板文件(指定mysqladmin路径)
#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default) 
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in %WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-files.html
#The file must have three strings:
#[client]
#user=zbx_monitor
#password=<password>
#
UserParameter=mysql.ping[*],/opt/mas/mysql/bin/mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], /opt/mas/mysql/bin/mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
6、在/var/lib/zabbix目录下创建.my.cnf配置文件
[root@stroreroom5 /etc/zabbix]#  mkdir /var/lib/zabbix
[root@stroreroom5 /etc/zabbix]#  cd /var/lib/zabbix/
[root@stroreroom5 /var/lib/zabbix]#  ll -lsa
total 12
4 drwxr-xr-x   2 root root 4096 Sep 14 09:52 .
4 drwxr-xr-x. 32 root root 4096 Sep 14 09:33 ..
4 -rw-r--r--   1 root root  271 Sep 14 09:52 .my.cnf
 
[root@stroreroom5 /var/lib/zabbix]#  vim var/lib/zabbix/.my.cnf 
[mysql]
host=localhost
user=zabbix
password=Hqkj2012-
socket=/opt/mas/mysql/mysql.sock
[client]
host=localhost
user=zabbix
password=Hqkj2012-
socket=/opt/mas/mysql/mysql.sock
[mysqladmin]
host=localhost
user=zabbix
password=Hqkj2012-
socket=/opt/mas/mysql/mysql.sock
7、重启zabbix-agent
[root@stroreroom5 /var/lib/zabbix]#  systemctl restart zabbix-agent

九、 Zabbix-server Web端配置

配置–主机-模板
Template DB MySQL
页面展示,监控服时间与本地不一致问题
root@gejie-10 ~]# docker ps -a
##进入zabbix/zabbix-web-nginx-mysql的配置文件
docker exec -it 5eb6704a21c9 /bin/bash
##修改配置文件
vim /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号