?

使用ARM64架構主機搭建Zabbix運維監視運行環境

2020-04-08 09:30郭彬吳學離周浩潔
電腦知識與技術 2020年3期
關鍵詞:配置文件命令設置

郭彬 吳學離 周浩潔

摘要:計算機操作系統的確為系統運維人員提供了豐富的指令集,可以監控到系統所有的狀態信息;但是這些都是分立的命令,給出的均是命令行輸出,不利于分析和發現問題。Zabbix是一個基于WEB的分布式監控系統開源軟件,可以集中監控各種設備運行狀態,保障系統安全運營。因此需要為計算機運營系統配置一套Zabbix監控系統運行環境,便于系統運維。目前ARM64架構主機已經可以在計算機系統中承擔部分輕量級的業務角色,同時具備更低的系統生成和運營成本,因此我們嘗試在ARM64主機上搭建Zabbix集中監控系統。文中給出系統搭建的過程,明確安裝過程中需要注意的配置操作,深化對操作系統、關系數據庫等相關軟件按的認識;最終我們展示了Zabbix系統發布系統的可視化系統運行數據。

關鍵詞:Linux操作系統;ARM架構;Nginx服務;MySQL數據庫;Zabbix集中監控系統

中圖分類號:TP311 文獻標識碼:A

文章編號:1009-3044(2020)03-0242-04

1 概述

Zabbix系統由兩部分組成,Zabbix_server和Zabbix_agent;Zabbix_server可以通過Agent,SNMP等多種接口方式獲取被監控服務器狀態;它可以部署在Linux/UNIX等操作系統上;支持Oracle,MySQL和DB2等主流數據庫系統;靈活的信息接入方式,支持多種主流操作系統和數據庫,兼具易用性和易維護性,這些都是我們選擇Zabbix的原因。

配置Zabbix需要事先在相關節點上安裝Linux操作系統;運行Zabbix_server的節點需要安裝MySQL數據庫,畢竟相對于Oracle和DB2而言MySQL是一個輕量級的關系數據庫系統,更適用于當前系統應用;Zabbix_server還需要一個web信息發布平臺,我們選擇Nginx和PHP為其提供web發布功能。綜上所述,我們要為Zabbix_server搭建一個完整的LMNP(Linux OS,MySQL,Nginx和PHP)運行環境。

2 系統運行環境描述

ARM主機選用天啟科技的AI0-3399J高性能主機,主機上搭載RK3399 64位處理器,安裝Ubuntu操作系統,通過操作系統命令uname -nmo: lsb release -d[1]可以杏到系統參數如下:

解讀命令輸出信息:主機名firefly,aarch64為ARM64處理器指令集,操作系統版本為Ubuntu16 for ARM;同時我們選取一臺X86_64架構主機,通過操作系統命令查看系統參數如下:

計劃在firefly(ARM64架構)主機上部署Zabbix服務和Agent功能,因此需要在該節點上部署LMNP運行環境;由于本節點具備Agent功能,這樣firefly主機提供Zabbix監控服務同時可以監控自身的運行狀態;在X86_64主機上僅部署Zabbix的Agent功能,發送主機運行信息到Zabbix服務節點。

3 在系統主機上配置LMNP運行環境

Linux操作系統已經在各個節點上安裝,略過。我們從MySQL數據庫安裝和配置開始。

3.1 在ARM64主機上配置MySQL數據庫程序

官網下載mysql-5.7.26.tar.gz源碼包,在預設mysql用戶家目錄下解壓和編譯MySQL數據程序;在編譯MySQL之前需要準備其它相關軟件,如boost_1_59_o和cmake等,具體配置選項和編譯參考相關技術網站。MySQL程序編譯完成之后,配置/etc/my. cnf文件和/etc/init.d/mysqld文件,通過如下命令行程序初始化MySQL數據庫

./bin/mysqld -initialize -basedir=/media/nvmeOnl/mysql -datadir=/usr/users/mysqldata[2]

如上述操作成功完成后在輸出信息結尾將給出初始的口令,可以通過mysql -u root -p登陸MySQL數據庫,進入mysql程序命令行交互界面,執行SQL命令如下:

set password=password(ytdf000)[3];

flush privileges;

更新MySQL數據庫root用戶口令并即時生效,本例設置MySQL數據庫root用戶口令為ytdf000,實際口令設置復雜度需參考系統需求。通過操作系統命令systemctl enable mysqld設置MySQL服務自動啟動。

如上述操作完成MySQL數據庫軟件編譯部署和數據庫初始化。

3.2 在MySQL數據庫系統中生成Zabbixdb數據庫

