zabbix 監(jiān)控類型:硬件、軟件、業(yè)務指標數據采集通道:ssh、agent、snmp、telnet、IPMI監(jiān)控工具:cacti、nagios、zabbix、ganglia 特性數據采樣:snmp、ssh\telnet、agent、ipmi,jmx自定義檢測機制:UserParamenter自定義指定時間間隔實時繪圖展示:graph、map、screen、slide show告警:自定義腳本、notiflcation存儲:mysql、pgsql支持模板支持網絡自動發(fā)現支持API二次開發(fā)分布式監(jiān)控(server<-->proxy<-->agent) Zabbix程序構成zabbix_server:服務端守護進程;zabbix_agentd:agent端守護進行;zabbix_get:命令行工具,通常用于server端手動測試采集數據;zabbix_sender:命令行工具,通常用于agent端手動發(fā)送數據;zabbix_proxy:代理服務器,可選組件;zabbix_java_gateway:java網關,用于監(jiān)控jvm相關的信息; YUM安裝1、創(chuàng)建數據庫MariaDB [(none)]> create database zabbix CHARSET utf8;MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix';MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';MariaDB [(none)]> flush privileges;2、安裝server端[root@node1 ~]# yum install -y zabbix40 zabbix40-dbfiles-mysql zabbix40-server3、導入數據[root@node1 ~]# mysql zabbix < /usr/share/zabbix-mysql/schema.sql[root@node1 ~]# mysql zabbix < /usr/share/zabbix-mysql/images.sql[root@node1 ~]# mysql zabbix < /usr/share/zabbix-mysql/data.sql4、配置文件[root@node1 etc]# grep '^[^#]' zabbix_server.confLogFile=/var/log/zabbixsrv/zabbix_server.logLogFileSize=0PidFile=/run/zabbixsrv/zabbix_server.pidSocketDir=/var/lib/zabbixsrv/tmpDBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=zabbixTimeout=4AlertScriptsPath=/var/lib/zabbixsrv/alertscriptsExternalScripts=/var/lib/zabbixsrv/externalscriptsLogSlowQueries=3000TmpDir=/var/lib/zabbixsrv/tmpSSLCertLocation=/var/lib/zabbixsrv/ssl/certsSSLKeyLocation=/var/lib/zabbixsrv/ssl/keys4、安裝LAMP環(huán)境[root@node1 ~]# yum install -y php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml5、安裝web GUI[root@node1 ~]# yum install -y zabbix40-web zabbix40-web-mysql # 會自動在/etc/conf.d下面創(chuàng)建zabbix.conf訪問入口http://172.16.1.2/zabbix/setup.php默認賬號密碼是admin/zabbix6、安裝zabbix-agent[root@node1 ~]# yum install -y zabbix40-agent7、agent配置Server=127.0.0.1:被動監(jiān)控指明允許哪個服務端過來采樣;ListenPort=10050:服務端要過來采樣那么就需要監(jiān)聽在地址;StartAgents=3:相應監(jiān)控端發(fā)送監(jiān)控請求的線程;ServerActive=127.0.0.1:主動監(jiān)控服務端的IP;Hostname=node1:要給服務端報告信息得告訴服務端自己是誰;RefreshActiveChecks=120:多長時間刷新監(jiān)控; 安裝# 安裝所需要的組件[root@node1 ~]# yum install httpd mariadb mariadb-server php php-mysql php-devel php-xml php-bcmath php-mbstring php-gd wget expect net-snmp gcc mysql-devel libxml2-devel net-snmp-devel libevent-devel curl-devel -y# 創(chuàng)建運行用戶[root@node1 ~]# groupadd --system zabbix[root@node1 ~]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c 'Zabbix Monitoring System' zabbix# 編譯安裝[root@node1 zabbix-4.0.12]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2[root@node1 zabbix-4.0.12]# make -j 4[root@node1 zabbix-4.0.12]# make install[root@node1 ~]# chown zabbix:zabbix /usr/local/zabbix/ -R# 創(chuàng)建初始化數據[root@node1 ~]# mysql -uroot -e 'create database zabbix character set utf8 collate utf8_bin;'[root@node1 ~]# mysql -uroot -e 'grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';'[root@node1 ~]# mysql -uroot -e 'flush privileges;'[root@node1 ~]# mysql -uzabbix -pzabbix zabbix < /usr/local/src/zabbix-4.0.12/database/mysql/schema.sql[root@node1 ~]# mysql -uzabbix -pzabbix zabbix < /usr/local/src/zabbix-4.0.12/database/mysql/images.sql[root@node1 ~]# mysql -uzabbix -pzabbix zabbix < /usr/local/src/zabbix-4.0.12/database/mysql/data.sql# server基礎配置[root@node1 ~]# grep '^[^#]' /usr/local/zabbix/etc/zabbix_server.confLogFile=/tmp/zabbix_server.logDBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=zabbixTimeout=4LogSlowQueries=3000# 配置server和agent啟動腳本[root@node1 ~]# cp /usr/local/src/zabbix-4.0.12/misc/init.d/fedora/core/zabbix_server /etc/init.d/[root@node1 ~]# cp /usr/local/src/zabbix-4.0.12/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/# 配置前端[root@node1 ~]# cp -r /usr/local/src/zabbix-4.0.12/frontends/php/* /var/www/html/[root@node1 ~]# chown apache:apache /var/www/html -R# 配置中文[root@node1 ~]# mv simkai.ttf /var/www/html/assets/fonts/[root@node1 ~]# cat -n /var/www/html/include/defines.inc.php|grep 'simkai'71 define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name112 define('ZBX_FONT_NAME', 'simkai'); 快速配置一個監(jiān)控項主機組->主機->應用->監(jiān)控項->觸發(fā)器(生成事件)->注冊操作 自定義監(jiān)控自定義監(jiān)控示例# 編寫agent端監(jiān)控腳本[root@node2 ]# cat /data/scripts/hostname.sh case $1 incce) echo $HOSTNAME;;esac# 加入監(jiān)控項[root@node2 ]# grep '^Include' zabbix_agentd.confInclude=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf[root@node2 ]# cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix.conf UserParameter=hostname[*],/data/scripts/hostname.sh $1# [*]:表示接受傳過來的所有參數# 在server端測試監(jiān)控[root@node1 ~]# /usr/local/zabbix/bin/zabbix_get -s 172.16.1.3 -k 'hostname[cce]'node2.cce.com
因為zabbix的actions可以有步驟的觸發(fā)相應的事件,那么我們就可以利用這個特點來做當首次觸發(fā)的時候我們可以執(zhí)行遠程命令,第二次觸發(fā)的時候可以發(fā)送郵件腳本,第三次觸發(fā)的時候我們可以利用python調用阿里云的電話接口給相應的技術人員打電話,這兩個通知的事件通過用戶組的組名來區(qū)別; 注意點:在創(chuàng)建新的用戶的時候,創(chuàng)建的新用戶需要加入組,并且組的權限要對所有群組至少有讀的權限,否則該用戶將無法接收到報警信息 |
|