一,、簡(jiǎn)介1.1 zabbix監(jiān)控框架工具介紹Zabbix架構(gòu)圖 zabbix是一個(gè)企業(yè)級(jí)分布式開(kāi)源監(jiān)控解決方案,,能夠監(jiān)控眾多網(wǎng)絡(luò)參數(shù)和服務(wù)器的健康度,、完整性。使用靈活的告警機(jī)制,,允許用戶(hù)為幾乎任何事件配置基于郵件的告警,。基于存儲(chǔ)的數(shù)據(jù)提供出色的報(bào)表和數(shù)據(jù)可視化功能,。這些功能使得zabbix成為容量規(guī)劃的理想選擇,。 zabbix 支持主動(dòng)輪詢(xún)(polling)和被動(dòng)捕獲(trapping)。Zabbix所有的報(bào)表,、統(tǒng)計(jì)數(shù)據(jù)和配置參數(shù)都可以通過(guò)基于 Web 的前端頁(yè)面進(jìn)行訪(fǎng)問(wèn),。基于 Web 的前端頁(yè)面確保您可以在任何地方訪(fǎng)問(wèn)您監(jiān)控的網(wǎng)絡(luò)狀態(tài)和服務(wù)器健康狀況,。適當(dāng)?shù)呐渲煤?,Zabbix 可以在監(jiān)控 IT 基礎(chǔ)設(shè)施方面發(fā)揮重要作用。無(wú)論是對(duì)于有少量服務(wù)器的小型組織,,還是擁有大量服務(wù)器的大企業(yè)而言,,同樣適用,。 Zabbix 是免費(fèi)的,。Zabbix 是根據(jù) GPL 通用公共許可證的第二版編寫(xiě)和發(fā)布的。這意味著產(chǎn)品源代碼是免費(fèi)發(fā)布的,,可供公共使用,。 1.2 優(yōu)缺點(diǎn)優(yōu)點(diǎn): (1) 分布式監(jiān)控 Zabbix的分布式監(jiān)控是天生具有的功能,適合于構(gòu)建分布式監(jiān)控系統(tǒng),,具有node,,proxy2種分布式模式。 (2) 自動(dòng)化 Zabbix自動(dòng)化功能,,自動(dòng)發(fā)現(xiàn),,自動(dòng)注冊(cè)主機(jī),自動(dòng)添加模板,,自動(dòng)添加分組,,使得Zabbix天生是自動(dòng)化運(yùn)維利器的首選, 當(dāng)然與自動(dòng)化運(yùn)維工具搭配,,puppet+zabbix,,或者saltstack+zabbix,,那是如魚(yú)得水。 (3) 自定義監(jiān)控 Zabbix的自定義監(jiān)控比較方便,,自定義監(jiān)控項(xiàng)非常簡(jiǎn)單,,支持變量,支持low level discovery,,自動(dòng)發(fā)現(xiàn)功能實(shí)現(xiàn)批量web url監(jiān)控,。 (4) 觸發(fā)器 觸發(fā)器也就是報(bào)警條件有多重判斷機(jī)制,當(dāng)然,,這個(gè)需要去研究一下,,這也是zabbix的精華之處。 (5) 支持多種監(jiān)控方式 支持agentd,,snmp,,ipmi,jmx,;4種監(jiān)控方式,。 (6) 提供api功能 API功能為Zabbix二次開(kāi)發(fā)提供方便,你可以選用zabbix來(lái)進(jìn)行二次深度開(kāi)發(fā),,結(jié)合cmdb資產(chǎn)管理系統(tǒng),,業(yè)務(wù)管理系統(tǒng),從而使你的自動(dòng)化運(yùn)維系統(tǒng)達(dá)到新的高度,。 缺點(diǎn): (1)不如Nagios插件組合多,,Nagios監(jiān)控工具后面會(huì)整理出來(lái) (2)zabbix后端用 C 開(kāi)發(fā),界面用 PHP 開(kāi)發(fā),,定制化難度很高,。Prometheus后端用 golang 開(kāi)發(fā),前端是 Grafana,,JSON 編輯即可解決,定制化更有優(yōu)勢(shì),。zabbix更適合監(jiān)控物理機(jī)環(huán)境,Prometheus更適合云環(huán)境的監(jiān)控,,對(duì)openstack和k8s有更好的集成,。監(jiān)控?cái)?shù)據(jù)存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)內(nèi),如 MySQL,,很難從現(xiàn)有數(shù)據(jù)中擴(kuò)展維度,。 1.3 支持類(lèi)型zabbix支持snmp協(xié)議監(jiān)控,支持命令行監(jiān)控,支持agent客戶(hù)端,,支持Windows環(huán)境,,支持云、容器,、k8s監(jiān)控,。 Zabbix可以實(shí)現(xiàn)二次開(kāi)發(fā)腳本實(shí)現(xiàn)容器云監(jiān)控,,但對(duì)于容器基礎(chǔ)監(jiān)控和K8S監(jiān)控,肯定是不如天然集成的prometheus方便和高效了,,所以建議綜合考慮現(xiàn)狀和成本,,結(jié)合使用 二 部署過(guò)程2.1 安裝包下載使用yum安裝方式在線(xiàn)安裝 2.2 安裝部署1. 更新yum源 # yum update 2.安裝zabbixb包 # rpm -Uvh https://repo./zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 3.安裝server和agent # yum install zabbix-server-mysql zabbix-agent 4. 安裝zabbix前端頁(yè)面,并且配置 # yum install centos-release-scl 編輯文件/etc/yum.repos.d/zabbix.repo vi /etc/yum.repos.d/zabbix.repo [zabbix-frontend] enabled=1 5.安裝zabbix前端包 # yum install zabbix-web-mysql-scl zabbix-apache-conf-scl 6. 創(chuàng)建初始數(shù)據(jù)庫(kù) # mysql -uroot -p password mysql> create database zabbix character set utf8 collate utf8_bin; mysql> create user zabbix@localhost identified by '123456'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql>flush privileges; mysql> quit; 7. 導(dǎo)入初始架構(gòu)和數(shù)據(jù),,系統(tǒng)將提示您輸入新創(chuàng)建的密碼,此處新創(chuàng)建的密碼為步驟6中的123456,。 # zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix 8.為Zabbix server配置數(shù)據(jù)庫(kù) 編輯配置文件 /etc/zabbix/zabbix_server.conf vi /etc/zabbix/zabbix_server.conf DBPassword=password 9.為Zabbix前端配置PHP,設(shè)置時(shí)區(qū) 編輯配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf php_value[date.timezone] = Asia/Shanghai 10.啟動(dòng)Zabbix server和agent進(jìn)程 啟動(dòng)Zabbix server和agent進(jìn)程,并為它們?cè)O(shè)置開(kāi)機(jī)自啟 # systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm # systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm 11.配置Zabbix前端 連接到新安裝的Zabbix前端: http://server_ip_or_name/zabbix 此處為http://192.168.0.240/zabbix 根據(jù)Zabbix向?qū)Р襟E操作: 1 檢查參數(shù)設(shè)置是否都符合,然后點(diǎn)擊Next step 2 輸入mysql中zabbix數(shù)據(jù)庫(kù)的密碼,,此處zabbix的密碼為上述步驟中設(shè)置的123456 3 點(diǎn)擊Next step 4 點(diǎn)擊Next step 5點(diǎn)擊Download the configuration file下載配置文件zabbix.conf.php,將文件上傳服務(wù)器/etc/zabbix/web/下,并且修改配置文件權(quán)限為644,點(diǎn)擊finish 6 點(diǎn)擊finish 7 默認(rèn)賬號(hào)Admin, 密碼 zabbix,,點(diǎn)擊Sign In。 8 成功登陸zabbix web頁(yè)面 2.3 部署完成zabbix web 頁(yè)面 三 使用方法3.1 agent方式監(jiān)控Linux主機(jī)3.1.1 被監(jiān)控Linux主機(jī)安裝agent客戶(hù)端 1 下載agent客戶(hù)端并且安裝 wget http://repo./zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm rpm -ivh zabbix-agent-5.0.0-1.el7.x86_64.rpm 2 配置客戶(hù)端 修改配置文件zabbix_agentd.conf將ServerActive=127.0.0.1 Server=127.0.0.1 修改為ServerActive=192.168.0.240 Server=192.168.0.240 vi /etc/zabbix/zabbix_agentd.conf 3 防火墻 4 關(guān)閉selinux setenforce 0 5 啟動(dòng)agent systemctl start zabbix-agent 3.1.2 zabbix設(shè)置新主機(jī) Zabbix中的主機(jī)是您要監(jiān)視的網(wǎng)絡(luò)實(shí)體(物理,,虛擬)。在Zabbix中可以定義為“主機(jī)”的定義非常靈活,。它可以是物理服務(wù)器,,網(wǎng)絡(luò)交換機(jī),虛擬機(jī)或某些應(yīng)用程序,。 configuration-Hosts 有關(guān)Zabbix中已配置主機(jī)的信息,,可在“ 配置”→“主機(jī)”中找到。已經(jīng)有一個(gè)預(yù)定義的主機(jī),,稱(chēng)為“ Zabbix服務(wù)器”,。 Create host 要添加新主機(jī),,請(qǐng)點(diǎn)擊創(chuàng)建主機(jī),。這將為我們提供一個(gè)主機(jī)配置表。 所有必填輸入字段均標(biāo)有紅色星號(hào),。 在此處輸入的最低要求是: 主機(jī)名:輸入主機(jī)名。允許使用字母數(shù)字,,空格,,點(diǎn),破折號(hào)和下劃線(xiàn),。 組:通過(guò)單擊“ 選擇”按鈕選擇一個(gè)或幾個(gè)現(xiàn)有組,,或輸入一個(gè)不存在的組名稱(chēng)以創(chuàng)建一個(gè)新組。所有訪(fǎng)問(wèn)權(quán)限都分配給主機(jī)組,,而不是單個(gè)主機(jī),。因此,主機(jī)必須至少屬于一個(gè)組,。 IP地址:輸入主機(jī)的IP地址,。請(qǐng)注意,如果這是Zabbix服務(wù)器IP地址,,則必須在Zabbix代理配置文件“服務(wù)器”指令中指定,。 選擇Templates,,點(diǎn)擊select按鈕可以鏈接生成監(jiān)控圖表模板 點(diǎn)擊Add按鈕創(chuàng)建監(jiān)控主機(jī) Monitoring-Hosts,點(diǎn)擊Graphs可以跳轉(zhuǎn)到圖表區(qū) 3.2 snmp方式監(jiān)控Linux主機(jī)3.2.1 被監(jiān)控Linux主機(jī)安裝snmp客戶(hù)端 1 上傳已經(jīng)下載snmp的安裝包并且安裝 cd /root/zabbix_snmp rpm -Uvh --force --nodeps *.rpm 2修改配置文件 vim /etc/snmp/snmpd.conf 修改com2sec notConfigUser default public為com2sec notConfigUser default zabbix view systemview included .1 #添加一個(gè)采集項(xiàng).1,,意味著可以采集到所有mib tree的信息 3 啟動(dòng) systemctl start snmpd.service netstat -lntup|grep 161 3.2.2 zabbix創(chuàng)建被監(jiān)控主機(jī) 1 點(diǎn)擊create host 按鈕 2 配置被監(jiān)控主機(jī)的主機(jī)名,選擇Linux servers分組,,點(diǎn)擊Select按鈕 3 Interface配置,點(diǎn)擊Remove Default按鈕刪除默認(rèn)agent配置方式,,然后點(diǎn)擊Add按鈕,,選擇SNMP方式 4 配置被監(jiān)控主機(jī)IP,,SNMP監(jiān)控端口,,SNMP版本,已經(jīng)SNMP community,,注意和被架空主機(jī)配置文件中的配置一致,。 5 點(diǎn)擊Templates按鈕,,鏈接Template OS Linux SNMPv2模板,,點(diǎn)擊Select按鈕 6 點(diǎn)擊Macros選項(xiàng)卡,,被監(jiān)控主機(jī)的配置文件中/etc/snmp/snmpd.conf設(shè)置的{$SNMP_COMMUNITY} zabbix設(shè)置到該位置,點(diǎn)擊Add創(chuàng)建被監(jiān)控主機(jī),。 7 Monitoring-Hosts,點(diǎn)擊Graphs可以跳轉(zhuǎn)到圖表區(qū) 3.3 Agent2監(jiān)控mysql3.3.1 被監(jiān)控mysql主機(jī)安裝agent2客戶(hù)端 1 下載agent客戶(hù)端并且安裝 wget http://repo./zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.1-1.el7.x86_64.rpm rpm -ivh zabbix-agent2-5.0.1-1.el7.x86_64.rpm 2 配置客戶(hù)端 修改配置文件zabbix_agent2.conf將ServerActive=127.0.0.1 Server=127.0.0.1 修改為ServerActive=192.168.0.240 Server=192.168.0.240 vi /etc/zabbix/zabbix_agent2.conf 3 防火墻 4 關(guān)閉selinux getenforce 5 啟動(dòng)agent2 systemctl start zabbix-agent2 6 使用以下命令在被監(jiān)控 MySQL 里創(chuàng)建獨(dú)立監(jiān)控用戶(hù)并授權(quán)遠(yuǎn)程訪(fǎng)問(wèn),,避免使用業(yè)務(wù)用戶(hù) >create user mon@'192.168.0.133' identified by 'monpwd123'; >flush privileges; 3.3.2 zabbix設(shè)置新主機(jī)(同3.1.2) 添加以下三個(gè)宏變量 {$MYSQL.DSN} mysql的連接串,可使用TCP和Unix tcp://myhost 或 unix:/var/run/mysql.sock {$MYSQL.USER} mysql用戶(hù) {$MYSQL.PASSWORD} 對(duì)應(yīng)的用戶(hù)密碼 此處填寫(xiě)內(nèi)容為 {$MYSQL.DSN} tcp://192.168.0.133:3306 {$MYSQL.USER} mon {$MYSQL.PASSWORD} monpwd123 四,、遇到問(wèn)題1 使用mysql數(shù)據(jù)庫(kù)初始化zabbix數(shù)據(jù)庫(kù)表提示如下錯(cuò)誤:ERROR 1071 (42000) at line 348: Specified key was too long; max key length is 767 bytes 報(bào)錯(cuò)原因: 如果啟用了系統(tǒng)變量innodb_large_prefix(默認(rèn)啟用,,注意實(shí)驗(yàn)版本為MySQL 5.6.41,默認(rèn)是關(guān)閉的,MySQL 5.7默認(rèn)開(kāi)啟),,則對(duì)于使用DYNAMIC或COMPRESSED行格式的InnoDB表,,索引鍵前綴限制為3072字節(jié)。如果禁用innodb_large_prefix,,則對(duì)于任何行格式的表,,索引鍵前綴限制為767字節(jié)。 解決方法: 卸載mysql5.6版本安裝mysql5.7 卸載mysql5.6 rpm -qa | grep -i mysql rpm -ev --nodeps `rpm -qa | grep -i mysql` rm -rf `find / -name mysql` 安裝mysql5.7 2 獲取 GPG 密鑰失敗:[Errno 14] curl#37 - 'Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7' 報(bào)錯(cuò)原因: 安裝的時(shí)候不進(jìn)行源的檢查 解決方法: vim /etc/yum.repos.d/epel.repo 把gpgcheck=1 改為gpgcheck=0 即可,,意思是在安裝的時(shí)候不進(jìn)行源的檢查 3 Your password does not satisfy the current policy requirements 報(bào)錯(cuò)原因:配置zabbix數(shù)據(jù)庫(kù)本地登陸賬號(hào)密碼為123456不符合mysql數(shù)據(jù)庫(kù)密碼復(fù)雜度要求,可以通過(guò)設(shè)置降低密碼復(fù)雜度要求 解決方法: > set global validate_password_length=6; > set global validate_password_policy=low; 五,、附錄zabbix倉(cāng)庫(kù)地址 http://repo./zabbix/ |
|
來(lái)自: 老三的休閑書(shū)屋 > 《生活》