借鉴博客:
https://www.cnblogs.com/ivictor/p/16025786.html一.部署mysql 依赖docker + docker-compose
##官网安装docker https://docs.docker.com/engine/install/centos/ ##Github安装docker-compose sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose ##若是github访问太慢,可以用daocloud下载 sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose ##添加执行权限 sudo chmod +x /usr/local/bin/docker-compose1.准备基础文件
# tree /data/
/data/
└── mysql
├── conf ##自定义my.cnf 无特殊配置则不添加
├── db ##持久化数据目录
└── docker-compose.yml ##启动文件
[root@zabbix /]# tree /data/
/data/
└── mysql
├── conf ##自定义my.cnf 无特殊配置则不添加
├── db ##持久化数据目录
├── docker-compose.yml ##启动文件
└── init ##容器初始化时的执行文件 *.sh or *.sql
└── init.sql
##初始化sql
[root@zabbix mysql]# cat init/init.sql
create database zabbix character set utf8 collate utf8_bin;
#create user 'zabbix_admin'@'%' identified with mysql_native_password by 'zabbix_pass';
grant all privileges on zabbix.* to 'zabbix_admin'@'%';
flush privileges;
2.启动docker-compose
[root@zabbix mysql]# cat docker-compose.yml
version: '3'
services:
mysql8.0:
# 镜像名
image: mysql:8.0.21
# 容器名(以后的控制都通过这个)
container_name: mysql8.0
# 重启策略
restart: always
environment:
# 时区上海
TZ: Asia/Shanghai
# root 密码
MYSQL_ROOT_PASSWORD: root
# 初始化数据库(后续的初始化sql会在这个库执行)
MYSQL_DATABASE: nacos_config
# 初始化用户(不能是root 会报错, 后续需要给新用户赋予权限)
MYSQL_USER: zabbix_admin
# 用户密码
MYSQL_PASSWORD: zabbix_pass
# 映射端口
ports:
- 3306:3306
volumes:
# 数据挂载
- ./db/:/var/lib/mysql/
# 配置挂载
- ./conf/:/etc/mysql/conf.d/
# 初始化目录挂载
- ./init/:/docker-entrypoint-initdb.d/
command:
# 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
##启动
[root@zabbix mysql]# docker-compose up -d
Creating network "mysql_default" with the default driver
Creating mysql8.0 ...
Creating mysql8.0 ... done
##查看日志
[root@zabbix mysql]# docker-compose logs -f mysql8.0
......
mysql8.0 | 2022-06-07 16:15:50+08:00 [Note] [Entrypoint]: /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/init.sql
......
mysql8.0 | 2022-06-07T08:15:53.632740Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.21' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
##启动日志 看到这两行 说明初始化完成
3.宿主机安装mysql客户端 测试连接
##安装客户端 [root@zabbix mysql]# yum -y install mysql ##测试连接 [root@zabbix mysql]# mysql -h127.0.0.1 -uzabbix_admin -pzabbix_pass二.源码安装zabbix6.0 1.下载源码
cd /usr/src/ wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.2.tar.gz tar xvf zabbix-6.0.2.tar.gz ln -s zabbix-6.0.2 zabbix # 创建 zabbix 用户: groupadd --system zabbix useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix2.mysql导入数据
[root@zabbix src]# docker cp zabbix/database/mysql mysql8.0:/sql ##进入容器 [root@zabbix src]# docker exec -it mysql8.0 bash ##导入数据 mysql -h127.0.0.1 -uzabbix_admin -pzabbix_pass zabbix < schema.sql mysql -h127.0.0.1 -uzabbix_admin -pzabbix_pass zabbix < images.sql mysql -h127.0.0.1 -uzabbix_admin -pzabbix_pass zabbix < data.sql ##退出容器 # ctrl+d3.编译安装zabbix
##安装依赖 yum install gcc mysql-devel libevent-devel libcurl-devel libxml2-devel net-snmp-devel -y ##编译安装 cd /usr/src/zabbix ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 make install
# tree /usr/local/zabbix
/usr/local/zabbix
├── bin
│ ├── zabbix_get
│ ├── zabbix_js
│ └── zabbix_sender
├── etc
│ ├── zabbix_agentd.conf
│ ├── zabbix_agentd.conf.d
│ ├── zabbix_server.conf
│ └── zabbix_server.conf.d
├── lib
│ └── modules
├── sbin
│ ├── zabbix_agentd
│ └── zabbix_server
└── share
├── man
│ ├── man1
│ │ ├── zabbix_get.1
│ │ └── zabbix_sender.1
│ └── man8
│ ├── zabbix_agentd.8
│ └── zabbix_server.8
└── zabbix
├── alertscripts
└── externalscripts
## 其中etc 是配置文件目录。
## alertscripts 是告警脚本目录。
## externalscripts 是外部脚本目录。
4.修改配置文件
## server.conf # grep -Ev '^$|^#' /usr/local/zabbix/etc/zabbix_server.conf LogFile=/tmp/zabbix_server.log DBHost=127.0.0.1 DBName=zabbix DBUser=zabbix_admin DBPassword=zabbix_pass DBPort=3306 Timeout=4 LogSlowQueries=3000 StatsAllowedIP=127.0.0.1
## agent.conf # grep -Ev '^$|^#' /usr/local/zabbix/etc/zabbix_agentd.conf LogFile=/tmp/zabbix_agentd.log Server=127.0.0.1 ServerActive=127.0.0.1 Hostname=Zabbix server5.配置服务管理脚本
# vim /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_server
...
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
CONFIG_FILE="/usr/local/zabbix/etc/zabbix_server.conf"
...
start() {
echo -n $"Starting $prog: "
daemon $ZABBIX_BIN -c $CONFIG_FILE
# cp /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_server /etc/init.d/
## 针对 Zabbix Agent,同样也是调整这三处的内容。
# vim /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_agentd
...
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
CONGIG_FILE="/usr/local/zabbix/etc/zabbix_agentd.conf"
...
start() {
echo -n $"Starting $prog: "
daemon $ZABBIX_BIN -c $CONGIG_FILE
...
# cp /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
6.启动服务
# service zabbix_server start # service zabbix_agentd start ## 加入开机自启 # chkconfig zabbix_server on # chkconfig zabbix_agentd on三.安装 Web 组件
(1)安装 httpd 和 PHP。
方便起见,这里直接通过 yum 安装 httpd 和 PHP。Zabbix 从 5.0 开始,要求 PHP 的版本不低于 7.2。但在 CentOS 7 中,yum 源中默认的是 PHP 5.4.16。所以,这里需要安装额外的 epel 和 webtatic 源。
##同步时间 (云服务器可跳过) # yum -y install ntpdate # ntpdate -u time.nist.gov ##配置额外yum源 # rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # yum install httpd php72w-cli php72w-common php72w-gd php72w-ldap php72w-mbstring php72w-mysqlnd php72w-xml php72w-bcmath mod_php72w -y ## 如遇报错即执行 # yum clean all # yum makecache
(2)将 Zabbix 源码包中的 PHP 文件复制到 httpd 的根目录下。
# mkdir -p /var/www/html/zabbix # cp -r /usr/src/zabbix/ui/* /var/www/html/zabbix # chown -R apache.apache /var/www/html/
(3)修改 php 的配置文件。
# vim /etc/php.ini max_execution_time = 300 max_input_time = 300 memory_limit = 128M post_max_size = 16M upload_max_filesize = 2M date.timezone = Asia/Shanghai
注意,这里给出的只是最小需求值,可根据实际需要调大。
(4)启动 httpd 服务
# service httpd start
(5)将 httpd 服务设置为开机自启动
# chkconfig httpd on四.配置 Zabbix Web 页面
安装完 Web 组件,最后我们开始配置 Zabbix Web 页面。
(1)登录 Zabbix Server Web 首页。
浏览器中输入 http://server_ip/zabbix ,其中,server_ip 是 Zabbix Server 的地址
将默认的语言调整为 Chinese(zh_CN) ,点击下一步。
(2)依赖性检查。
主要是检查 php 的插件、配置是否满足要求。如果不满足,最右边的 OK 将显示为 Fail。
(3)配置数据库连接信息。
因为我们的演示环境 Zabbix Server 和数据库是在一台主机上部署,所以,这里 Database host 设置的是 127.0.0.1。生成环境建议分开部署。
(4)设置 Zabbix Server 信息
(5)检查配置是否正确。
(6)安装页面
进入Zabbix的登录界面,默认的用户名为Admin,密码为zabbix,管理员权限。
登录成功后的页面如下所示:
修改字体乱码## windows C:WindowsFonts 目录下拷贝一个字体 ## 拷贝到服务器/var/www/html/zabbix/assets/fonts 中 ## 找不到时目录时 find / -iname "fonts" ## 这里我偷波鸡直接替换默认字体 mv DejaVuSans.ttf DejaVuSans.ttf-bak mv simfang.ttf DejaVuSans.ttf五.安装 Zabbix Agent
同样的源码包,在被监控主机上部署。
1.编译安装 Zabbix Agent# groupadd --system zabbix # useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix # cd /usr/src/ # tar xvf zabbix-6.0.2.tar.gz # ln -s zabbix-6.0.2 zabbix # yum install gcc pcre-devel -y # cd zabbix # ./configure --prefix=/usr/local/zabbix --enable-agent # make install2.修改配置文件
# grep -Ev '^$|^#' /usr/local/zabbix/etc/zabbix_agentd.conf LogFile=/tmp/zabbix_agentd.log Server=10.0.0.228 ServerActive=127.0.0.1 Hostname=node1
其中,
- Server:被动模式下 Zabbix Server 的地址,在这种模式下,Zabbix Server 发送请求,Agent 才会响应数据。被动模式是 Zabbix Agent 默认的工作模式。
- ServerActive:主动模式下 Zabbix Server 的地址,在这种模式下,Agent 会将采集到的数据主动发送给 Zabbix Server。
- Hostname:主机名。注意,这里的主机名并不一定要是主机的 hostname,也可以是 IP 或其它有标识性的字符串,只要保证这个配置在 Zabbix Server 监控的主机内全局唯一即可。Hostname 只适用于主动模式,被动模式下无需设置。
# vim /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_agentd
...
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
CONGIG_FILE="/usr/local/zabbix/etc/zabbix_agentd.conf"
...
start() {
echo -n $"Starting $prog: "
daemon $ZABBIX_BIN -c $CONGIG_FILE
...
# cp /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
4.启动 Zabbix Agent
# service zabbix_agentd start5.设置开机自启动
# chkconfig zabbix_agentd on



