1. Zabbix 簡介
php
Zabbix 是一個高度集成的網絡監控解決方案,能夠提供企業級的開源分佈式監控解決方案,由一個國外的團隊持續維護更新,軟件能夠自由下載使用,運做團隊靠提供收費的技術支持贏利。前端
官方網站:http://www.zabbix.commysql
1.1 zabbix模式linux
Zabbix 經過 C/S 模式採集數據,經過 B/S 模式在 web 端展現和配置。web
被監控端:主機經過安裝 agent 方式採集數據,網絡設備經過 SNMP 方式採集數據sql
Server 端:經過收集 SNMP 和 agent 發送的數據,寫入數據庫(MySQL,ORACLE 等),再經過 php+apache 在 web 前端展現。數據庫
1.2 Zabbix 運行條件:apache
Server:Zabbix Server 需運 行在 LAMP( Linux+Apache+Mysql+PHP)環 境下( 或者LNMP),對硬件要求低vim
Agent:目前已有的 agent 基本支持市面常見的 OS,包含 Linux、HPUX、Solaris、Sun、windowswindows
SNMP:支持各種常見的網絡設備
2.優劣勢
優勢:
開源,無軟件成本投入
Server 對設備性能要求低
支持設備多,自帶多種監控模板
支持分佈式集中管理,有自動發現功能,能夠實現自動化監控
開放式接口,擴展性強,插件編寫容易
當監控的 item 比較多服務器隊列比較大時能夠採用被動狀態,被監控客戶端主動從server 端去下載須要監控的 item 而後取數據上傳到 server 端。這種方式對服務器的負載比較小。
Api 的支持,方便與其餘系統結合
缺點:
需在被監控主機上安裝 agent,全部數據都存在數據庫裏,產生的數據據很大,瓶頸主要在數據庫。
實驗環境:
物理主機 redhat7.0 內核版本 3.10.0-123.el7.x86_64
虛擬機 redhat6.5 內核版本 2.6.32-431.el6.x86_64
服務器端: server1.example.com 172.25.254.1
客戶端: server2.example.com 172.25.254.2
所需軟件包:
zabbix-2.4.5-1.el6.x86_64.rpm
zabbix-server-2.4.5-1.el6.x86_64.rpm
zabbix-server-mysql-2.4.5-1.el6.x86_64.rpm
zabbix-web-2.4.5-1.el6.noarch.rpm
zabbix-web-mysql-2.4.5-1.el6.noarch.rpm
zabbix-agent-2.4.5-1.el6.x86_64.rpm
fping-2.4b2-16.el6.x86_64.rpm
iksemel-1.4-2.el6.x86_64.rpm
iksemel-utils-1.4-2.el6.x86_64.rpm
php-mbstring-5.3.3-26.el6.x86_64.rpm
php-bcmath-5.3.3-26.el6.x86_64.rpm
一.服務器端配置
Zabbix 須要 lamp 環境:
1. 安裝 zabbix 所需軟件包
zabbix-2.4.5-1.el6.x86_64.rpm
zabbix-server-2.4.5-1.el6.x86_64.rpm
zabbix-server-mysql-2.4.5-1.el6.x86_64.rpm
zabbix-web-2.4.5-1.el6.noarch.rpm
zabbix-web-mysql-2.4.5-1.el6.noarch.rpm
zabbix-agent-2.4.5-1.el6.x86_64.rpm
fping-2.4b2-16.el6.x86_64.rpm
iksemel-1.4-2.el6.x86_64.rpm
iksemel-utils-1.4-2.el6.x86_64.rpm
php-mbstring-5.3.3-26.el6.x86_64.rpm
php-bcmath-5.3.3-26.el6.x86_64.rpm
2. 配置 mysql 數據庫
# service mysqld start
# mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'willis';
mysql> quit;
# cd /usr/share/doc/zabbix-server-mysql-2.4.5/create
# mysql -uzabbix -pwestos zabbix < schema.sql
## stop here if you are creating database for Zabbix proxy ##
# mysql -uzabbix -pwestos zabbix < p_w_picpaths.sql
# mysql -uzabbix -pwestos zabbix < data.sql
3. 配置 zabbix server
[root@server1 create]# vim /etc/zabbix/zabbix_server.conf
72 DBHost=localhost
82 DBName=zabbix
106 DBPassword=willis
163 StartTrappers=10
4. 配置 php
[root@server1 conf.d]# vim /etc/php.ini
946 date.timezone = Asia/Shanghai
[root@server1 conf.d]# pwd
/etc/httpd/conf.d
[root@server1 conf.d]# vim zabbix.conf
13 php_value max_execution_time 300
14 php_value memory_limit 128M
15 php_value post_max_size 16M
16 php_value upload_max_filesize 2M
17 php_value max_input_time 300
18 php_value date.timezone Asia/Shanghai
5. 啓動 zabbix server、zabbix agent、httpd
# service httpd start
# service zabbix-server start
# service zabbix-agent start
http://172.25.254.1/zabbix 按照提示完成安裝並登錄:
Username: Admin
Password: zabbix
能夠看到 Zabbix server is running 狀態值爲Yes.服務端部署完成。
二.被監控端配置(server2)
7. 添加 agent 主機
7.1在被監控端安裝軟件包:
zabbix-2.4.5-1.el6.x86_64.rpm
zabbix-agent-2.4.5-1.el6.x86_64.rpm
7.2配置 zabbix agent
# vim /etc/zabbix/zabbix_agentd.conf
85 Server=172.25.254.1
126 ServerActive=172.25.254.1
137 Hostname=server2.example.com #主機名須要有解析
7.3啓動 zabbix agent
[root@server2 zabbix]# /etc/init.d/zabbix-agent restart
網頁端配置:
Configuration ->Discovery
8. 在 zabbix server 上激活 zabbix agent 自動註冊功能
點擊 Configuration -> Actions ->Auto registration ->Create action 按下圖所示設置:
自定義 Action 的名字。
Conditions 選項卡保持默認便可。
Operations 選項卡添加以下:
Add host:自動註冊主機添加到 hosts 列表
Add to host groups:自動註冊主機加入 linux servers 組(組名能夠自定義)
Link to templates:自動註冊主機應用模板 Template OS linux
點擊 Configuration -> Hosts 能夠看到新加的主機:
三. 添加http服務監控
Zabbix 的更多功能值得你們一塊兒研究和分享。
來看看 zabbix 是怎樣添加服務監控項的,利用 zabbix 自帶的監控模版,以 http 服務爲例:
點擊 Configuration -> Templates 選擇須要連接的模版
也能夠在 Configuration -> Hosts -> server2.example.com -> Templates 選擇須要的模版
這樣主機 server2.example.com 的監控項中就出現了 HTTP 服務
四.監控遠程主機Mysql服務
在/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 文件中指定了 zabbix agent 如何獲取 mysql服務的各類信息,並在/var/lib/zabbix 目錄中新建「.my.cnf」文件,用以指定 zabbix agent 如何登錄數據庫,默認使用的是 zabbix 用戶,能夠在 zabbix_server.conf 文件中找到密碼。
[root@server2 zabbix]# yum install mysql-server -y
[root@server2 zabbix]# /etc/init.d/mysqld start
[root@server2 zabbix]# mysql_secure_installation
###初始化數據庫 ,我把數據庫密碼改爲了willis
[root@server2 zabbix]# mkdir /var/lib/zabbix
[root@server2 zabbix]# cp /etc/my.cnf /var/lib/zabbix/.my.cnf
[root@server2 zabbix]# vim /var/lib/zabbix/.my.cnf
[mysql]
host = localhost
user = zabbix
password = willis
socket = /var/lib/mysql/mysql.sock
[mysqladmin]
host = localhost
user = zabbix
password = willis
socket = /var/lib/mysql/mysql.sock
監控遠程主機的 mysql 服務須要建立 zabbix 用戶並受權,本機監控則不須要。
mysql> grant select on *.* to 'zabbix'@'localhost' identified by 'willis';
[root@server2 zabbix]# mysql -uzabbix -pwillis
[root@server2 zabbix]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent: [ OK ]
Starting Zabbix agent: [ OK ]
連接 mysql 監控模版:
點擊 Configuration -> Hosts -> server2.example.com-> Graphs 能夠看到兩個新的監控圖形
過一會能夠看到監控的圖形變化