Zabbix之四---Zabbix主被動模式監控、主被動模式proxy使用以及主動模式tomcat監控


實戰一:通過Zabbix實現主動模式監控

1、主被動模式介紹

(1)主動/被動介紹

  被動檢測:相對於agent而言;agent, server向agent請求獲取配置的各監控項相關的數據,agent接收請求、獲取數據並響應給server;

  主動檢測:相對於agent而言;agent(active),agent向server請求與自己相關監控項配置,主動地將server配置的監控項相關的數據發送給server;

2、在zabbix網頁上全克隆Template OS Linux模板

(1)全克隆Template OS Linux模板

(2)命名全克隆后的名稱,然后在下面點擊添加

 (3)將全克隆后的模板的監控項改為主動模式

 (4)點進去之后點擊上面的對號,將模式全部選中,然后在最下面選中批量更新

   

(5)將Zabbix默認的被動模式改為主動模式

(6)修改完配置之后,點擊更新即可。

 3、在node3主機上安裝zabbix-agent包

(1)在node3主機上配置zabbix.repo源倉庫(/etc/yum.repos.d目錄下配置阿里雲倉庫),並安裝zabbix-agent包

[root@nginx yum.repos.d]# cat zabbix.repo 
[zabbix]
name=Zabbix Official Repository - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/\$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591
 
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/\$basearch/
enabled=1
gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX
gpgcheck=1
 
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

安裝zabbix-agent包

[root@nginx yum.repos.d]# yum install zabbix-agent -y

(2)修改zabbix-agent配置文件:vim  /etc/zabbix/zabbix_agentd.conf

Server=192.168.7.100  # zabbix-server服務器端的IP地址
ServerActive=192.168.7.100  # zabbix-server服務器的IP地址
Hostname=192.168.7.103  # 本機的IP地址(主動模式的IP地址)

(3)重啟zabbix-agent服務,並設置為開機啟動

# systemctl restart zabbix-agent
# ststemctl enable zabbix-agent

(4)在zabbix網頁上創建主機

 (5)添加主機相關配置

 (6)添加上面創建主動模式的模板

(7)查看此時添加的zabbix-agent已經變綠,說明配置正確

 (8)也可以在zabbix-server服務器端的主機進行測試zabbix-agent的狀態:

[root@zabbix yum.repos.d]# zabbix_get -s 192.168.7.103 -p 10050  -k "agent.ping"  # 提示結果為1,說明正確
1

(9)可以查看到主動模式的監控信息

 實戰二:proxy代理的主動模式監控

1、主被動模式介紹

 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的壓力。

zabbix是一個分布式的監控系統,支持通過代理服務器zabbix  proxy收集zabbix  agent的數據,然后把收集保存在本地數據庫並發送給zabbix  server進行統一存儲和展示。

工作模式:

2、環境准備

(1)環境配置

機器名稱

IP配置

服務角色

zabbix-server

192.168.7.100

監控

agent-node1

192.168.7.101

被監控端

agent-node2

192.168.7.102

被監控端

agent-node3

192.168.7.103

數據庫

agent-node4

192.168.7.104

代理proxy-主動模式

agent-node5

192.168.7.105

代理proxy-被動模式

 

3、在node4上安裝zabbix-proxy-mysql包

(1)在node4主機上配置zabbix.repo源倉庫(/etc/yum.repos.d目錄下配置阿里雲倉庫),並安裝zabbix-proxy-mysql包

[root@nginx yum.repos.d]# cat zabbix.repo 
[zabbix]
name=Zabbix Official Repository - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/\$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591
 
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/\$basearch/
enabled=1
gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX
gpgcheck=1
 
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

(2)安裝zabbix-proxy-mysql包

# yum install zabbix-proxy-mysql  -y

4、在node3上安裝數據庫

(1)在node3主機上安裝數據庫

[root@nginx yum.repos.d]# yum install mariadb-server  -y  # 安裝mariadb數據庫
[root@nginx yum.repos.d]# systemctl start mariadb  # 啟動數據庫
[root@nginx yum.repos.d]# systemctl enable mariadb  # 設置為開機啟動
[root@nginx yum.repos.d]# chown mysql.mysql -R /var/lib/mysql  # 將數據庫的所有者和所屬組改為mysql

(2)配置數據庫信息: /etc/my.cnf.d/mariadb-server.cnf 

[server]
skip_name_resolve = on
innodb_file_per_table = on
innodb_buffer_pool_size = 256M   #buffer緩存大小
max_connections = 2000   #最大連接數
log-bin = master-log    #二進制日志

