三、分布式监控zabbix proxy
三、分布式监控zabbix proxy
zabbix 是一个分布式的监控系统,支持通过代理服务器zabbix proxy收集zabbix agent的数据,然后把收集保存在本地数据库并发送给zabbix server进行统一存储和展示。
zabbix-server和zabbix-proxy对比
3.1、安装zabbix proxy
3.1.1创建数据库
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to proxy@'%' identified by 'zabbix_proxy123';
错误:密码太简单,导致错误
参考: https://www.cnblogs.com/ivictor/p/5142809.html
3.1.2、编译安装zabbix proxy
1、安装依赖包
apt-get install apache2 apache2-bin apache2-data apache2-utils fontconfig-config fonts-dejavu-core fping libapache2-mod-php libapache2-mod-php7.2 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 php-gettext php-xml php-net-socket php-gd
2、 下载zabbix源码包
下载地址:https://www.zabbix.com/download_sources
tar -zxvf zabbix-4.0.12.tar.gz
cd zabbix-4.0.12
3、 创建用户账户
useradd zabbix
4、 编译安装
./configure --prefix=/usr/local/zabbix \
--enable-proxy \
--enable-agent \
--with-mysql \
--with-net-snmp \
--enable-ipv6 \
--with-libcurl \
--with-libxml2
make && make install
5、制作zabbix-proxy启动脚本
vim /lib/systemd/system/zabbix-proxy.service
[Unit]
Description=Zabbix Proxy
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_proxy.conf"
EnvironmentFile=-/etc/default/zabbix-proxy
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_proxy.pid #安装路径必须和配置一样,我当初因为路径不对,导致启动时会卡住不动
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_proxy -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=infinity
[Install]
WantedBy=multi-user.target
6、修改配置文件
grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_proxy.conf
ProxyMode=0
Server=192.168.7.101
ServerPort=10051
Hostname=zabbix-proxy-active
ListenPort=10051
LogFile=/tmp/zabbix_proxy.log
PidFile=/tmp/zabbix_proxy.pid
DBHost=192.168.7.102
DBName=zabbix_proxy_active
DBUser=zabbix
DBPassword=zabbix123
DBPort=3306
ProxyLocalBuffer=20
ProxyOfflineBuffer=50
HeartbeatFrequency=60
StartTrappers=5
StartHTTPPollers=1
CacheSize=8M
StartDBSyncers=4
HistoryCacheSize=50M
HistoryIndexCacheSize=50M
Timeout=30
LogSlowQueries=3000
7、启动并检查10051端口是否启动
systemctl start zabbix-proxy
systemctl enable zabbix-proxy
3.2、配置zabbix-agent
因为编译安装zabbix-proxy时和zabbix-agent一起编译了
1、配置启动脚本
vim /lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
Documentation=man:zabbix_agentd
After=network.target
[Service]
Type=simple
User=zabbix
Group=zabbix
ExecStart=/usr/sbin/zabbix_agentd --foreground
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
2、修改配置文件
root@zabbix-node6:/tmp# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.7.106,192.168.7.101
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=192.168.7.106
Hostname=192.168.7.106
3、启动并检查端口
systemctl start zabbix-agent
systemctl enable zabbix-agent
4、检查日志
如果需要详细日志,可以提高日志等级
3.3、server端添加agnet 代理
1、创建agent代理程序(即添加zabbix proxy端)
2、更改代理
3、列表检查
4、检查图形
检测>图形
proxy的模式
这是对于zabbix agent来说的工作模式
被动模式就是由zabbix server向zabbix agent发出指令获取数据,即zabbix agent被动的去获取
数据并返回给zabbix server,zabbix server周期性的向agent 索取数据,这种模式的最大问题就
是会加大zabbix server的工作量,在数百台服务器的环境下zabbix server不能及时获取到最新
数据,但这也是默认的工作方式。
主动模式是有zabbix agent主动采集数据并返回给zabbix server,不再需要zabbix serve进行干
预,因此主动模式在一定程度上可减轻zabbix server的压力。
3.4、被动模式
1、省略安装zabbix-proxy
2、配置
root@zabbix-node5:~# grep "^[a-Z]" /etc/zabbix/zabbix_proxy.conf
ProxyMode=1 # 主要修改模式
Server=192.168.7.101
ServerPort=10051
Hostname=zabbix-proxy-passive
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
DebugLevel=3
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=192.168.7.102
DBName=zabbix_proxy_passive
DBUser=zabbix
DBPassword=zabbix123
DBPort=3306
ProxyLocalBuffer=720
ProxyOfflineBuffer=720
HeartbeatFrequency=60
ConfigFrequency=60
DataSenderFrequency=10
StartPollers=5
ListenIP=0.0.0.0
CacheSize=8M
StartDBSyncers=4
HistoryCacheSize=16M
HistoryIndexCacheSize=4M
Timeout=30
LogSlowQueries=3000
3、添加agent代理
名称需要zabbix-hostname相同
5、启动
systemctl start zabbix-proxy
systemctl enable zabbix-proxy
6、查看日志
tail -f /var/log/zabbix/zabbix-proxy/zabbix-proxy.log
添加如上图agent实例
1、配置
root@zabbix-node6:/usr/local/zabbix# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.7.105,192.168.7.101
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=192.168.7.105
Hostname=192.168.7.106
2、在server端的web添加
添加模版
查看主被监控列表
3.5、主动模式
1、全克隆模版
2、克隆模版
点击全克隆,下图搞错了
3、修改模版名称
修改名称 > 添加
4、列表查看
5、 修改成主动模式,点击监控项
监控项>全选>批量更新
6、修改类型
7、 修改间隔时间,点击更新
8、 点击自动发现规则
9、 点击名称进入修改
10、 修改成主动式,更新
11、 箭头所指的地方都需要修改成主动式(监控项原型内还有多项)
12、修改proxy代理模式
root@zabbix-node5:~# grep "^[a-Z]" /etc/zabbix/zabbix_proxy.conf
ProxyMode=1 # 主要修改模式
Server=192.168.7.101
ServerPort=10051
Hostname=zabbix-proxy-passive
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
DebugLevel=3
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=192.168.7.102
DBName=zabbix_proxy_passive
DBUser=zabbix
DBPassword=zabbix123
DBPort=3306
ProxyLocalBuffer=720
ProxyOfflineBuffer=720
HeartbeatFrequency=60
ConfigFrequency=60
DataSenderFrequency=10
StartPollers=5
ListenIP=0.0.0.0
CacheSize=8M
StartDBSyncers=4
HistoryCacheSize=16M
HistoryIndexCacheSize=4M
Timeout=30
LogSlowQueries=3000
13、添加agent代理
名称需要zabbix-hostname相同
14、启动服务
systemctl start zabbix-proxy
systemctl enable zabbix-proxy
16、zabbix-agent修改配置文件
root@zabbix-node6:/usr/local/zabbix# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.7.105,192.168.7.101
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=192.168.7.105
Hostname=192.168.7.106