Zabbix監控系統
一、zabbix簡介:
zabbix是完全開源的工具,整合了cacti和nagios等特性
附:SNMP(udp 161 udp 162)
眾多網絡工具都支持此協議,比如常見路由交換,常見OS
其既可以做管理端也可以做被管理端
snmp協議大致有3個版本分別是v1 v2v3
無論是v1 和 v2 的安全性是比較差的,因為傳輸是明文的, V3的認證密碼用MD5/SHA摘要算法加密
很多工具支持網絡管理的功能,而對於非網絡設備(操作系統),可以完全拋開snmp這種不安全的架構來實現監控的。所以很多工具都是控制端和agent架構,他們有專屬的agent
Zabbix的主要功能:
具備常見的商業監控軟件所具備的功能(主機的性能監控、網絡設備性能監控、數據庫、
支持自動發現網絡設備和服務器(可以通過配置自動發現服務器規則來實現)
支持分布式,能集中展示、管理分布式的監控點,擴展性強
server 提供通用接口(api 功能),可以自己開發完善各類監控(根據相關接口編寫程序實現),編寫插件容易,可以自定義監控項,報警級別的設置。
數據收集,支持 snmp(包括 trapping and polling ),IPMI,JMX,SSH,TELNET;
自定義的檢測;自定義收集數據的頻率;
服務器/代理和客戶端模式;
靈活的觸發器;可以定義非常靈活的問題閾值,稱為觸發器;
高可定制的報警;發送通知,可定制的報警升級,收件人,媒體類型。
CPU負荷、內存使用、磁盤使用、網絡狀況、端口監視、日誌監視等等。
硬件監控:Zabbix IPMI Interface
系統監控:ZabbixAgent Interface
Java監控:Zabbix JMXInterface
網絡設備監控:Zabbix SNMP Interface
應用服務監控:Zabbix Agent UserParameter
MySQL數據庫監控:percona-monitoring-plulgins
URL監控:Zabbix Web 監控
zabbix重要組件說明:
1)zabbix server:負責接收agent發送的報告信息的核心組件,所有配置、統計數據及操作數據都由它組織進行;
2)database storage:專用於存儲所有配置信息,以及由zabbix收集的數據;
3)web interface:zabbix的GUI接口;
4)proxy:可選組件,常用於監控節點很多的分布式環境中,代理server收集部分數據轉發到server,可以減輕server的壓力;
5)agent:部署在被監控的主機上,負責收集主機本地數據如cpu、內存、數據庫等數據發往server端或proxy端;
另外,zabbix server、proxy、agent都有自己的配置文件以及log文件,重要的參數需要在這裏配置,後面會詳細說明。
一個監控系統運行的大概的流程是這樣的:
agentd需要安裝到被監控的主機上,它負責定期收集各項數據,並發送到zabbix server端,zabbix server將數據存儲到數據庫中,zabbix web根據數據在前端進行展現和繪圖。這裏agentd收集數據分為主動和被動兩種模式:
主動:agent請求server獲取主動的監控項列表,並主動將監控項內需要檢測的數據提交給server/proxy
被動:server向agent請求獲取監控項的數據,agent返回數據。
zabbix常用的監控架構平臺
1、server-agentd模式:
這個是最簡單的架構了,常用於監控主機比較少的情況下。
2、server-proxy-agentd模式:
這個常用於比較多的機器,使用proxy進行分布式監控,有效的減輕server端的壓力。
zabbix的系統架構:
Zabbix是一個基於Web界面的提供分布式系統監視以及網絡監視功能的企業級開源解決方案。借助Zabbix,可以很輕松地減輕運維人員們繁重的服務器管理任務,實現業務系統的持續運行。下面會逐步介紹Zabbix分布式監控系統的部署及使用
配置好IP、DNS 、網關,確保使用遠程連接工具能夠連接服務器
zabbix監控服務器:192.168.130.76 #zabbix的服務端(若要監控本機,則需要配置本機的zabbixagent)
Zabbix agent被監控主機:192.168.130.78#zabbix的客戶端(被監控端,需要配置Zabbix agent
二、Zabbix部署前的LNMP環境的搭建過程:
Zabbix是基於lnmp環境搭建的,lnmp環境搭建參考前邊文檔這裏直接做zabbix。
三、監控系統Zabbix-3.2.1的安裝
zabbix-server端的操作
zabbix服務器端要提前安裝好LNMP環境(mysql,nginx,php5的安裝目錄均是/usr/local)
創建Zabbix運行的用戶:
[[email protected] ~]#groupadd zabbix
[[email protected] ~]#useradd -g zabbix zabbix
安裝libcurl和net-snmp:
[[email protected] ~]#yum -y install net-snmp net-snmp-develcurl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel OpenIPMI-devel libssh2-devel
註:OpenIPMI-devel 和libssh2-devel軟件包使用centos在線yum軟件源安裝
安裝Fping:
[[email protected] ~]# tar zxffping-3.12.tar.gz
[[email protected] ~]# cd fping-3.12/
[[email protected] fping-3.12]# ./configure&& make && make install
[[email protected] fping-3.12]# chownroot:zabbix /usr/local/sbin/fping
[[email protected] fping-3.12]# chmod 4710/usr/local/sbin/fping
安裝Zabbix Server:
[[email protected] ~]# tar zxfzabbix-3.2.1.tar.gz
[[email protected] ~]# cd zabbix-3.2.1/
[[email protected] zabbix-3.2.1]# ./configure--prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java--with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl--with-openipmi
註意:編譯時最好帶上--enable-java這個參數,方便後續監控tomcat程序所用。
--with-ssh2 是不需要在客戶端服務器上面安裝Zabbix agent,如果需要使用ssh檢查,需要在編譯的時候加上這項,最低需要libssh2 1.0.0版本,需要安裝ssh開發包
--with-openipmi用戶可以利用 IPMI 監視服務器的物理特征,如溫度、電壓、電扇工作狀態、電源供應等。
如果添加了--enable-proxy, 那麽會生成get和sender兩條命令. 如下, 用於接收agent發生過來的信息, 同時發送給server.
[[email protected] zabbix-3.2.1]#make&& make install
添加系統軟連接
[[email protected] ~]# ln -s/usr/local/zabbix/bin/* /usr/local/bin/
[[email protected] ~]# ln -s/usr/local/zabbix/sbin/* /usr/local/sbin/
Zabbix Server配置與啟動
創建Zabbix數據庫和MySQL用戶:
mysql> create database zabbixcharacter set utf8;
Query OK, 1 row affected (0.01 sec)
mysql> grant all privileges onzabbix.* to [email protected] identified by ‘zabbix‘;
Query OK, 0 rows affected, 1 warning(0.00 sec)
導入Zabbix初始數據:
切換到zabbix的解壓目錄下
[[email protected] zabbix-3.2.1]# cddatabase/mysql/
[[email protected] mysql]# pwd
/root/zabbix-3.2.1/database/mysql
[[email protected] mysql]# ls
data.sql images.sql schema.sql
進行zabbix初始數據導入
[[email protected] mysql]# mysql -uzabbix-pzabbix -hlocalhost zabbix < schema.sql
[[email protected] mysql]# mysql -uzabbix-pzabbix -hlocalhost zabbix < images.sql
[[email protected] mysql]# mysql -uzabbix-pzabbix -hlocalhost zabbix < data.sql
編輯/usr/local/zabbix/etc/zabbix_server.conf:
[email protected] ~]# grep -v "^#"/usr/local/zabbix/etc/zabbix_server.conf | grep -v "^$"
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/usr/local/zabbix/logs/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
FpingLocation=/usr/local/sbin/fping
#mkdir -p /usr/local/zabbix/logs
#chown -R zabbix:zabbix /usr/local/zabbix
啟動Zabbix Server:
# /usr/local/zabbix/sbin/zabbix_server-c /usr/local/zabbix/etc/zabbix_server.conf
/usr/local/zabbix/sbin/zabbix_server:error while loading shared libraries: libmysqlclient.so.20: cannot open sharedobject file: No such file or directory
解決方法:
在ld.so.conf中加入/usr/local/mysql/lib
[[email protected] zabbix-3.2.1]# cat/etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/mysql/lib
/usr/local/lib
[[email protected] zabbix-3.2.1]# ldconfig
再次執行zabbix_server啟動
# /usr/local/zabbix/sbin/zabbix_server-c /usr/local/zabbix/etc/zabbix_server.conf
[[email protected] init.d]# netstat -anpt|grep zabbix_server
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 27199/zabbix_server
添加開機啟動腳本
[[email protected] ~]# cd zabbix-3.2.1/
# cpmisc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server
# cpmisc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
[[email protected] zabbix-3.2.1]# chmod +x/etc/rc.d/init.d/zabbix_server
[[email protected] zabbix-3.2.1]# chmod +x/etc/rc.d/init.d/zabbix_agentd
[[email protected] zabbix-3.2.1]# chkconfig--add zabbix_server
[[email protected] zabbix-3.2.1]# chkconfig--add zabbix_agentd
[[email protected] zabbix-3.2.1]# chkconfigzabbix_server on
[[email protected] zabbix-3.2.1]# chkconfigzabbix_agentd on
修改zabbix開機啟動腳本中的zabbix安裝目錄
vi /etc/rc.d/init.d/zabbix_server #編輯服務端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安裝目錄
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid #pid文件路徑
:wq! #保存退出
vi /etc/rc.d/init.d/zabbix_agentd #編輯客戶端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安裝目錄
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid #pid文件路徑
:wq! #保存退出
[[email protected] zabbix-3.2.1]# systemctldaemon-reload
[[email protected] zabbix-3.2.1]#/etc/init.d/zabbix_server stop
Stopping zabbix_server (viasystemctl): [ OK ]
[[email protected] zabbix-3.2.1]# netstat-anpt | grep zabbix
[[email protected] zabbix-3.2.1]#/etc/init.d/zabbix_server start
Starting zabbix_server (viasystemctl): [ OK ]
[[email protected] zabbix-3.2.1]# netstat-anpt | grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 28106/zabbix_server
設置防火墻規則
[[email protected] zabbix-3.2.1]# firewall-cmd--permanent --add-port=10051/tcp
success
[[email protected] zabbix-3.2.1]# firewall-cmd--reload
success
配置zabbix web頁面
在安裝目錄將frontends拷貝到指定的web root:
[[email protected] ~]# cd /root/zabbix-3.2.1/
[[email protected] zabbix-3.2.1]# cp -rfrontends/php/ /usr/local/nginx1.10/html/zabbix
[[email protected] zabbix-3.2.1]# chown -R www:www /usr/local/nginx1.10/html/zabbix/
註:/usr/local/nginx/html為Nginx默認站點目錄 www為Nginx運行賬戶
註:PHP需要至少開啟擴展:
gd,bcmath,ctype,libXML,xmlreader,xmlwriter,session,sockets,mbstring,gettext,mysql
如下,查看是否包括了上面所提到的擴展模塊
[[email protected] ~]# /usr/local/php5.6/bin/php-m
[PHP Modules]
bcmath
bz2
Core
ctype
curl
date
dom
ereg
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
zip
zlib
安裝web
訪問Web界面http://192.168.31.225/zabbix,進行相關web配置,配置完成後使用默認用戶admin(密碼:zabbix)登陸即可
進入ZABBIX WEB安裝畫面
進入ZABBIX檢測畫面
對數據庫進行設置,這裏如果數據庫在本地的話端口可以使用0
點擊Next step 一下步進行zabbix server 細節的設置 這一步可以默認
完成畫面有設置文件放在服務器的位置,請記下來
點擊Finish 完成
使用Admin 用默認密碼 zabbix 登錄
登錄後畫面如下
至此 ZABBIX的基礎安裝完成
本文出自 “13110271” 博客,請務必保留此出處http://13120271.blog.51cto.com/13110271/1956567
Zabbix監控系統