Zabbix是當(dāng)前主流開(kāi)源的企業(yè)級(jí)分布式監(jiān)控系統(tǒng)。Zabbix特點(diǎn)是:安裝部署較簡(jiǎn)單,且默認(rèn)自帶了多種監(jiān)控告警模板。也具備較強(qiáng)的儀表盤(pán)展示功能;提供API接口,支持腳本調(diào)用;支持自定義編寫(xiě)插件以及監(jiān)控模板。
一、安裝zabbix軟件包
環(huán)境說(shuō)明:
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
uname -a
Linux monitor01 3.10.0-1062.18.1.el7.x86_64 #1 SMP Tue Mar 17 23:49:17 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
確保防火墻、selinux已經(jīng)關(guān)閉
# systemctl stop Firewalld
# systemctl disable Firewalld
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# setenforce 0
修改用戶資源限制
# cat /etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
* hard core unlimited
* soft core unlimited
安裝zabbix yum源
# rpm -Uvhhttps://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
安裝epel源,用于支持nginx
# yum install epel-release
安裝zabbix相關(guān)軟件包
# yum search zabbix
# yum -y install zabbix-*
或者只安裝以下組件
# for pkgs in ?zabbix-server-mysql zabbix-web-mysql zabbix-web-mysql zabbix-agent zabbix-get zabbix-web zabbix-sender zabbix-nginx-conf ;do yum -y install $pkgs;done
zabbix-agent-4.4.7-1.el7.x86_64
zabbix-get-4.4.7-1.el7.x86_64
zabbix-release-4.4-1.el7.noarch
zabbix-server-mysql-4.4.7-1.el7.x86_64
zabbix-web-4.4.7-1.el7.noarch
zabbix-sender-4.4.7-1.el7.x86_64
zabbix-nginx-conf-4.4.7-1.el7.noarch
zabbix-web-mysql-4.4.7-1.el7.noarch
?
二、安裝mariadb并初始化導(dǎo)入zabbix表結(jié)構(gòu)數(shù)據(jù)
安裝mariadb數(shù)據(jù)庫(kù)并啟動(dòng)
# yum -y install mariadb-*
# systemctl enable mariadb
# systemctl start mariadb
創(chuàng)建zabbix數(shù)據(jù)庫(kù)
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix@123';
flush privileges;
quit;
導(dǎo)入數(shù)據(jù)
# zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz |mysql -uzabbix -p'zabbix@123' -b zabbix
三、修改zabbix_server.conf并啟動(dòng)zabbix_server
# cat /etc/zabbix/zabbix_server.conf |grep -v "^#" |grep -v "^$" |grep -v grep ?
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
DebugLevel=3
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix@123
StartPollers=16
StartPollersUnreachable=4
StartTrappers=10
StartPingers=8
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=1024M
StartDBSyncers=8
HistoryCacheSize=1024M
HistoryIndexCacheSize=256M
TrendCacheSize=1024M
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
# systemctl enable zabbix-server
# systemctl start zabbix-server
四、修改nginx/php-fpm配置,將server端口配置為8080,端口配置沒(méi)有特殊要求,只要未被占用都可配置。若想使用80端口,則需要注釋或修改nginx.conf的server {}段配置
# vi /etc/nginx/conf.d/zabbix.conf
listen ? ? ? ? ?8080;
server_name ? ? monitor.com;
修改php時(shí)區(qū)
# vi /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
# systemctl enable php-fpm
# systemctl restart php-fpm
# systemctl enable nginx
# systemctl start nginx
五、設(shè)置并登錄zabbix系統(tǒng)
訪問(wèn)http://IP:port/setup.php
Zabbix 服務(wù)名是可選設(shè)置
配置action,實(shí)現(xiàn)使安裝有Zabbix Agent的Linux自動(dòng)注冊(cè)到Zabbix Server端。
步驟:configuration>>action>>Event source(選擇Auto registration)>>Create Action,我們按如下步驟來(lái)定義個(gè)action
六、安裝zabbix-agent
# rpm -Uvhhttps://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
# yum -y install zabbix-agent
修改zabbix-agent配置,monitor01為Zabbix Server主機(jī)的hostname,所有Zabbix agent主機(jī)上都要添加Zabbix Server主機(jī)的hostname。
# sed -i "s/Server=127.0.0.1/Server=monitor01/g" /etc/zabbix/zabbix_agentd.conf
# sed -i "s/ServerActive=127.0.0.1/ServerActive=monitor01/g" /etc/zabbix/zabbix_agentd.conf
# sed -i "s#Hostname=Zabbix server#Hostname=$(hostname)#g" /etc/zabbix/zabbix_agentd.conf
# sed -i "s#\# HostMetadataItem=#HostMetadataItem=system.uname#g" /etc/zabbix/zabbix_agentd.conf ?
啟動(dòng)zabbix-agent
# systemctl enable zabbix-agent
# systemctl restart zabbix-agent
如果有幾十上百個(gè)節(jié)點(diǎn),我們就需要借助Ansible或SaltStack等批量部署工具來(lái)快速部署了。
安裝Zabbix Agent后的主機(jī)會(huì)自動(dòng)注冊(cè)到Zabbix Server上,并且Availability狀態(tài)顯示為綠色
就表示添加成功了。
由于本系列教程講述的重點(diǎn)是Grafana的使用,Zabbix僅是為Grafana提供要展示數(shù)據(jù)的接口,所以不再重點(diǎn)講述,后續(xù)在講解Grafana使用時(shí)會(huì)再穿插講解一些Zabbix使用技巧。
總結(jié):對(duì)Linux較熟悉的同學(xué)部署上述環(huán)境應(yīng)該so easy。當(dāng)然部署方法多種多樣,想挑戰(zhàn)又有時(shí)間可以全部用源碼來(lái)編譯安裝,能更體驗(yàn)過(guò)程;想更簡(jiǎn)單一點(diǎn)的話,可以嘗試用zabbix官方提供的docker鏡像,但前提得會(huì)用docker。
寫(xiě)給自己:世上無(wú)難事,只怕有心人。