當前步驟需要完成Zabbix應用數據庫創建,然后進行Zab-bix應用程序的編譯部署。在ARM64主機Ubuntu系統中預設zabbix用戶,在用戶家目錄下部署Zabbix軟件;官網下載zab-bix-4.0.13rcl.tar.gz代碼包并解壓,首先執行Zabbix代碼包釋放路徑下的MySQL腳本,創建Zabbix應用數據庫,相關腳本如下:sql是數據庫記錄腳本;在上述腳本路徑位置以MySQL的root用戶進入mysql交互命令界面,參考如下步驟:

1)創建zabbixdb數據庫

create database zabbixdb character set utf8[3];

2)聲明zabbixdb數據庫下名為zabbix的用戶

grant all on zabbixdb.半 to zabbix@dbsl identified by'ytdf000[3]

本例口令為ytdf000;

3)執行Zabbix數據庫系統生成腳本

通過use zabbixdb;命令切換到zabbix數據庫,通過source命令執行Zabbix應用數據庫腳本,如下:

source schema.sql;

sourcelmages.sql;

source data.sql;

通過終端提示可以驗證腳本執行是否正確??梢酝ㄟ^show tables;等命令檢查zabbixdb參數表生成情況。

3.3 在ARM64主機上配置Nginx信息發布引擎

官網下載nginx_1.16.1.orig.tar.gz,在解壓釋放路徑下編譯Nginx程序,命令如下:

./configure -prefix=/media/nvmeOnl/nginx; make&&makeinstall:

編譯完成后需要編輯其配置文件/media/nvmeOn l/nginx/conf/nginx.conf以適應Zabbix的php格式信息發布腳本,修改內容如下:

①第20行log_format main去掉注釋使生效;

②第24行access_log logs/access.log main;去掉注釋使生效;

③第44行index后添加index.php;

④第65-71行取消注釋,開放有關location - Vphp$的語句塊;

在文件安裝路徑/media/nvmeOnl/nginx/sbin目錄下直接執行命令:./nginx—c/media/nvmeOnl/nginx/conf/nginx.conf[4],

通過系統命令簡單測試,命令和查詢結果如下

驗證Nginx進程已經運行;可以在/lib/systemd/system/目錄下編輯nginx.serwce文件,通過systemctl指令配置nglnx自動啟動,配置文件內容參考其它Nginx相關資料。

3.4 在ARM64主機上編譯安裝PHP腳本解釋程序

官網下載php-7.3.4.tar.gz源碼包,并解壓編譯;編譯配置注意結合MySQL并支持php-fpm,具體編譯配置選項參考相關技術論壇;編譯配置監測過程中可能會提示缺少部分相關程序,可以通過Ubuntu系統的apt-get install聯網安裝或者通過官網下載代碼包編譯。運行配置腳本之后通過make&&make in-stall命令編譯安裝;編譯安裝完成后將代碼路徑下的init.d.php-fpm文件拷貝到/etc/init.d路徑下,如命令:

cp./s api/fpm/init.d.php-fpm /etc/init. d/php-fpm

通過systemctl enable php-fpm配置服務自動啟動,通過systemctl start php-fpm運行php進程管理軟件;通過命令

netstat -antp I grep php-fpm檢查配置運行情況顯示

說明php-fpm運行且監聽于9000端口;

在Zabbix配置過程中需要修改php.im部分選項參數,如下表。

上述操作基本完成LNMP的配置。

4 在ARM64主機上編譯安裝Zabbix軟件并配置Zab-bix-server和Zabbix-agent運行

4.1 Zabbix程序的編譯生成

在ARM64主機Ubuntu系統中預設zabbix用戶,在用戶家目錄下部署Zabbix軟件;官網下載zabbix-4.0.13rcl.tar.gz代碼包并解壓,在ARM64上Zabbix程序編譯需要明確使用zabbix-server和zabbix-agent功能,結合MySQL,net-snmp等系統功能,詳細配置參考Zabbix官網和相關論壇;配置完成之后生成編譯腳本文件,通過make&&make install編譯并且安裝。

編譯安裝之后首先編輯$HOME/etc下的zabbix_agentd.conf和zabbix_ server.conf文件。

4.2 Zabbix編輯Zabbix_server運行配置文件

1)在zbbbix用戶家目錄下設置tmp目錄,設置項LogFile=/media/nvmeOnl/z abbix/tmp/zabbix_server.log保存程序運行日志信息;文中設置PID文件生成路徑PidFile=/media/nvmeOnl/zab-bix/tmp/zabbix_server.pid;設置Socket文件生成路徑SocketDir=/media/nvmeOnl/zabbix/tmp;

