三、分布式监控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添加

添加模版

查看主被监控列表

猜你喜欢

转载自www.cnblogs.com/pansn/p/12666527.html