Zabbix簡介:
1.基於web的開源軟件,開源監控系統狀態也可以監控網絡設備。
2.和nagios不同的是zabbix會把獲取的數據保存在數據庫中,所以zabbix需要有數據庫支持
3.Zabbix還可以自動發現主機和網絡設備
4.支持郵件和短信告警
5.Zabbix大多配置都可以在web界面配置完成。
6.Zabbix cacti nagios 都是基於php 寫出來的網站程序,所以要想運用這些軟件,需要基於lamp 或lnmp(yum安裝他們不支持nginx的配置文件而lamp 安裝會黙認在apache 的配置文件下生成一個子配置文件,可以通個IP 直接來訪問他們) 來使用。
官網http://www.zabbix.com/
安裝Zabbix :
rpm -ivh http://www.lishiming.net/data/p_w_upload/forum/month_1211/epel-release-6-7.noarch.rpm #安裝yum 源epel。樓主的是LAMP 環境。 這一步操作省了,下一步操作也省了。
安裝rpm包的lamp環境 yum install -y httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-gd php-mbstring
服務端Zabbix 安裝:
客戶端也要安裝zabbix20-agent,版本要保持一致。
[root@OBird ~]# yum install zabbix20 zabbix20-agent zabbix20-server zabbix20-server-mysql zabbix20-web zabbix20-web-mysql net-snmp-devel
[root@OBird ~]# /etc/init.d/zabbix-server start; /etc/init.d/zabbix-agent start
Starting Zabbix server: [ OK ]
Starting Zabbix agent: [ OK ]
[root@OBird ~]# netstat -lnp #查看端口有10050 10051,樓主發現10051 zabbix-server沒有啓來
[root@OBird ~]# less /var/log/zabbix/zabbix_server.log #查看zabbix 日誌,發現是數據庫問題
'/var/lib/mysql/mysql.sock' (2)
4510:20161229:102804.301 Database is down. Reconnecting in 10 seconds.
4510:20161229:102814.302 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket
[root@OBird ~]# /etc/init.d/httpd start; /etc/init.d/mysqld start #啓動httpd & mysqld
Starting httpd: [ OK ]
Starting mysqld: [ OK ]
[root@OBird ~]# mysql -uroot -pzaq12wsx #進入數據庫
mysql> create database zabbix;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 43
Current database: *** NONE ***
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cacti |
| discuz |
| mysql |
| test |
| zabbix |
+--------------------+
6 rows in set (0.05 sec)
mysql> show variables like '%char%'; #查看實例字符集
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 55
Current database: zabbix
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql> SET character_set_client = utf8 ;更改實例的字符集,不知道有沒有問題,先這樣做了再說
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 13
Current database: *** NONE ***
Query OK, 0 rows affected (0.00 sec)
mysql> SET NAMES 'utf8';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 8
Current database: *** NONE ***
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%char%';#再次查看
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
導入三個數據庫:
[root@OBird ~]# mysql -uroot -pzaq12wsx zabbix < /usr/share/zabbix-mysql/schema.sql
[root@OBird ~]# mysql -uroot -pzaq12wsx zabbix < /usr/share/zabbix-mysql/p_w_picpaths.sql
[root@OBird ~]# mysql -uroot -pzaq12wsx zabbix < /usr/share/zabbix-mysql/data.sql
再次啓動zabbix-server 還是沒有啓動,日誌報錯和上面的一樣。
[root@OBird ~]# mysql -uroot -pzaq12wsx
mysql>grant all on *.* to 'zabbix'@'localhost' identified by 'zabbix'; #創建用戶&密碼及授權
Query OK, 0 rows affected (0.00 sec)
[root@OBird ~]# vim /etc/zabbix/zabbix_server.conf #編輯寫入zabbix 用戶密碼。
DBPassword=zabbix
[root@OBird ~]# ls /tmp/mysql.sock # mysql.sock 在tmp 這個文件夾下
/tmp/mysql.sock
[root@OBird ~]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #做一個軟鏈接
[root@OBird ~]# service mysqld restart #重啓數據庫
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
[root@OBird ~]# /etc/init.d/zabbix-server restart #重啓zabbix-server 服務
Shutting down Zabbix server: [ OK ]
Starting Zabbix server: [ OK ]
查詢確認Zabbix 服務已經啓動:
網頁端 Zabbix 安裝:
以下三項測試不通過:
PHP option post_max_size | 8M | 16M | Fail |
PHP option max_execution_time | 30 | 300 | Fail |
PHP option max_input_time | 60 | 300 | Fail |
[root@OBird ~]# vim /etc/php.ini #編輯php.ini 文件
post_max_size = 16M #8M->16M
max_execution_time = 300 # 30 -> 300
ax_input_time = 300 # 60 ->300
[root@OBird ~]# service httpd restart
刷 新 :http://10.72.4.43/zabbix/ ,全部通過,直接下一步,下一步直至安裝完成。
Zabbix 黙認管理員帳號: admin ps:zabbix .至此Zabbix 服務端安裝完成。
----------------------------------------分割線----------------------------------------
安裝接入監控的客戶端主機:客戶端機的環境是 LNMP.
[root@LNMP ~]# yum install zabbix20-agent
[root@LNMP ~]# vim /etc/zabbix_agentd.conf #編輯配置文件,更改爲以下
Server=10.72.4.43 #服務端IP
ServerActive=0.0.0.0:10050 #監聽端口
Hostname=Zabbix_liven_linux #自定義的主機名
[root@LNMP ~]# /etc/init.d/zabbix-agent start #啓動zabbix-agent 服務
Starting Zabbix agent: [ OK ]
[root@OBird ~]# zabbix_get -s 10.72.4.38 -p10050 -k "system.hostname"
LNMP
#在服務端檢測客戶端主機名,檢測無誤。說明兩機之間通信無誤。
添加監控模版:
服務端監控數據查看:
創建自定義模版:
Zabbix自帶了很多模板,模板中有很多監控項目,比如CPU、網卡、內存、進程等等。使用系統自帶模板有點太多了,所以我們可以自定義模板。點configuration 選擇 templates,點右上角的create template
Template name和Visible name 自定義,Groups 選擇templates, 點save
然後我們去挑選一些項目拷貝到該模板下:比如我們找到Template OS Linux 點一下items,選擇想要的項目,然後在下面選擇copy selected to … 然後點go
Group 選擇templates, 找到剛纔我們自定義的templates,點copy
點configuration 選擇 templates可以看到新建的templates中已經有剛剛我們copy的items了
我們可以使用和上面相同的方法自定義拷貝Triggers(觸發器 ),它用來設置告警的閥值,也可以自定義編輯它。
----------------------------------------分割線----------------------------------------
[root@OBird ~]# /etc/init.d/postfix restart #啓動postfix 服務
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
[root@OBird ~]# mail -s "2016-12-30" [email protected] < /etc/inittab #發郵件
[root@OBird ~]# mailq #查看郵件有沒有發出去
Mail queue is empty
#樓主是用QQ 郵箱測試的,是可以收到郵件的。如下圖
在zabbix-server 端來編寫發郵件腳本
[root@OBird ~]# mkdir -p /home/zabbix/bin
[root@OBird ~]# vim /home/zabbix/bin/bj.sh
#!/bin/bash
echo "$3" |/bin/mail -s "$2" $1 # $3 是郵件內容 ,$2 是主題 $1 是收件人
[root@OBird ~]# chmod +x /home/zabbix/bin/bj.sh #加入可執行的權權
[root@OBird ~]# vim /etc/zabbix/zabbix_server.conf #更改郵件腳本路徑,
#AlertScriptsPath=/var/lib/zabbixsrv/alertscripts
AlertScriptsPath=/home/zabbix/bin
#ExternalScripts=/var/lib/zabbixsrv/externalscripts
ExternalScripts=/home/zabbix/bin
創建mediea types: “Administration" -->”Media types",點擊右上角“Create Media Type"其中Description填"bj” 或其它自定義名稱,Type選擇"Script",Script填”bj.sh”然後點”Save”.
創建user: “Adimistration” --> “Users”在右上角,選擇”Users”,點擊”Create User”, alias: test1,自定義name和lastname password:zaq12wsx;group 選擇guest,回到上面點一下media,type 選擇baojing,send to 寫要發送郵件的郵箱,點add, 最後點save
創建action: “configuration” --> actions,右上角“Create Actions”, Name自定義,我這裏寫”baojing”,其他默認,然後點右側的“Operations”下的“New”按鈕,“Operation Type”選擇“Send message”,“Send Message to”選擇一個或多個要發送消息的用戶組,Send to Users選擇我們之前新增的test1, “Send only to”選擇bj , 點一下add
最後點save
創建action: “configuration” --> actions,右上角“Create Actions”, Name自定義,我這裏寫”baojing”,其他默認,然後點右側的“Operations”下的“New”按鈕,“Operation Type”選擇“Send message”,“Send Message to”選擇一個或多個要發送消息的用戶組,Send to Users選擇我們之前新增的test1, “Send only to”選擇baojing , 點一下add
最後點save