2023年9月22日 星期五

Zabbix monitor MariaDB/MySQL Service

Zabbix monitor MariaDB/MySQL Service

如果使用MariaDB/MySQL資料庫,想要了解MariaDB/MySQL運作狀態,可以使用Zabbix Server進行服務監控。


設備環境

以Zabbix Server 為示範,OS為Ubuntu Linux LTS 22.04,資料庫為MariaDB-10.6.12。
資料庫安裝參考Zabbix Server安裝過程

MariaDB/MySQL設定

使用root帳號登入資料庫,建立用於監控的 MySQL 使用者(帳號及密碼請自行決定):
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '密碼';
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
01-create mysql user

帳號測試
mysql -u zbx_monitor -p
show databases;
02-check mysql user


Zabbix WEB設定

預計使用Zabbix Server內建Templates/Databases 的MySQL by Zabbix agent 2 進行監控。

MySQL by Zabbix agent 2

官方連結說明翻譯:
此範本專為 Zabbix 透過 Zabbix agent 2 輕鬆部署 MySQL 監控而設計,不需要任何外部腳本。

新增頁面設定如下:
02-create mysql host


依官網說明在Maros頁面新增11組參數,並填入對應的值。
{$MYSQL.USER}
MySQL user name.
{$MYSQL.PASSWORD}
MySQL user password.
{$MYSQL.ABORTED_CONN.MAX.WARN}
3
{$MYSQL.REPL_LAG.MAX.WARN}
30m
{$MYSQL.SLOW_QUERIES.MAX.WARN}
3
{$MYSQL.BUFF_UTIL.MIN.WARN}
50
{$MYSQL.DSN}
tcp://127.0.0.1
{$MYSQL.CREATED_TMP_TABLES.MAX.WARN}
30
{$MYSQL.CREATED_TMP_DISK_TABLES.MAX.WARN}
10
{$MYSQL.CREATED_TMP_FILES.MAX.WARN}
10
{$MYSQL.INNODB_LOG_FILES}
2
03-add mysql macros


在Configuration > Host中新增MySQL by Zabbix agent 2的Templates。

Zabbix使用Zabbix agent2監控MariaDB/MySQL Service,是由Zabbix Server透過監控主機的Zabbix agent2捉取資料,屬於被動模式。

2023年9月21日 星期四

Zabbix monitor PHP-FPM Service

Zabbix monitor PHP-FPM Service

如果使用Apache+php-fpm建置網站,想要了解php-fpm運作狀態,可以使用Zabbix Server進行服務監控。

設備環境

以Zabbix Server 為示範,OS:Ubuntu Linux LTS 22.04,Apache-2.4.52,php-fpm8.1

PHP-FPM設定

建立PHP-FPM的監控頁面,在設定檔新增/status,/ping設定。
目錄為 /etc/php/8.1/fpm/pool.d/,設定目錄需確認php-fpm的安裝版本,版本會影響指令及程式目錄,如果不同請自行修正。
# sudo nano /etc/php/8.1/fpm/pool.d/www.conf
---
pm.status_path = /status
ping.path = /ping
---
01 php-fpm status


修改完成後,進行設定檔測試。
# sudo php-fpm8.1 -t
無問題後直接重新載入設定檔。
# sudo systemctl reload php8.1-fpm
02-setup php-fpm status

APACHE設定

在Apache的設定檔增加PHP-FPM監控頁面。設定檔案為/etc/apache2/sites-available/000-default.conf。
設定Require ip 127.0.0.1讓只有本機可以讀取監控頁面。如果需要其它ip讀取,請自行增加。
使用ProxyPass 功能去讀取sock,實際位置如果不同請自行修正。

# sudo vim /etc/apache2/sites-available/000-default.conf
---
    # add php8.1-fpm status
    <LocationMatch "/status">
        Require ip 127.0.0.1
        # Require ip 1.2.3.4    # Your IP here
        # Adjust the path to the socket if needed
        ProxyPass "unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost/status"
    </LocationMatch>

    # add php8.1-fpm ping
    <LocationMatch "/ping">
        Require ip 127.0.0.1
        # Require ip 1.2.3.4    # Your IP here
        # Adjust the path to the socket if needed
        ProxyPass "unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost/ping"
    </LocationMatch>
---
03-add apache php-fpm status

修改完成後,進行設定檔測試
# sudo apachectl configtest
無問題後直接重新載入設定檔
# sudo systemctl reload apache2
04 setup apapche php-fpm

在本機使用curl 連接/status,/ping進行測試
# curl -L 127.0.0.1/status
# curl -L 127.0.0.1/ping
05-curl php-fpm  status

測試成功會出現PHP-FPM訊息,可以進入Zabbix WEB設定


Zabbix WEB設定