(3)創建主動模式的數據庫(zabbix_proxy_active)  

[root@nginx yum.repos.d]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.10-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database zabbix_proxy_active  character set utf8 collate utf8_bin; 
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> grant all privileges on zabbix_proxy_active.* to zabbix_proxy_active@'192.168.7.%' identified by '123456'; # 對zabbix_proxy_active數據庫進行授權

(4)在node2的mysql客戶端進行連接測試

[root@node2 ~]# mysql -uzabbix_proxy_active   -p123456 -h192.168.7.103
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 22
Server version: 10.3.10-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

(5)在node4主機進行(安裝了zabbix-proxy-mysql)初始化數據庫,(此初始化數據庫,使用的是代理的數據)

[root@node4 yum.repos.d]# zcat  /usr/share/doc/zabbix-proxy-mysql-4.0.17/schema.sql.gz | mysql -uzabbix_proxy_active -h192.168.7.103 -p zabbix_proxy_active # 其中4.0.17是zabbix-proxy-mysql的版本,可以寫成zabbix-proxy-mysql*初始化。
Enter password:  # 輸入數據庫密碼:123456

(6)在node4主機上驗證查看zabbix_proxy_active數據庫中是否有數據

[root@node4 yum.repos.d]# mysql -uzabbix_proxy_active -h192.168.7.103 -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 10.3.10-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases; # 查看zabbix_proxy_active數據庫。
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| zabbix_proxy_active |
+---------------------+
2 rows in set (0.001 sec)

MariaDB [(none)]> use zabbix_proxy_active; # 切換到zabbix_proxy_active數據庫
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix_proxy_active]> show tables; # 查看是否有表
| Tables_in_zabbix_proxy_active |
+-------------------------------+
| acknowledges                  |
| actions                       |
| alerts                        |
| application_discovery         |
| application_prototype         |
| application_template          |
| applications                  |
| auditlog                      |
| auditlog_details              |

  (7)在node4主機上配置zabbix-proxy.conf文件(proxy端的文件)

    vim  /etc/zabbix/zabbix_proxy.conf

[root@node4 zabbix]# grep "^[a-Z]" /etc/zabbix/zabbix_proxy.conf 
ProxyMode=0  #改為主動模式
Server=192.168.7.100 # zabbix-server服務器端的IP地址
ServerPort=10051  # zabbix-proxy開啟的端口
Hostname=zabbix_proxy_active # 主動模式的hostname(代理服務器名稱)
ListenPort=10051  # 監聽的端口
DebugLevel=3 # 日志級別
EnableRemoteCommands=1 # 允許遠程連接
LogRemoteCommands=0 # 關閉log日志記錄
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=192.168.7.103 # 數據庫服務器地址
DBName=zabbix_proxy_active # 使用數據庫的名稱
DBUser=zabbix_proxy_active # 連接數據庫的名稱
DBPassword=123456  # 數據庫的密碼
ProxyLocalBuffer=720 # 已經提交到zabbix serverd的數據保留時間
ProxyOfflineBuffer=720 # 未提交到zabbix serever的數據保留時間
HeartbeatFrequency=120 # 心跳檢測時間,默認是60s,被動模式不使用
ConfigFrequency=60 # 間隔多久時間從zabbix server獲取監控數據(一般設置五分鍾)
DataSenderFrequency=60 # 數據發送間隔時間,默認為1s。
StartPollers=20 # 啟動數據采集器數量
JavaGateway=192.168.7.102 # zabbix-java-gateway主機的IP地址
JavaGatewayPort=10052 # gateway主機的端口
StartJavaPollers=20 # 啟動多少個線程采集數據
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
ListenIP=0.0.0.0 # 監控IP地址
CacheSize=128M  # 保留監控項占用的最大內存(生產中是2G)
HistoryCacheSize=128M # 保留監控歷史數據占用的最大內存(生產中是2G)
HistoryIndexCacheSize=32M  # 監控項歷史數據的索引信息(生產中是2G)
Timeout=30   # 監控項超時時長,單位為秒
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000 #單位為毫秒,多久數據庫查詢會被記錄到日志
AllowRoot=0  # 暫時不允許root登陸
User=zabbix  # 允許zabbix用戶登錄

 (8)修改完/etc/zabbix/zabbix_proxy.conf配置文件之后,重新其中zabbix-proxy服務。

