Zabbix与Zabbix-agent2部署
目录
部署zabbix
1.数据库准备
- 下载SQL脚本http://coldsmog.cn:9000/blog/create.sql.gz
- 创建mysql数据库zabbix. 并创建授权用户zabbix,密码zabbix,
# 注意编码格式
create database zabbix character set utf8 collate utf8_bin;
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix.* TO 'zabbix'@'%';
FLUSH PRIVILEGES;
- 数据库的服务器bash执行
zcat create.sql.gz | mysql -uzabbix -p zabbix
系统将提示您输入新创建的数据库密码
2.安装主控程序 zabbix-server
要求1:内存大于2G,硬盘大于2G
要求2:能访问被监控服务器的10050端口
要求3:服务器对外暴露自身的80、8443、10051端口
账密:Admin/zabbix
# docker-compose.yml
version: '3'
services:
zabbix-server:
image: 'zabbix/zabbix-server-mysql:centos-5.2-latest'
restart: always
container_name: zabbix-server-mysql
environment:
- DB_SERVER_HOST=101.201.XX.XX
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- ZBX_DEBUGLEVEL=2
ports:
- '10051:10051'
volumes:
- /var/lib/zabbix:/var/lib/zabbix
zabbix-web:
image: 'zabbix/zabbix-web-nginx-mysql:centos-5.2-latest'
restart: always
container_name: zabbix-web
links:
- zabbix-server
environment:
- DB_SERVER_HOST=101.201.XX.XX
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- ZBX_SERVER_HOST=101.201.XX.XX
- PHP_TZ=Asia/Shanghai
ports:
- '80:8080'
zabbix5.0中文乱码问题
zabbinx的web组件 使用了自己的字体,故部分中文会显示为吅。
字体为/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
解决方案:
-
从window系统
C:\Windows\Fonts
目录下挑选自己喜欢的字体 -
将字体上传至服务器,此处使用了免费商用字体:阿里普惠体 Alibaba.ttf
-
使用docker cp 覆盖原字体,参考如下
# 备份原字体 docker cp 52fcd1fc30a1:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf DejaVuSans.ttf.bak # 覆盖字体 docker cp Alibaba.ttf 52fcd1fc30a1:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
-
重启docker镜像
docker restart 52fcd1fc30a1
3.安装监控子程序
要求1: 内存大于500m,硬盘大于1G
要求2:服务器对外暴露自身的80、8443、10050端口
从二进制包安装agent2
# 前往http://repo.zabbix.com/zabbix/ 选择平台和版本的.noarch.rpm文件
# 安装软件仓库配置包,这个包包含了 yum(软件包管理器)的配置文件
rpm -ivh http://repo.zabbix.com/zabbix/5.2/rhel/7/x86_64/zabbix-release-5.2-1.el7.noarch.rpm
# 国内用户可以直接下载阿里的zabbix镜像
# yum localinstall -y https://mirrors.aliyun.com/zabbix/zabbix/5.2/rhel/7/x86_64/zabbix-agent2-5.2.6-1.el7.x86_64.rpm
# 安装agent监控子程序
yum install zabbix-agent2
# 启动agent
systemctl start zabbix-agent2
# 修改配置 其中172.16.19.XX为server服务器的IP,自行修改
sed -i '/^Server=/cServer=172.16.19.XX' /etc/zabbix/zabbix_agent2.conf
sed -i '/^ServerActive=/cServerActive=172.16.19.XX' /etc/zabbix/zabbix_agent2.conf
sed -i '/^Hostname=/cHostname='$(hostname) /etc/zabbix/zabbix_agent2.conf
sed -i '/^LogFileSize=/cLogFileSize=5' /etc/zabbix/zabbix_agent2.conf
# 重启agent 并放开端口
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --reload
从docker安装agent2
version: '3'
services:
zabbix-agent:
image: 'zabbix/zabbix-agent2:alpine-5.2-latest'
restart: always
container_name: zabbix-agent2
privileged: true # 因为是监控软件,需要开启特权
environment:
- ZBX_HOSTNAME=zabbix_hostname
- ZBX_METADATAITEM=system.uname
- ZBX_SERVER_HOST=172.16.19.162
ports:
- '10050:10050'
volumes:
- /etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d
- /var/lib/zabbix/enc:/var/lib/zabbix/enc
- /var/lib/zabbix/modules:/var/lib/zabbix/modules
这个是自行编写的一键脚本,可以参考
mkdir -p /usr/local/zabbix-agent
cd /usr/local/zabbix-agent
# 可以用自己的docker-compose.yml替换
curl -o docker-compose.yml http://coldsmog.cn:9000/xindeco/zabbix-agent2.yml
sed -i 's/zabbix_hostname/'$(hostname)'/' docker-compose.yml
docker-compose up -d
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --reload
# wget http://coldsmog.cn:9000/xindeco/installZabbixAgent.sh
# chmod u+x installZabbixAgent.sh
注意:agent2没有oracle的客户端支持,需要自己改造,我写了一个发布在dockerhub上
version: '3'
services:
zabbix-agent:
image: 'coldsmog/zabbix-agent2-oracle:latest'
restart: always
container_name: zabbix-agent2
privileged: true # 因为是监控软件,需要开启特权
environment:
- ZBX_HOSTNAME=zabbix_hostname
- ZBX_METADATAITEM=system.uname
- ZBX_SERVER_HOST=172.16.19.162
ports:
- '10050:10050'
volumes:
- /etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d
- /var/lib/zabbix/enc:/var/lib/zabbix/enc
- /var/lib/zabbix/modules:/var/lib/zabbix/modules