Zabbix Server內建的Templates>Applications 有PHP-FPM by HTTP,PHP-FPM by Zabbix agent 2種。
06-templates php-fpm


PHP-FPM by HTTP


官方連結說明翻譯:
此範本是由 Zabbix 開發的,用於監控 FastCGI Process Manager (PHP-FPM),無需任何外部腳本即可運作。
由於 Zabbix 批量資料收集,大部分指標都是一次性收集的。
此範本PHP-FPM by Zabbix agent- 透過使用 HTTP 代理遠端輪詢 PHP-FPM 狀態頁面來收集指標。
請注意,此解決方案支援 HTTPS 和重定向。

新增頁面設定如下:
07-PHP-FPM by HTTP


依官網說明在Maros頁面新增7組參數,並填入對應的值。
{$PHP_FPM.PORT}
80
{$PHP_FPM.SCHEME}
http
{$PHP_FPM.HOST}
localhost
{$PHP_FPM.STATUS.PAGE}
status
{$PHP_FPM.PING.PAGE}
ping
{$PHP_FPM.PING.REPLY}
pong
{$PHP_FPM.QUEUE.WARN.MAX}
80
08-PHP-FPM by HTTP MACROS

PHP-FPM by Zabbix agent


官方連結說明翻譯:
此範本是為了透過 Zabbix 代理程式監控 FastCGI 進程管理器 (PHP-FPM) 而開發的,無需任何外部腳本即可運作。
由於 Zabbix 批量資料收集,大部分指標都是一次性收集的。
此範本PHP-FPM by Zabbix agent- 透過使用 Zabbix 代理在本地輪詢 PHP-FPM 狀態頁面來收集指標。
請注意,此模板不支援 HTTPS 和重定向(的限制web.page.get)。
它還使用Zabbix代理程式收集php-fpmLinux進程統計信息,例如CPU使用率、記憶體使用率以及進程是否正在運行。

新增頁面設定如下:
08-PHP-FPM by Zabbix agent


依官網說明在Maros頁面新增7組參數,並填入對應的值。
{$PHP_FPM.PORT}
80
{$PHP_FPM.HOST}
localhost
{$PHP_FPM.STATUS.PAGE}
status
{$PHP_FPM.PING.PAGE}
ping
{$PHP_FPM.PING.REPLY}
pong
{$PHP_FPM.QUEUE.WARN.MAX}
80
{$PHP_FPM.PROCESS_NAME}
php-fpm
09-PHP-FPM by Zabbix agent Macros



在Configuration > Host中新增2個Templates。
10-php-fpm

在資料Items中也可以看到PHP-FPM by Zabbix agent比PHP-FPM by HTTP 多收集 CPU使用率、記憶體使用率以及進程是否正在運行等3種資料。

Zabbix使用Zabbix agent2監控PHP-FPM Service,是由Zabbix Server透過監控主機的Zabbix agent2捉取資料,屬於被動模式。


2023年9月20日 星期三

Zabbix monitor Apache Service

Zabbix monitor Apache Service

如果使用Apache建置網站,想要了解Apache Service運作狀態,可以使用Zabbix Server進行服務監控。

設備環境

以Zabbix Server 為示範,OS為Ubuntu Linux LTS 22.04,Apache為2.4.52

Apache設定

要對Apache Service進行監控,要先啟動status_module模組。
先確認是否有安裝status_module模組。
#apache2ctl -M 2>/dev/null | grep status_module
設定status.conf,開啟/server-status頁面。
#sudo nano /etc/apache2/mods-enabled/status.conf

01-check apache module

預設網頁為/server-status,如果需要可以自行修改,更改後Zabbix設定也要更改。
預設只開啟local連線,如果要開啟其它主機連線,可以修改Require ip 指定ip。

設定完成後重新載入apache2設定檔,再使用curl進行測試。
#sudo systemctl reload apache2
#curl http://127.0.0.1/server-status?auto
02-curl check apache status

可以出現Apache Server status資訊,即設定成功。就可以至Zabbix WEB設定。

Zabbix WEB設定

Zabbix Server內建的Templates>Applications 有Apache by HTTP,Apache by Zabbix agent 2種。


Apache by HTTP

官方連結說明翻譯:
此範本專為 Zabbix 透過 HTTP 輕鬆部署 Apache 監控而設計,不需要任何外部腳本。
此範本Apache by HTTP- 透過使用 HTTP 代理遠端輪詢mod_status來收集指標。

新增頁面設定如下:
07-templates apache by http


在Maros頁面新增4組參數,並填入對應的值。
{$APACHE.STATUS.PORT} 
80
{$APACHE.STATUS.PATH} 
server-status?auto
{$APACHE.STATUS.SCHEME} 
http
{$APACHE.RESPONSE_TIME.MAX.WARN} 
10
07-templates apache by http add Maros



