Zabbix 企业级监控
Zabbix 部署及规划
常见监控方案
Cacti https://www.cacti.net/
Nagios https://www.nagios.org/
SmokePing https://oss.oetiker.ch/smokeping/
Open-falcon https://www.open-falcon.org/
Prometheus https://prometheus.io/
Zabbix https://www.zabbix.com/cn/
监控宝(商业) https://www.jiankongbao.com/
听云(商业) https://www.tingyun.com/
Zibbix 介绍
Zabbix是一个基于PHP编写的企业级监控方案,完全免费开源,支持实时监控数千台服务器,虚拟机和网络设备,采集百万级监控指标,适用于任何IT基础架构、服务、应用程序和资源的监控解决方案
数据
#数据采集
主机/对象:服务器、路由器、交换机、存储、防火墙、IP、PORT、URL、自定义监控对象...
采集目标:监控项,指标数据
#数据存储
SQL: MySQL/MariaDB(Zabbix)
NoSQL:Redis(Open-falcon)
rrd: Round Robin Database(Cacti)
#数据类型
历史数据: 每个监控项采集到的每个监控值
趋势数据: 趋势表里主要保留监控项一个小时内历史数据的最大值、最小值和平均值以及数据总个数
#阈值
可按照预定义的阈值等级实现分层报警
#告警机制
邮件,短信,微信,语音,故障自治愈
Zabbix 初步部署
下载地址 https://www.zabbix.com/cn/download http://repo.zabbix.com/zabbix/
服务器系统:ubuntu 18.04/Centos 7.x
10.0.0.13 Zabbix
10.0.0.7 mysql
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
yum install -y mysql-server
systemctl enable --now mysql
grep 'temporary password' /var/log/mysqld.log #查看密码
mysql -p
status;
set global validate_password_policy=LOW;
alter user 'root'@'localhost' identified by 'ssy192011';
create database zabbix default charset 'utf8' collate 'utf8_bin';
grant all on zabbix.* to zabbix@'10.0.0.%' identified by 'ssy192011';
mysql -uzabbix -pssy192011 -h10.0.0.7 #myslq测试连接
#安装zabbix server
wget https://mirrors.aliyun.com/zabbix/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2%2Bbionic_all.deb
dpkg -i zabbix-release_4.0-2+bionic_all.deb
dpkg -L zabbix-release
vim /etc/apt/sources.list.d/zabbix.list #将源指向aliyun
apt update
apt install -y zabbix-server-mysql zabbix-frontend-php \
zabbix-apache-conf zabbix-agent
#导入数据初始化数据库
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | \
mysql -uzabbix -p -h10.0.0.7 zabbix
vim /etc/zabbix/zabbix_server.conf
DBHost=10.0.0.7
DBName=zabbix
DBUser=zabbix
DBPassword=ssy192011
DBPort=3306
vim /etc/zabbix/apache.conf
20 php_value date.timezone Asia/Shanghai
30 php_value date.timezone Asia/Shanghai
systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2
#浏览器访问 http://10.0.0.13/zabbix
用户: Admin
密码: zabbix
ss -ntal #10051端口已打开
web界面中文菜单环境
apt -y install language-pack-zh*
echo 'LANG="zh_CN.UTF-8"' >> /etc/environment
. /etc/environment
dpkg-reconfigure locales #选择zh_CN.UTF-8
systemctl restart zabbix-server zabbix-agent apache2
#当前系统有些监控项部分显示有乱码,需上传字体文件
在Windows上找到控制面板-->字体-->中文字体,然后将字体拷贝到windows桌面
将windows字体文件上传至zabbix web目录
cd /usr/share/zabbix/assets/fonts/
chown -R zabbix.zabbix ./*
vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'simkai');
define('ZBX_FONT_NAME', 'simkai');
Zabbix 编译安装
https://www.zabbix.com/documentation/current/manual/installation/install
#10.0.0.7安装mysql
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
yum install mysql-server -y
systemctl restart mysqld
grep 'temporary password' /var/log/mysqld.log #查看密码
mysql -p"密码"
mysql> set global validate_password_policy=LOW;
mysql> alter user 'root'@'localhost' identified by 'ssy192011';
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all on zabbix.* to zabbix@"10.0.0.%" identified by 'ssy192011';
#编译安装zabbix
useradd -u 2020 zabbix
tar xvf zabbix-4.4.8.tar.gz -C /opt/
cd /opt/zabbix-4.4.8/
#centos解决依赖包关系
yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel -y
#Ubuntu解决依赖包关系
apt install -y apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.2 fontconfig-config fonts-dejavu-core fping libapache2-mod-php libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libfontconfig1 libgd3 libiksemel3 libjbig0 libjpeg-turbo8 libjpeg8 liblua5.2-0 libodbc1 libopenipmi0 libsensors4 libsnmp-base libsnmp30 libsodium23 libssh2-1 libtiff5 libwebp6 libxpm4 php-bcmath php-common php-gd php-ldap php-mbstring php-mysql php-xml php7.2-bcmath php7.2-cli php7.2-common php7.2-gd php7.2-json php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml snmpd ssl-cert ttf-dejavu-core libmysqlclient-dev libxml2-dev libxml2 snmp libsnmp-dev libevent-dev openjdk-8-jdk curl libcurl4-openssl-dev
./configure --prefix=/opt/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java
make install
apt install mysql-client -y #安装mysql客户端
mysql -uzabbix -pssy192011 -h10.0.0.7 #测试连接
cd /opt/zabbix-4.4.8/database/mysql/
mysql -uzabbix -pssy192011 -h10.0.0.7 zabbix < schema.sql
mysql -uzabbix -pssy192011 -h10.0.0.7 zabbix < images.sql
mysql -uzabbix -pssy192011 -h10.0.0.7 zabbix < date.sql
grep '^[a-zA-Z]' /opt/zabbix/etc/zabbix_server.conf
ListenPort=10051
LogFile=LogFile=/opt/zabbix/zabbix_server.log
DBHost=10.0.0.7
DBName=zabbix
DBUser=zabbix
DBPassword=ssy192011
DBPort=3306
Timeout=20
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
ln -s /opt/zabbix/sbin/* /usr/sbin/
zabbix_server #启动zabbix_server服务
zabbix_agentd #启动zabbix_agentd
ps aux|grep zabbix
mkdir /var/www/html/zabbix
mv /opt/zabbix-4.4.8/frontends/php/* /var/www/html/zabbix/
chown -R zabbix.zabbix /opt/zabbix /var/www/html/zabbix/
#浏览器访问:10.0.0.13/zabbix 根据提示修改配置文件
apt install -y php-gettext php-xml php-net-socket php-gd php-mysql
vim /etc/php/7.2/apache2/php.ini
pkill zabbix_server
zabbix_server
#手动下载配置文件并上传至/var/www/html/zabbix/conf/zabbix.conf.php路径
登录 Admin:zabbix
vim /lib/systemd/system/zabbix.service #准备启动脚本
#web中文菜单界面
apt install -y language-pack-zh*
echo 'LANG="zh_CN.UTF-8"' >> /etc/environment
. /etc/environment
dpkg-reconfigure locales #选择UTF-8
systemctl restart zabbix apache2
Zabbix配置文件详解
平台 | CPU/内存 | 监控主机数量 |
---|---|---|
Centos/ubuntu | 虚拟机或容器 | 20左右 |
Centos/ubuntu | 4核CPU / 4G内存 | 80左右 |
红帽企业Linux | 8核CPU / 16G内存 | 500左右 |
红帽企业Linux | 16核CPU / 32G内存 | 1000左右 |
数据库服务器:CPU性能及磁盘IO速度要快,空间大,内存32G
配置文件:
vim /opt/zabbix/etc/zabbix_server.conf
ListenPort=10051 #监听端口
ListenIP=0.0.0.0 #zabbix监听地址
User=zabbix #zabbix启动用户
LogFile=/opt/zabbix/zabbix_server.log #日志文件路径
PidFile=/tmp/zabbix_server.pid #pid文件路径
DBHost=10.0.0.7 #数据库IP地址
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户
DBPassword=ssy192011 #数据库密码
DBPort=3306 #数据库端口
#zabbix性能相关
StartPollers=5 #启动多少个实例数量
StartPreprocessors=3 #启动多少个进程用于收集zabbix agent数据
StartTrappers=5 #预启动的Trapper的进程数量,使用Trapper进程实现触发器
StartPingers=2 #ping命令检测后端服务器状态的进程数量
StartHTTPPollers=1 #http进程数量
CacheSize=32M #配置信息缓存大小
CacheUpdateFrequency=60 #zabbix更新缓存数据的频率,60秒
StartDBSyncers=4 #zabbix和数据库数据同步的进程数
HistoryCacheSize=16M #历史数据的缓存大小
HistoryIndexCacheSize=4M #历史数据索引缓存大小
ValueCacheSize=8M #历史值的缓存大小
Timeout=4 #数据采集等待超时时长
TrapperTimeout=300 #触发器处理数据的最长时间
UnreachablePeriod=45 #当主机不可达多久设为主机不可以
UnavailableDelay=60 #当主机不可用,多久检测一次该主机的可用性
AlertScriptsPath=${datadir}/zabbix/alertscripts #监控报警脚本路径
FpingLocation=/usr/sbin/fping #fping命令路径,检测主机的可用性
LogSlowQueries=3000 #慢日志时间(毫秒为单位)
StartProxyPollers=1 #启动多少个进程与代理端通信
ProxyDataFrequency=1 #被动模式下,zabbix server每间隔多少秒向代理请求数据
Include=/etc/zabbix/zabbix.conf #包含其他配置文件
#javagateway相关
zabbix默认不能直接监控java程序,需要通过javagatewy代理
JavaGateway=10.0.0.3 #javagateway服务器地址
JavaGatewayPort=10052 #javagateway服务器端口
StartJavaPollers=20 #java轮询实例预启动数量
SNMPTrapperFile=/tmp/zabbix_traps.tmp #snmp触发器零时文件路径
StartSNMPTrapper=0 #snmp触发器预启动数量