2)已經在MySQL配置過程中于/etc[hosts設置dbsl網絡主機名;設置DBHost=dbsl;設置Zabbix數據庫名DBName=zab-bixdb,設置訪問Zabbixdb數據庫用戶DBUser=zabbix,訪問口令設置DBPassword=ytdf000;

3)設置子配置文件路徑項Include=/media/nvmeOnl/z abbix/etc/zabbix_server.conf.d/*.conf

4.3 編輯Zabbix_agent運行配置文件

1)設置日志文件保存路徑項為LogFile=/media/nvmeOnl/zabbix/tmp/zabbix_agentd.log;設置PID文件生成路徑為PidFile=/media/nvmeOnl/zabbix/tmp/z abbix_agentd.pid;

2)設置提供Zabbix服務節點Server=172.20.82.41,當前為本機IP;若設置Agent為主動工作方式,ServerActive=172.20.82.41,當前對應本機IP;設置Agent主機Hostname=fire-fly,為本機節點名稱;與Zabbix信息發布系統配置的host主機列表一致,見下文。

3)設置子配置文件路徑項為Include=/media/nvmeOnl/zab-bix/etc/zabbix_agentd.conf. d/*.conf;

4.4 配置Zabbix程序自動運行

完成進程配置文件修改后配置Zabbix服務和Agent進程自動運行,切換到非HO ME/zabbix-4.0.1 3rc l/misc/init.d/debian路徑下,確認zabbix-agent和zabbix-server文件內容,特別是DAE-MON路徑信息是否正確,如下:

DAEMON=/media/nvmeOnl/zabbix/sbin/$ {NAME)

需要結合實際應用程序所在路徑填寫;最后拷貝zabbix-agent和zabbix-server到/etc/init. dl路徑下,通過systemctl enable命令設置zabbix-server和zabbix-agent自動運行;配置完成執行如下命令

顯示zabbix服務和Agent運行;分別監聽于10051和10050端口。

5 配置Zabbix信息發布

5.1 將Zabbix信息發布目錄配置到Nginx上

在Zabbix用戶家目錄下,切換路徑到$HOME/zabbix-4.0.13 rc l/frontends位置,拷貝php目錄到nginx信息發布根目錄下,如下命令

cp -rp php /media/nvmeOnl/nginx/html/zabbix,將php目錄拷貝成zabbix;在新生成的/media/nvmeOnl/nginxf html/zabbix路徑下增加文件phpinfo.php,文件內容為,目的在于調試。

5.2 Zabbix信息發布配置

在運維工作站打開瀏覽器,輸入Nginx服務運行主機地址,本例為http:// 172.20.8 2.4 1/zabbix/setup. php,首次登陸用戶為Admin,口令為zabbix,登人后顯示如下信息發布圖形界面,按照引導操作。

1) Zabbix預配置檢查

單擊Next Step進入Check of pre-requisites界面,主要是檢查php.ini文件配置信息,我們此前做過配置;如果有選項參數仍需要修改,按照提示修改php.im文件中的配置項,然后重新運行php-fpm服務使修改生效;

2)填寫Zabbix數據庫信息

單擊Next Step按鈕進入Configure DB Connection,填寫數據庫類型為MySQL;數據庫主機為dbsl;數據庫端口為3306;數據庫名為zabbixdb;數據庫用戶為zabbix;數據庫登陸口令為ytdf000;上述配置參數均與Zabbix數據庫生成部分相對應;

3)填寫Zabbix服務器信息

單擊Next Step按鈕進入Zabbix server details,填寫主機寫主機名稱firefly或IP;端口號填寫10051;服務器名稱填寫主機名稱或IP;下一步顯示Pre-installation summary(預配置匯總信息);核實無誤單擊Next Step按鈕顯示信息提示配置成功。

6 在X86_64架構主機上部署Zabbix agent

6.1 在X86_64架構主機上編譯Zabbix軟件

在RHEL6.10操作系統中預設zabbix用戶,在用戶家目錄下部署Zabbix軟件;軟件安裝過程與前文所述相似,編譯配置命令為:./c onfigure -prefix=/u sr/local/z abbix -enable-agent

通過編譯選項僅生成zabbix的agent功能。

6.2 編輯Zabbix_agent運行配置文件

編譯安裝完成之后,編輯$HOME/etc/zabbix_agentd.conf文件,修改內容如下:

1)在zabbix用戶家目錄預設tmp目錄,設置PID問價生成位置項為PidFile=/u sr/users/zabbix/tmp/z abbix_agentd.pid;設置日志文件保存位置為LogFile=/usr/us ers/zabbix/tmp/z ab -bix_agentd.log;

2)設置提供Zabbix服務節點Server=172.20.82.41,指向Zb-bix server運行節點IP;若設置Agent為主動工作方式,Server-Active=172.20.82.41.指向提供Zabbix服務節點IP;設置Agent主機Hostname=lpdesktop,為本機節點名稱;

3)設置子配置文件路徑項為Include=/usr/users/zabbix/etc/zabbix_agentd.conf.d/* .conf;

6.3 配置Zabbix_agent服務自動運行

在zabbix代碼釋放路徑下切換到/usr/users/zabbix/zabbix-4.0.13 rc l/misc/init.d/fedora/core路徑下,確認zabbix_agentd文件內容路徑信息是否正確,如下:

顯示zabbix_agentd運行,監聽于10050端口。

6.4 在Zabbix信息發布系統中加入lpdesktop主機

1)在Zabbix信息發布系統中加入被監控主機信息

通過瀏覽器登錄我們剛剛配置好的Zabbix信息發布系統,點擊第一行菜單中Configuration熱點,然后點擊第二行菜單的host熱點,點擊右上Create Host按鈕,在彈出的Hosts頁面填寫新增的主機信息,Hostname項填寫被監控主機節點名,在此填寫lpdesktop,與前文zabbix_agent。conf文件中Hostname項一致;通過Select按鈕選取主機功能所屬組,本例為Linux Servers和Zabbix Server;代理接口填寫當前主機可以訪問Zabbix服務器的網絡接口IP,Agent端口號10050;操作完成需要單擊Update按鈕確認;

2)為被監控主機選取Templates

返回Hosts頁面,看到lpdesktop主機已經加上;單擊host列表中的lpdesktop主機,再次進入其host設置界面;點擊Tem-plates進入Templates配置頁面,通過Select選取模板類型;例如本例選擇Temlate APP Zabbix Server和Template OS Linux,通過單擊ADD按鈕加入已連接模板列表,通過Update按鈕更新主機信息;

3)為被監控主機設置部署信息

在被監控lpdesktop主機的hosts設置界面,單擊Host inven-torv進入主機部署頁面,默認狀態為Disabled,單擊Automated按鈕,而后單擊頁面底部的Update按鈕,完成操作返回返回Hosts頁面。

完成上述操作就完成了在Zabbix系統中加入一臺被監控目標主機的加人工作,通過Hosts頁顯示主機已經處于Enabled狀態。

通過Zabbix瀏覽頁面第一行Monitor按鈕進入系統監視頁,通過graphs選取圖表輸出功能;在Group下拉列表選取

Linux servers,在Host下拉列表選取lpdesktop,在Graph下拉列表選取需要查看的內容,效果如下圖:

如上圖示,說明lpdesktop主機運行狀態信息通過自身的Zabbix_agent服務發送到ARM主機的Zabbix_server,再由Nginx信息發布顯示到瀏覽器上,Zabbix agent功能配置完成。

7 總結

我們終于完成了將Zabbix功能部署于ARM主機的工作。實現了對計算機系統的有效監控,同時兼顧監控系統的投入和運營的經濟性。需要說明的是Zabbix集中監控系統提供的功能很完備,還可以監視諸如Solaris,AIX和HP-UX等UNIX小型機運行狀態,被監控主機僅需要部署Zabbix-agent功能,部署相對簡單,資源占用少,不影響服務器自身業務負荷;也可以經由SNMP,JMX和IPMI接口實現對目標主機監控,由于實驗環境和篇幅所限不在此敘述。

通過上文我們可以基本了解在LMNP齊備的情況下配置Zabbix服務的過程,同時更深入了解操作系統、關系數據庫等相關知識;并且我們驗證了ARM64架構處理器的處理能力,完全可以勝任一些輕量級的業務角色。

參考文獻:

[1]劉遄.Linux就該這么學[M].北京:人民郵電出版社,2017:47-78,89-96.

[2][美]保羅,迪布瓦(Paul DuBois)著,張雪平,何莉莉,陶虹等譯.MySQL技術內幕(第5版).,北京:人民郵電出版社,2015:412-440.

[3]劉增杰.MySQL5.7從入門到精通[M].北京:清華大學出版社,2016:29-36.37-46.47-79.347-365.

[4]高俊峰.高性能Linux服務器構建實戰:運維監控、性能調優與集群應用(第1版)[M].北京:機械工業出版社,2012:1-14,22-28.

猜你喜歡
配置文件命令設置
只聽主人的命令
中隊崗位該如何設置
忘記ESXi主機root密碼怎么辦
移防命令下達后
打印機設置
這是人民的命令
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
地鐵出入段線轉換軌設置
對盧溝橋事變期間一份“作戰命令”的考析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合