Apache by Zabbix agent

官方連結說明翻譯:
此範本專為 Zabbix 透過 Zabbix 代理程式輕鬆部署 Apache 監控而設計,不需要任何外部腳本。
此範本Apache by Zabbix agent- 透過使用 Zabbix 代理在本地輪詢mod_status來收集指標。

新增頁面設定如下:
05-templates apache by zabbix agent

在Maros頁面新增6組參數,並填入對應的值。
{$APACHE.STATUS.HOST} 
127.0.0.1
{$APACHE.STATUS.PORT} 
80
{$APACHE.STATUS.PATH} 
server-status?auto
{$APACHE.STATUS.SCHEME} 
http
{$APACHE.RESPONSE_TIME.MAX.WARN} 
10
{$APACHE.PROCESS_NAME} 
apache2
06-templates apache by zabbix agent add marcos


在Configuration > Host中新增2個Templates。
add two templates


在Monitoring > Hosts中2個Templates都有蒐集到資料。也可以發現使用Apache by Zabbix agent比Apache by HTTP多了4種資料。
check templates status


Apache by Zabbix agent多蒐集Apache CPU utiliztion,Apache Memory usage(rss),Apache Memory usage(vsize),Apache Number of running processes 等資訊。
different data

Zabbix使用Zabbix agent2監控Apache Service,是由Zabbix Server透過監控主機的Zabbix agent2捉取資料,屬於被動模式。

2023年9月19日 星期二

Zabbix Monitoring Linux use Zabbix agent-2

使用Zabbix agent2 監控 Linux-2

在Linux 主機安裝Zabbix-agene2,也進行設定完成就可以進入Zabbix WEB設定

Zabbix WEB設定

1.點選Configuration > Host > Create host (右上方)。
web create host
2.新增Host name, 減少錯誤及方便辦識,寫入主機hostname為d11。
Web create host02
3.新增Groups,可以新增群組或點選select使用Zabbix 內建的Host groups-Linux servers。

Web create group
4.新增Templates,點選select,可使用Zabbix 內建的Templates。
web select tempaltes01
5.進入可以看到各種Tempalte分類,點選Tempalte/Operating systems。
web select templates02
6.進入後就可以各種作業系統的Templates,點選Linux by Zabbix agent active。
web select templates linux agent active
7.新增使用監控的Interfaces,點選Add 新增Agent。
web select add linux agent

8.新增主機的IP,其它部分都不用更改,如果設錯,直接點選Remove,重新設定。
web select templates linux agent active02

9‧點選右下方Add,就完成新增主機,在Configuration > Host頁面就可以看到新增主機d11。
add host success01
10.再新增一台主機d11-agent2,Templates使用Linux by Zabbix agent。
add d11 agent2
11.在等待一段時間,點選Monitoring > Hosts 就可以看到Zabbix都有收到2台主機資料。
monitoring hosts data

在Avaliability的以看出d11-agent2使用Passive 模式ZBX亮綠燈,d11使用Active 模式ZBX未亮燈,但資料確都有收到,可以了解到agent模式的差別。

12.如果要對監控主機設備進行啟動/停用/刪除等動作,可以至Configuration > Host,點取主機進行操作。
host start stop delete



補充資料:
關於Linux by Zabbix agent activeLinux by Zabbix agent 2個Template監控項目及相關資料,可以參考原廠說明。主要監控的內容有 block devices(disk I/O) 讀寫速度、CPU 使用率、filesystems 空間使用、generic (process、開機時間、已登入使用者數量)、memory 使用率、network interfaces 流量、agent 狀態。如果有新的發現(discovery)也會自動蒐集起來。

2023年9月18日 星期一

Zabbix Monitoring Linux use Zabbix agent-1

使用Zabbix agent2 監控 Linux-1

Zabbix agent2

依據官方手冊說明,Zabbix agent 2是新一代的Zabbix agent,可以代替Zabbix agent使用。 
Zabbix Agent 2 的開發目的是:
  • 減少TCP連接數
  • 提供改進的檢查並發性
  • 可以通過插件輕鬆擴展。插件應該能夠:
         提供僅由幾行簡單代碼組成的簡單檢查
         提供複雜的檢查,包括長時間運行的腳本和獨立的數據收集以及定期發回數據
  •  成為 Zabbix agent的直接替代品(因為它支持之前的所有功能)
將使用Zabbix agent2,搭配對應的Templates來監控Linux主機。

Zabbix agent2下載及安裝


Zabbix-agent2需要根據主機Linux OS來安裝,可以參考原廠網頁去下載安裝。
zabbix agent download



預計安裝Ubuntu 22.04 /Debian11 /RedHat Enterprise Linux 9/Oracle Linux 9 