[root@node4 zabbix]# systemctl restart zabbix-proxy  # 重啟zabbix-proxy服務
[root@node4 zabbix]# systemctl enable zabbix-proxy   # 設置為開機啟動
[root@node4 zabbix]# tail -f /var/log/zabbix/zabbix_proxy.log   # 查看zabbix-proxy日志是否存在異常
 18333:20200223:192321.819 proxy #52 started [poller #15]
 18328:20200223:192321.821 proxy #47 started [poller #10]
 18334:20200223:192321.830 proxy #53 started [poller #16]
 18329:20200223:192321.832 proxy #48 started [poller #11]
 18339:20200223:192321.841 proxy #58 started [unreachable poller #1]
 18330:20200223:192321.843 proxy #49 started [poller #12]
 18338:20200223:192321.852 proxy #57 started [poller #20]
 18340:20200223:192321.876 proxy #59 started [icmp pinger #1]
 18335:20200223:192321.876 proxy #54 started [poller #17]
 18337:20200223:192321.887 proxy #56 started [poller #19]

5、在node1被監控主機上安裝zabbix-agent包

 (1)配置zabbix.repo阿里雲倉庫

[root@localhost yum.repos.d]# cat zabbix.repo
[zabbix]
name=Zabbix Official Repository - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/\$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591
  
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/\$basearch/
enabled=1
gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX
gpgcheck=1
  
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

(2)安裝zabbix-agent包

[root@node1 ~]# yum install zabbix-agent -y

(3)修改node1被監控主機的zabbix-agent配置文件:/etc/zabbix/zabbix-agentd.conf

Server=192.168.7.100,192.168.7.104  # zabbix-sever服務器端的IP地址及proxy代理的IP地址
ServerActive=192.168.7.104  # zabbix-proxy代理服務器的IP地址
Hostname=192.168.7.101  # 本地node1主機的IP地址

(4)重啟zabbix-agent服務,並設置為開機啟動

[root@node1 yum.repos.d]# systemctl restart zabbix-agent
[root@node1 yum.repos.d]# systemctl enable  zabbix-agent

(5)在zabbix網頁上添加新的主機,將node1主機的IP地址及主動模式的模板添加上

 (6)將創建的主動模式的模板關聯上

 (7)修改template OS Linux-active模板中的自動發現規則里邊的被動模式

 (8)將網絡的被動模式、監控項原型和系統、監控項原型的被動模式都改為主動模式

 (9)將系統的被動模式改為主動模式,時間間隔改為5s,實際生產中改為五分鍾。

 (10)修改監控項原型里邊的被動模式和時間間隔5s,生產中改為5m,因為時間有限,這里只演示一個示例,其他的就不在此操作,但是已經全部修改完。

 (11)此時查看proxy主動模式已經變為綠色的圖標

 (12)此時監測的圖形也已經有了信息。

 實戰三:實現proxy代理被動模式的zabbix監控服務(不常用)

1、在數據庫上創建被動模式數據庫  

(1)在數據庫上創建被動模式數據庫並授權

[root@nginx doc]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 160
Server version: 10.3.10-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| mysql               |
| performance_schema  |
| zabbix_proxy_active |
+---------------------+
4 rows in set (0.000 sec)

MariaDB [(none)]> create database zabbix_proxy_passive  character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> grant all privileges on zabbix_proxy_passive.* to zabbix_proxy_passive@'192.168.7.%' identified by '123456';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> 

2、在node5上安裝zabbix-proxy-mysql包

(1)安裝zabbix-proxy-mysql包

[root@node5 yum.repos.d]# yum install zabbix-proxy-mysql -y

在node5主機上查看log,可以看到此時的數據庫不是zabbix的數據庫,需要初始化數據庫

(2)在node5主機上初始化zabbix_proxy_mysql數據庫(被動模式的主機)

[root@node5 ~]# zcat  /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz   | mysql -uzabbix_proxy_passive -h192.168.7.103 -p123456 zabbix_proxy_passive  # 192.168.7.103是遠程連接的數據庫地址

 將node4主機的主動模式的zabbix-proxy配置文件傳到被動模式的主機上,並稍微修改即可

[root@node4 zabbix]# scp /etc/zabbix/zabbix_proxy.conf  192.168.7.105:/etc/zabbix/zabbix_proxy.conf

(3)修改被動模式的zabbix proxy代理配置文件:vim /etc/zabbix/zabbix_proxy.conf,主要修改以下幾項,其他的都與主動模式的配置一致

