Zabbix配置文件參數(shù)
- Zabbix監(jiān)控系統(tǒng)組件為server、proxy狂鞋、agentd端,對各自組件的參數(shù)深入理解能夠?qū)abbix進(jìn)行調(diào)優(yōu)
- zabbix_server.conf配置文件參數(shù):
- DBHost:數(shù)據(jù)庫主機(jī)地址
- DBName:數(shù)據(jù)庫名稱
- DBPasswd:數(shù)據(jù)庫密碼
- DBPort:數(shù)據(jù)庫端口號(hào),默認(rèn)為3306
- AlertScriptsPath:告警腳本存放路徑
- CacheSize:存儲(chǔ)監(jiān)控?cái)?shù)據(jù)的緩存
- CacheUpdateFrequency:更新一次緩存的事件
- DebugLevel:日志級(jí)別
- LogFile:日志文件路徑
- LogFileSize:日志文件大小,超過自動(dòng)切割
- LogSlowQueries:數(shù)據(jù)庫慢查詢記錄,單位為ms
- PidFile:PID文件
- ProxyConfigFrequency:proxy被動(dòng)模式下,server用多少秒同步配置文件至proxy
- ProxyDataFrequency:被動(dòng)模式下,server間隔多少秒向proxy請求歷史數(shù)據(jù)
- StartDiscoverers:發(fā)現(xiàn)規(guī)則線程數(shù)
- Timeout:連接agent超時(shí)時(shí)間
- TrendCacheSize:歷史數(shù)據(jù)緩存大小
- User:Zabbix運(yùn)行的用戶
- HistoryCacheSize:歷史記錄緩存大小
- ListenIP:監(jiān)聽本機(jī)的IP地址
- ListenPort:監(jiān)聽端口
- LoadModule:模塊名稱
- LoadModulePath:模塊路徑
- zabbix_proxy.conf配置文件參數(shù):
- ProxyMode:proxy工作模式,默認(rèn)為主動(dòng)模式,主動(dòng)發(fā)送數(shù)據(jù)至server端
- Server:指定server端IP地址
- ServerPort:server端端口
- Hostname:proxy端主機(jī)名
- ListenPort:proxy端監(jiān)聽端口
- LogFile:proxy代理端日志路徑
- PidFile:PID文件的路徑
- DBHost:proxy端數(shù)據(jù)庫主機(jī)名
- DBName:proxy端數(shù)據(jù)庫名稱
- DBUsert:proxy端數(shù)據(jù)庫用戶
- DBPasswd:proxy端數(shù)據(jù)庫密碼
- DBSocket:proxy端數(shù)據(jù)庫socket路徑
- DBPort:proxy端數(shù)據(jù)庫端口號(hào)
- DataSenderFrequency:proxy向server發(fā)送數(shù)據(jù)的時(shí)間間隔
- StartPollers:proxy線程池?cái)?shù)量
- StartDiscoverers:proxy端自動(dòng)發(fā)現(xiàn)主機(jī)的線程數(shù)量
- CacheSize:內(nèi)存緩存配置
- StartDBSyncers:同步數(shù)據(jù)線程數(shù)
- HistoryCacheSize:歷史記錄緩存大小
- LogSlowQueries:數(shù)據(jù)庫慢查詢記錄,單位為ms
- Timeout:超時(shí)時(shí)間
- zabbix_agentd.conf配置文件參數(shù):
- EnableRemoteCommands:是否運(yùn)行服務(wù)端遠(yuǎn)程至客戶端執(zhí)行命令或者腳本
- Hostname:客戶端主機(jī)名
- ListenIP:監(jiān)聽的IP地址
- ListenPort:監(jiān)聽端口
- LoadModulePath:模塊路徑
- LogFile:日志文件路徑
- PidFile:PID文件名
- Server:指定server端IP地址
- ServerActive:Zabbix主動(dòng)監(jiān)控server的IP地址
- StartAgents:agent啟動(dòng)進(jìn)程,如果設(shè)置為0,表示禁用被動(dòng)監(jiān)控
- Timeout:超時(shí)時(shí)間
- User:運(yùn)行Zabbix的用戶
- UserParameter:用戶自定義key
- BufferSize:緩沖區(qū)大小
- DebugLevel:Zabbix日志級(jí)別
Zabbix自動(dòng)發(fā)現(xiàn)及注冊
Zabbix自動(dòng)發(fā)現(xiàn)功能是為了解決批量監(jiān)控而設(shè)計(jì)的.基于Zabbix server端設(shè)定的規(guī)則,自動(dòng)批量的去發(fā)現(xiàn)局域網(wǎng)若干服務(wù)器,并自動(dòng)把服務(wù)器添加至Zabbix監(jiān)控平臺(tái)
-
Zabbix最大的特點(diǎn)之一是可以批量自動(dòng)發(fā)現(xiàn)主機(jī)并監(jiān)控,利用發(fā)現(xiàn)(discovery)模塊,實(shí)時(shí)自動(dòng)發(fā)現(xiàn)主機(jī)片择、自動(dòng)將主機(jī)添加到主機(jī)組、自動(dòng)加載模塊骚揍、自動(dòng)創(chuàng)建項(xiàng)目(items)字管、自動(dòng)創(chuàng)建監(jiān)控圖像,操作步驟為
-
依次選擇Configuration --> Discovery --> Create discovery rule,創(chuàng)建客戶端發(fā)現(xiàn)規(guī)則
- Name:規(guī)則名稱
- Discovery by proxy:通過代理搜索
- IP range:zabbix_server搜索區(qū)域的IP范圍
- Delay:搜索一次的時(shí)間間隔
- Checks:檢測方式,如用ping方式去發(fā)現(xiàn)主機(jī),zabbix_server需安裝fping,也可使用agent方式發(fā)現(xiàn)
- Device uniqueness criteria:以IP地址作為被發(fā)現(xiàn)主機(jī)的標(biāo)識(shí)
-
-
Zabbix客戶端安裝agent
- 由于發(fā)現(xiàn)規(guī)則里選擇checks方式為agent,所以需在所有被監(jiān)控的服務(wù)器安裝Zabbix agent,安裝方式可以手動(dòng),也可以使用shell腳本,腳本運(yùn)行方法為sh auto_install_zabbix.sh
# IP變量有問題 #!/bin/bash #auto install zabbix ########################### ZABBIX_SOFT='zabbix-3.2.6.tar.gz' ZABBIX_PATH='zabbix-3.2.6' INSTALL_DIR='/usr/local/zabbix/' SERVER_IP='10.0.0.202' IP="ifconfig |awk 'NR==2{print $2}'" AGENT_INSTALL(){ yum install curl curl-devel net-snmp net-snmp-devel perl-DBI -y groupadd zabbix;useradd -g zabbix zabbix;usermod -s /sbin/nologin zabbix tar -xzf $ZABBIX_SOFT;cd $ZABBIX_PATH ./configure --prefix=/usr/local/zabbix --enable-agent&&make install if [ $? - eq 0];then ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin fi cd -;cd $ZABBIX_PATH cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd;chmod o+x /etc/init.d/zabbix_agentd # config zabbix agentd cat >$INSTALL_DIR/etc/zabbix_agentd.conf<<EOF LogFile=/tmp/zabbix_agentd.log Server=$SERVER_IP ServerActive=$SERVER_IP Hostname=$IP EOF #start zabbix agentd /etc/init.d/zabbix_agentd restart /usr/bin/systemctl stop firewalld setenforce 0 } AGENT_INSTALL
-
創(chuàng)建發(fā)現(xiàn)action
- Zabbix發(fā)現(xiàn)規(guī)則創(chuàng)建完畢,客戶端agent安裝完后,被發(fā)現(xiàn)的IP主機(jī)不會(huì)自動(dòng)添加至Zabbix監(jiān)控列表,需要添加發(fā)現(xiàn)動(dòng)作,一次選擇Configuration --> Actions --> Event source(Discovery) --> Create action
- 添加規(guī)則時(shí),系統(tǒng)默認(rèn)存在一條發(fā)現(xiàn)規(guī)則,可以新建規(guī)則,也可以使用默認(rèn)規(guī)則
- 新建規(guī)則時(shí),在Operations中分別設(shè)置Add host、Add to host groups信不、Link to templates
- 依次選擇Monitoring --> Discovery查看通過發(fā)現(xiàn)規(guī)則找到的服務(wù)器IP列表
- 依次選擇Configuration --> Hosts,查看主機(jī)是否被自動(dòng)監(jiān)控至Zabbix監(jiān)控平臺(tái)
- 依次選擇Configuration --> Graphs,查看監(jiān)控圖像
Zabbix郵件報(bào)警
- 在Zabbix服務(wù)器端設(shè)置郵件報(bào)警,當(dāng)貝監(jiān)控主機(jī)宕機(jī)或者達(dá)到設(shè)定的觸發(fā)器預(yù)設(shè)值時(shí),會(huì)自動(dòng)發(fā)送報(bào)警郵件嘲叔、微信信息到指定的人員.Zabbix郵件報(bào)警設(shè)置步驟為:
- 設(shè)置郵件模板及郵件服務(wù)器
- 依次選擇Administrator --> Media types --> Create media type,填寫郵件服務(wù)器信息
- 配置接收報(bào)警的郵箱
- 依次選擇Administrator --> User --> Admin(Zabbix Administrator) --> user --> admin,再選擇media,單擊Add添加發(fā)送郵件的類型為Email,同時(shí)指定接收郵箱地址為841603636@qq.com
- 設(shè)置郵件模板及郵件服務(wù)器
Zabbix監(jiān)控MySQL主從復(fù)制
Zabbix除了可以監(jiān)控agent客戶端服務(wù)器狀態(tài)、CPU抽活、內(nèi)存硫戈、硬盤、網(wǎng)卡流量等運(yùn)行情況,同時(shí)Zabbix還可以監(jiān)控MySQL主從復(fù)制下硕、LAMP丁逝、Nginx Web服務(wù)器
-
Zabbix監(jiān)控MySQL主從復(fù)制:
- 在10.0.0.203Zabbix agent端/data/sh目錄創(chuàng)建shell腳本mysql_ab_check.sh
#!/bin/bash /usr/local/mysql/bin/mysql -uroot -e 'show slave status\G;'|grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes
- 在客戶端zabbix_agentd.conf配置文件中加入代碼
# 格式為UserParameter=key,command UserParameter=mysql.replication,sh /data/sh/mysql_ab_check.sh # 重啟Zabbix agent使配置生效 /etc/init.d/zabbix_agentd restart
- Zabbix服務(wù)器端獲取監(jiān)控?cái)?shù)據(jù),如果返回值為2,則證明從庫I/O、SQL線程均為Yes,表示主從同步成功
/usr/local/zabbix/bin/zabbix_get -s 10.0.0.203 -k mysql.replication
- 在Zabbix Web平臺(tái),在10.0.0.203hosts中創(chuàng)建item監(jiān)控項(xiàng),單擊右上角create item,在Key輸入欄中填寫zabbix_agentd配置文件中的mysql.replication
- MySQL主從監(jiān)控創(chuàng)建Graph圖像
- MySQL主從監(jiān)控項(xiàng)創(chuàng)建觸發(fā)器,MySQL主從狀態(tài)監(jiān)控,設(shè)置觸發(fā)器條件Key值不等于2即可,不等于2即表示MySQL主從同步異常,匹配觸發(fā)器會(huì)執(zhí)行Actions
- 如果主從同步狀態(tài)異常,Key值不等于2,會(huì)觸發(fā)郵件報(bào)警
Zabbix分布式
Zabbix是一個(gè)分布式監(jiān)控系統(tǒng),它可以以一個(gè)中心點(diǎn)梭姓、多個(gè)分節(jié)點(diǎn)的模式運(yùn)行,使用proxy能大大地降低Zabbix server的壓力,Zabbix proxy可以運(yùn)行在獨(dú)立的服務(wù)器上
-
安裝Zabbix proxy,基于zabbix-3.2.6.tar.gz軟件包,同時(shí)導(dǎo)入Zabbix基礎(chǔ)框架表
- 下載Zabbix軟件包
https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download
- 在Zabbix proxy執(zhí)行如下代碼
yum install curl curl-devel net-snmp net-snmp-devel perl-DBI -y groupadd zabbix;useradd -g zabbix zabbix;usermod -s /sbin/nologin zabbix
- Zabbix proxy端配置
-
創(chuàng)建Zabbix數(shù)據(jù)庫,執(zhí)行授權(quán)命令
create database zabbix_proxy charset=utf8;
grant all on zabbix_proxy.* to zabbix@'10.0.0.%' identified by '123456';
flush privileges;- 解壓Zabbix軟件包并將Zabbix基礎(chǔ)SQL文件導(dǎo)入數(shù)據(jù)至Zabbix數(shù)據(jù)庫 ```sh tar xf zabbix-3.2.6.tar.gz cd zabbix-3.2.6 mysql -uzabbix -p123456 zabbix_proxy < database/mysql/schema.sql mysql -uzabbix -p123456 zabbix_proxy < database/mysql/images.sql # mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
- 切換至Zabbix解壓目錄,安裝zabbix_proxy
./configure --prefix=/usr/local/zabbix --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl # 預(yù)編譯 make # 編譯安裝 make install # 執(zhí)行安裝 ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin # 創(chuàng)建命令軟鏈接
- Zabbix proxy安裝完畢,cd /usr/local/zabbix/etc目錄
- 備份Zabbix proxy配置文件
cp zabbix_proxy.conf{,.bak}
- 配置zabbix_proxy.conf,并啟動(dòng)mysql_proxy
Server=10.0.0.202
Hostname=10.0.0.205
LogFile=/tmp/zabbix_proxy.log
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456
Timeout=4
LogSlowQueries=3000
DataSenderFrequency=30
HistoryCacheSize=128MB
CacheSize=128MB
# 啟動(dòng)mysql_proxy服務(wù)
/usr/local/zabbix/sbin/zabbix_proxy
# 報(bào)錯(cuò)
zabbix_proxy: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
# 解決方法
cd /usr/local/mysql/lib
cp libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20
zabbix_proxy
ps -ef|grep zabbix # 查看zabbix_proxy進(jìn)程有沒有啟動(dòng)
- Zabbix客戶端安裝agent,同時(shí)配置agent端server設(shè)置為proxy服務(wù)器的IP地址或者主機(jī)名,zabbix_agentd.conf配置如下
LogFile=/tmp/zabbix_agentd.log
Server=10.0.0.205
ServerActive=10.0.0.205
Hostname=10.0.0.206
# 保存退出配置文件并啟動(dòng)服務(wù)
/etc/init.d/zabbix_agentd start
# 在Zabbix proxy端測試是否能連接到Zabbix agent端
/usr/local/zabbix/bin/zabbix_get -s 10.0.0.206 -k system.uname
# 查看Zabbix proxy端日志發(fā)現(xiàn)報(bào)錯(cuò)信息
cannot send list of active checks to "10.0.0.206": host [10.0.0.206] not found
# 解決方法,重新啟動(dòng)zabbix_proxy
zabbix_proxy
- 在Zabbix server Web端添加proxy,實(shí)現(xiàn)集中管理和分布式添加監(jiān)控
- 添加Zabbix agent端10.0.0.206主機(jī),并勾選Monitored by proxy的Zabbix proxy端主機(jī)或IP地址
- 查看代理agent的主機(jī)狀態(tài),發(fā)現(xiàn)已經(jīng)為可用了
Zabbix觸發(fā)命令及腳本
- Zabbix在對服務(wù)或者設(shè)備進(jìn)行監(jiān)控的時(shí)候,如果被監(jiān)控客戶端服務(wù)異常,滿足觸發(fā)器,可以發(fā)送郵件報(bào)警霜幼、短信報(bào)警及微信報(bào)警.Zabbix還可以遠(yuǎn)程執(zhí)行命令或者腳本,對部分故障實(shí)現(xiàn)自動(dòng)修復(fù),具體可以執(zhí)行的任務(wù)為:
- 重啟應(yīng)用程序,例如Apache、Nginx誉尖、MySQL罪既、Tomcat服務(wù)等
- 通過IPMI接口重啟服務(wù)器
- 刪除服務(wù)器磁盤空間及數(shù)據(jù)
- 執(zhí)行腳本及資源調(diào)度管理
- 遠(yuǎn)程命令最大長度為255個(gè)字符
- 同時(shí)支持多個(gè)遠(yuǎn)程命令
- Zabbix代理不支持遠(yuǎn)程命令
- 使用Zabbix遠(yuǎn)程執(zhí)行命令,需在Zabbix客戶端配置文件開啟對遠(yuǎn)程命令的支持,在zabbix_agentd.conf行尾加入如下代碼,并重啟服務(wù)
- EnableRemoteCommands=1 運(yùn)行服務(wù)端遠(yuǎn)程至客戶端執(zhí)行命令或腳本
vim /usr/local/zabbix/etc/zabbix_agentd.conf
EnableRemoteCommands=1 # 然后保存退出
- 創(chuàng)建Action,依次選擇Configuration -> Actions --> Triggers,類型選擇Remote command,Steps表示執(zhí)行命令1-3次,Step duration表示設(shè)置每次命令執(zhí)行間隔時(shí)間,60s執(zhí)行一次,執(zhí)行命令方式選擇Zabbix agent,基于sudo執(zhí)行命令
- 在Zabbix客戶端/etc/sudoers配置文件中添加zabbix用戶擁有執(zhí)行權(quán)限且無需密碼登錄
Defaults:zabbix !requiretty
zabbix ALL=(ALL) NOPASSWORD: ALL
- 在Zabbix客戶端/data/sh,創(chuàng)建auto_clean_disk.sh文件,腳本代碼為
#!/bin/bash
#auto clean disk space
rm -rf /boot/test.img
find /boot/ -name "*.log" -size +100M -exec rm -rf {} \;
- 將10.0.0.203服務(wù)器/boot目錄臨時(shí)寫滿,然后滿足觸發(fā)器,實(shí)現(xiàn)遠(yuǎn)程命令執(zhí)行
- 如果Zabbix客戶端腳本或者命令沒有執(zhí)行成功,HTTP服務(wù)沒有停止,可以在Zabbix server端執(zhí)行如下命令
/usr/local/zabbix/bin/zabbix_get -s 10.0.0.203 -k 'system.run[sudo /etc/init.d/httpd restart]'