Ubuntu 22.04 下載 Zabbix-agent2

# wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
# dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
# apt update

Ubuntu 22.04 安裝Zabbix-agent2

# apt install zabbix-agent2 zabbix-agent2-plugin-*

Debian11 下載 Zabbix-agent2

# wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-4+debian11_all.deb
# dpkg -i zabbix-release_6.0-4+debian11_all.deb
# apt update

Debian 11 安裝Zabbix-agent2

# apt install zabbix-agent2 zabbix-agent2-plugin-*

RedHat Enterprise Linux 9/Oracle Linux 9 下載 Zabbix-agent2

RedHat Enterprise Linux 9/Oracle Linux 9 要安裝Zabbix-agent2,請確認是否有安裝EPEL repository. 
如果有請先在/etc/yum.repos.d/epel.repo 增加excludepkgs=zabbix*,避免安裝EPEL 內建的Zabbix agent2,造成系統問題。

#vi /etc/yum.repos.d/epel.repo
---
[epel]
excludepkgs=zabbix*
---

# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm

# dnf clean all

RedHat Enterprise Linux 9/Oracle Linux 9 安裝 Zabbix-agent2

# dnf install zabbix-agent2 zabbix-agent2-plugin-*

Zabbix agent2設定

修改Zabbix agent2設定檔,指定Zabbix Server的ip,設定主機名稱。
# sudo vi /etc/zabbix/zabbix_agent2.conf
---
Server=192.168.1.101
ServerActive=192.168.1.101
Hostname=主機名稱
---
Server及ServerActive請指定為Zabbix Server的ip,2種設定後面會說明。主機名稱請確認設定為hostname 指令的主機名稱,在Zabbix Server設定主機時也要設定相同主機名稱,減少主機名稱無法對應的問題產生。

Zabbix agent2啟動

啟動Zabbix agent2 服務,並設定為開機啟動
# systemctl restart zabbix-agent2
# systemctl enable zabbix-agent2

Zabbix agent2模式

Zabbix agent2的有2種運作方式,分別為Passive 及Active 模式 ,設定檔Server及ServerActive 設定分別對應2種模式。

Passive 模式:

設定 Server=192.168.1.101 ,此模式下Zabbix Server 會定期跟 Agent 端溝通獲取資料。在Linux 主機可以使用Linux by Zabbix agent Templates。

Active 模式 :

設定 ServerActive=192.168.1.101 ,此模式下Agent 會主動提供資料給Zabbix Server資料。在Linux 主機可以使用Linux by Zabbix agent active Templates。

在Zabbix agent 的安裝過程都有加裝zabbix-agent2-plugin-*,都可以運用不同的plugin,搭配Zabbix提供的多種Template,方便監控不同的服務。


後續登入Zabbix WEB進行設定

2023年9月17日 星期日

Zabbix WEB設定

Zabbix WEB設定

Ubuntu 安裝 Zabbix 後,使用瀏覽器打開 Zabbix UI  http://ip/zabbix 進行設定

Zabbix 設定流程

1.第一次登入Zabbix WEB會進入設定頁面,直接預設使用English,如果想使用中文,之後可以更改,直接Next step。
zabbix web setup01


2.此頁會去比對主機PHP是否符合Zabbix安裝要求,依照前面安裝步驟,有增加PHP設定,所以參數都會ok,直接Next step。
zabbix web setup02


3.設定DB相關連線資訊,依照前面安裝步驟,使用MySQL/Mariadb,都不需要更改,只要填入DB 密碼,直接Next step。
zabbix web setup03


4.設定主機名稱、時區、佈景,直接Next step。
zabbix web setup04


5.確認設定都正確,直接Next step。
zabbix web setup05


6.直接finish,就安裝完成,會轉到登入頁面。
zabbix web setup06


7.登入Zabbix首頁,預設帳號Admin,密碼zabbix
zabbix login

Zabbix UI 介紹

1.進入後會到Alldashboards / Global view ,看到Zabbix 系統資訊。
   如果有異常訊息都會呈現在下方面板。 

2.點選左側Configuration>host,就可以看到監控的主機設備。
   可以看到Zabbix Server主機使用Zabbix agent (127.0.0.1:10050)方式監控,
   監控使用Linux by Zabbix agent, Zabbix server health 2個Template。
zabbix configuration hosts

3.點選Monitoring > Hosts,可以看到監控主機使用Templates蒐集的Lateast data,Problems,Graphs,Dashboards。直接選取想觀看的項目即可。
Monitoring hosts


4.Lateast data 
Template預設的監控項目, 即時資料數據
Lateast data


5.Graphs
Template預設的監控項目圖形,設定時間區觀看
Graphs


6.Dashboards
可以選擇預設的Dashborads 設定時間區觀看監控項目資訊
Dashboards