[root@node5 yum.repos.d]# grep "^[a-Z]" /etc/zabbix/zabbix_proxy.conf 
ProxyMode=1
Server=192.168.7.100
Hostname=zabbix_proxy_passive
DBName=zabbix_proxy_passive
DBUser=zabbix_proxy_passive
EnableRemoteCommands=1
LogRemoteCommands=0

啟動zabbix-proxy服務:systemctl start zabbix-proxy

(4)在zabbix網頁上進行創建被動模式的代理

(5)此時查看zabbix網頁,被動模式的圖標已經變為綠色

3、在node2上安裝zabbix-agent服務

(1)安裝zabbix-agent包

# yum install zabbix-agent -y

(2)配置zabbix-agent文件:vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.7.105  # 被動模式proxy主機的IP地址
Hostname=192.168.7.102 # 本地主機的IP地址

4、在zabbix網頁上創建被動模式的主機

(1)創建主機

 (3)關聯被動模式模板

 (4)此時網頁監控的被動模式顯示比較慢,可以在node5上安裝zabbix-get包進行測試驗證:

# yum install zabbix-get  -y
# zabbix_get -s 192.168.7.102 -p 10050 -k "agent.ping"  # 驗證返回的結果是1,說明配置正確
1

實戰四:主動模式監控tomcat服務

1、安裝tomcat服務

(1)在node1主動模式的主機上安裝tomcat服務,具體安裝過程見以下鏈接:https://www.cnblogs.com/struggle-1216/p/12307115.html

[root@node1 yum.repos.d]# yum install java-1.8.0-openjdk -y  # yum安裝jdk版本
[root@node1 yum.repos.d]# java -version   # 查看此時jdk版本
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

(2) 從官網下載tomcat二進制安裝包 http://tomcat.apache.org/

下載路徑:https://archive.apache.org/dist/tomcat/

[root@node2 ~]# tar xvf apache-tomcat-8.5.42.tar.gz  -C /usr/local
[root@node2 ~]# ln -sv  /usr/local/apache-tomcat-8.5.42/  /usr/local/tomcat
‘/usr/local/tomcat/apache-tomcat-8.5.42’ -> ‘/usr/local/apache-tomcat-8.5.42/’

(3)配置tomcat參數vim /usr/local/tomcat/bin/catalina.sh

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=192.168.7.101" #tomcat主機自己的IP地址,不要寫zabbix服務器的地址

(4)啟動tomcat服務

[root@node2 tomcat]# ./bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@node2 tomcat]# ss -nlt
State       Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port             
LISTEN      0      100                                  127.0.0.1:25                                                       *:*                 
LISTEN      0      128                                          *:22                                                       *:*                 
LISTEN      0      50                                        [::]:12345   # 驗證監聽了12345端口                                               [::]:*                 
LISTEN      0      100                                      [::1]:25                                                    [::]:*                 
LISTEN      0      1                           [::ffff:127.0.0.1]:8005                                                  [::]:*                 
LISTEN      0      50                                        [::]:22567                                                 [::]:*                 
LISTEN      0      100                                       [::]:8009                                                  [::]:*                 
LISTEN      0      50                                        [::]:35756                                                 [::]:*                 
LISTEN      0      100                                       [::]:8080     # 監聽8080的tomcat端口                                             [::]:*                 
LISTEN      0      128                                       [::]:22   

2、在數據庫(node3主機上安裝zabbix-java-gateway包)並配置

(1)安裝zabbix-java-gateway包

[root@nginx doc]# yum install zabbix-java-gateway -y

(2)配置zabbix_java_gateway.conf文件

[root@nginx doc]# vim /etc/zabbix/zabbix_java_gateway.conf 
LISTEN_IP="0.0.0.0"  # 默認監控0.0.0.0的IP地址
LISTEN_PORT=10052 # 默認監控10052端口
START_POLLERS=5  # 啟動多少個進程輪詢java,要和java 應用保持一定關系
TIMEOUT=30   # 超時時間30s,最大時間也就是30s,盡量超時時長改大點,否則后端服務器還未響應,當大於超時時長才進行響應,此時java-gateway已經顯示超時。

(3)重啟zabbix-java-gateway服務:systemctl restart  zabbix-java-gateway  

3、在zabbix網頁上配置JMX接口

(1)在zabbix網頁上添加主動模式的tomcat服務(在原有的主動模式模板的基礎上進行添加)

 (2)添加JMX接口

 

(3)關聯自定義的tomcat的JMX模板,如果沒有自定義的模板,也可以添加Template APP Apache Tomcat JMX模板即可。

 (4)此時可以看到JMX接口已經變綠

 

 

 

 

  

  

  

  

  

 

  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM