yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel libevent-devel java-1.8.0-openjdk-devel -y
解壓安裝包 編譯
[root@node2 zabbix-4.0.30]#tar xf zabbix-4.0.30.tar.gz [root@node2 zabbix-4.0.30]#cd zabbix-4.0.30/ [root@node2 zabbix-4.0.30]#./configure --prefix=/apps/zabbix --enable-agent [root@node2 zabbix-4.0.30]#make -j2 && make install
準備service檔案
[root@node2 zabbix-4.0.30]#useradd zabbix # 新建使用者 [root@node2 zabbix-4.0.30]#vim /usr/lib/systemd/system/zabbix-agent.service [Unit] Description=Zabbix Agent After=syslog.target After=network.target [Service] Environment="CONFFILE=/apps/zabbix/etc/zabbix_agentd.conf" EnvironmentFile=-/etc/default/zabbix-agent Type=forking Restart=on-failure PIDFile=/tmp/zabbix_agentd.pid KillMode=control-group ExecStart=/apps/zabbix/sbin/zabbix_agentd -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s User=zabbix Group=zabbix [Install] WantedBy=multi-user.target [root@node2 zabbix-4.0.30]#systemctl daemon-reload [root@node2 zabbix-4.0.30]#systemctl start zabbix-agent.service [root@node2 zabbix-4.0.30]#systemctl status zabbix-agent.service
[root@node2 etc]#vim /apps/zabbix/etc/zabbix_agentd.conf 94 Server=192.168.100.155 #指向當前zabbix server ##### Passive checks related #被動檢查相關配置 ### Option: ListenPort ListenPort=10050 #監聽埠 預設的無需修改 119 StartAgents=3 #啟動3個程序收集資料 146 Hostname=192.168.100.160 #指定名稱 一般使用 IP地址, 等會需要使用
systemctl restart zabbix-agent.service
systemctl status zabbix-agent.service
新增模板
#在zabbix_server上執行
/apps/zabbix_server/bin/zabbix_get -s 192.168.100.60 -p 10050 -k "agent.ping" -s 指明主機 -k 指明監控項 -p 埠
在192.168.100.160上安裝tomcat
所謂JMX,是Java Management Extensions(Java管理擴充套件)的縮寫,是一個為應用程式植入管理功能的框架。使用者可以在任何Java應用程式中使用這些代理和服務實現管理。
https://www.jianshu.com/p/8c5133cab858
vim /usr/local/tomcat/bin/catalina.sh #一般加在117行 12345為JMX監控的埠號 CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.100.160"
systemctl restart tomcat.service systemctl status tomcat ss -napt|grep 12345
CATALINA_OPTS="$CATALINA_OPTS
含義 | |
---|---|
-Dcom.sun.management.jmxremote | #啟用遠端監控JMX |
-Dcom.sun.management.jmxremote.port=12345 | #預設啟動的JMX埠號,要和zabbix新增主機時候的埠 一致即可 |
-Dcom.sun.management.jmxremote.authenticate=false | #不使用使用者名稱密碼 |
-Dcom.sun.management.jmxremote.ssl=false | #不使用ssl認證 |
-Djava.rmi.server.hostname=x.x.x.x" |
在windows安裝windows版本的JDK,安裝過程略,安裝完成之後點選安裝目錄的jconsole.exe,比如C:\ProgramFiles\Java\jdk1.8.0_221\bin\jconsole.exe,如下:
在主伺服器上配置啟動 javagateway
vim /apps/zabbix_server/sbin/zabbix_java/settings.sh #不需要修改 35 START_POLLERS=5 #啟動5個執行緒去採集java資料 43 TIMEOUT=30 #一個資料的超時時間30s
/apps/zabbix_server/sbin/zabbix_java/startup.sh # 啟動gateway服務 ss -antp |grep 10052
配置 zabbix-server 對接 java-gateway
[root@localhost data]#vim /apps/zabbix_server/etc/zabbix_server.conf 282 JavaGateway=192.168.100.160 #指明gateway地址 297 StartJavaPollers=5 #開啟多少個程序去收集java伺服器的資訊 289 JavaGatewayPort=10052 # 預設不用改 [root@localhost ~]#systemctl restart zabbix-server #快照起不來 重啟機器 #重啟後不要忘記開啟 javagateway
1.
被動模式的優點就是配置簡單,安裝後即可使用,因此也成為zabbix 的預設工作模式,但是被動模式的最大問題就是會加大zabbix server的工作量,在數百甚至數千臺伺服器的環境下會導致zabbix server需要輪訓向每個zabbix agent傳送資料採集指令,如果zabbix server負載很高還會導致不能及時獲取到最新資料,但由於無需其他複雜配置,被設定為了預設的工作方式。
-
主伺服器會開啟隨機埠去連線 客戶端的 10050 埠 來獲取資料
-
從節點將資料交給主
-
主寫入資料庫
-
主動模式是由zabbix agent主動向zabbix server的10051埠發起tcp連線請求,因此主動模式下必須在zabbixagent配置檔案中指定zabbix server的IP或者主機名(必須可以被解析為IP地址),在連線到zabbix server之前zabbix agent是不知道自己要採集那些資料以及間隔多久採集一次資料的,然後在連線到zabbix server以後獲取到自己的監控項和資料採集間隔週期時間,然後再根據監控項採集資料並返回給zabbix server,在主動模式下不再需要zabbix serve向zabbix agent發起連線請求,因此主動模式在一定程度上可減輕zabbix server開啟的本地隨機埠和程序數,在一定程度就減輕看zabbix server的壓力。
-
-
從節點將資料交給主
-
主寫入資料庫
-
最後展示在 web頁面中
-
[root@node2 zabbix]#grep -in "^[a-z]" etc/zabbix_agentd.conf 30:LogFile=/tmp/zabbix_agentd.log 94:Server=192.168.91.100 #誰可以來獲取資料 119:StartAgents=3 135:ServerActive=127.0.0.1 146:Hostname=192.168.91.102 [root@node2 zabbix]#vim /apps/zabbix/etc/zabbix_agentd.conf 修改第135 作為 94:Server=192.168.91.100 #誰可以來獲取資料 135:ServerActive=192.168.91.100 #主動模式的zabbix server地址 146:Hostname=192.168.91.102 #當親主機名字 [root@node2 zabbix]#systemctl restart zabbix-agent.service
點選全克隆
修改名稱
修改多個
伺服器的磁碟 網路卡個不相同, 模板中有一些自動發現規則,可以適當將 其中的一些選項時間調低點,預設1小時太長了
監控項原型, 自動適配改成你的名字
應用模板
檢視網路卡
另外zabbix proxy也區分主動模式和被動模式,通訊方式與zabbix server主動模式和被動模式一樣,區別是zabbixproxy由於沒有zabbix agent的配置,所以zabbix proxy在主動模式下要向zabbix server週期性的向zabbix server申請獲取zabbix agent的監控項資訊,但是zabbix proxy在被動模式下也是等待zabbix server的連線並接受zabbixserver傳送的監控項指令,然後再有zabbix proxy向zabbix agent發起請求獲取資料。
zabbix proxy的大版本必須要和zabbix server版本一致,否則會導致出現zabbix server與zabbix proxy不相容問
#安裝依賴環境 yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel java-1.8.0-openjdk-devel -y ./configure --prefix=/apps/zabbix_proxy --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 make install
yum install mariadb-server -y systemctl start mariadb
mysql_secure_installation
#新建表 create database zabbix_proxy_active character set utf8 collate utf8_bin; create database zabbix_proxy_passive character set utf8 collate utf8_bin; # 授權 grant all privileges on zabbix_proxy_active.* to proxy@'192.168.100.%' identified by '123'; grant all privileges on zabbix_proxy_passive.* to proxy@'192.168.100.%' identified by '123'; grant all privileges on zabbix_proxy_active.* to proxy@'localhost' identified by '123'; grant all privileges on zabbix_proxy_passive.* to proxy@'localhost' identified by '123'; #匯入資料結構 #先去原始碼包目錄 mysql -uproxy -p123 -h192.168.100.140 zabbix_proxy_passive < database/mysql/schema.sql mysql -uproxy -p123 -h192.168.100.140 zabbix_proxy_active < database/mysql/schema.sql
地址 | |
---|---|
zabbix server | 192.168.100.155 |
被動proxy | 192.168.100.140 |
web伺服器IP |
# vim /apps/zabbix_proxy/etc/zabbix_proxy.conf ProxyMode=1 #0為主動,1為被動 Server=192.168.91.100 #zabbix server伺服器的地址或主機名 Hostname=passive #代理伺服器名稱,需要與zabbix server新增代理時候的proxyname是一致的! ListenPort=10051 #zabbix proxy監聽埠 LogFile=/tmp/zabbix_proxy.log EnableRemoteCommands=1 #允許zabbix server執行遠端命令 DBHost=192.168.91.103 #資料庫伺服器地址 DBName=zabbix_proxy_active #使用的資料庫名稱 DBUser=proxy #連線資料庫的使用者名稱稱 DBPassword=123456 #資料庫使用者密碼 DBPort=3306 #資料庫埠 ProxyLocalBuffer=720 #已經提交到zabbix server的資料保留時間 720小時 ProxyOfflineBuffer=720 #未提交到zabbix server的時間保留時間 HeartbeatFrequency=60 #心跳間隔檢測時間,預設60秒,範圍0-3600秒,被動模式不使用 ConfigFrequency=5 #間隔多少秒從zabbix server獲取監控項資訊 DataSenderFrequency=5 #資料傳送時間間隔,預設為1秒,範圍為1-3600秒,被動模式不使用 StartPollers=20 #啟動的資料採集器數量 JavaGateway=172.31.0.104 #java gateway伺服器地址,當需要監控java的時候必須配置否則監控不到資料 JavaGatewayPort=10052 #Javagatewa服務埠 StartJavaPollers=20 #啟動多少個執行緒採集資料 CacheSize=2G #儲存監控項而佔用的最大記憶體 HistoryCacheSize=2G #儲存監控歷史資料佔用的最大記憶體 HistoryIndexCacheSize=128M #歷史索引快取的大小 Timeout=30 #監控項超時時間,單位為秒 LogSlowQueries=3000 #毫秒,多久的資料庫查詢會被記錄到日誌
[root@localhost zabbix-4.0.30]#cd /apps/zabbix_proxy/etc/ [root@localhost zabbix_proxy]#vim zabbix_proxy.conf
13 ProxyMode=1 # 1是被動 #0為主動 修改為1 30 Server=192.168.100.155 # 指向 zabbix伺服器 , 就算是主動模式也需要修改應為不是所有監控項都是主動還有被動的 39 ServerPort=10051 #被動模式可以不修改 應為是 zabbix-server 主動 49 Hostname=passive # web 配置中需要使用, 必須一致 156 DBHost=192.168.100.140 #資料庫地址 167 DBName=zabbix_proxy_passive # 資料庫名字 182 DBUser=proxy #資料庫使用者 192 DBPassword=123 #資料庫密碼 244 ConfigFrequency=5 #間隔多少秒從zabbix server獲取監控項資訊
[root@localhost zabbix-4.0.30]#useradd zabbix
[root@localhost zabbix-4.0.30]#chown zabbix:zabbix /apps/zabbix_proxy/ -R
[root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_proxy [root@localhost zabbix-4.0.30]#ss -natpl |grep 10051 [root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_agentd # 一定要開
[root@localhost ~]# vim /apps/zabbix/etc/zabbix_agentd.conf 94 Server=192.168.100.155,192.168.100.140 #被動模式 允許 .140代理 來獲取資料 [root@localhost ~]#systemctl restart zabbix-agent.service [root@localhost ~]#systemctl status zabbix-agent.service
[root@localhost zabbix-4.0.30]#cd /apps/zabbix_proxy/etc/ [root@localhost zabbix_proxy]#vim /apps/zabbix_proxy/etc/zabbix_proxy.conf 13 ProxyMode=0 # 1是被動 0為主動 需要開啟 31 Server=192.168.100.155 # 指向 zabbix伺服器 , 就算是主動模式也需要修改應為不是所有監控項都是主動還有被動的 40 ServerPort=10051 #被動模式可以不修改 應為是 zabbix-server 主動 50 Hostname=active # web 配置中需要使用, 必須一致 158 DBHost=192.168.91.103 #資料庫地址 169 DBName=zabbix_proxy_active # 資料庫名字 184 DBUser=proxy #資料庫使用者 192 DBPassword=123 #資料庫密碼
[root@localhost zabbix-4.0.30]#useradd zabbix [root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_agentd [root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_proxy [root@localhost zabbix-4.0.30]#ss -natpl |grep 10051