初步了解Zabbix:
Zabbix能監(jiān)視各種網(wǎng)絡(luò)參數(shù),保證服務(wù)器系統(tǒng)的安全運(yùn)營;并提供靈活的通知機(jī)制以讓系統(tǒng)管理員快速定位/解決存在的各種問題。是一個基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級的開源解決方案。被監(jiān)控對象只要支持SNMP協(xié)議或者運(yùn)行Zabbix_agents代理程序即可。
agent端:主機(jī)通過安裝agent方式采集數(shù)據(jù)。
server端:通過收集agent發(fā)送的數(shù)據(jù),寫入數(shù)據(jù)庫(MySQL,Oracle等),再通過php+apache在web前端展示.
SNMP:
SNMP是英文”Simple Network Management Protocol”的縮寫,中文意思是”簡單網(wǎng)絡(luò)管理協(xié)議”。SNMP是一種簡單網(wǎng)絡(luò)管理協(xié)議,它屬于TCP/IP五層協(xié)議中的應(yīng)用層協(xié)議,用于網(wǎng)絡(luò)管理的協(xié)議。SNMP主要用于網(wǎng)絡(luò)設(shè)備的管理。
Zabbix工作原理:
Agentd安裝在被監(jiān)控的主機(jī)上,Agent負(fù)責(zé)定期收集客戶端本地各項數(shù)據(jù),并發(fā)送至Zabbix Server端,Zabbix Server收到數(shù)據(jù),將數(shù)據(jù)存儲到數(shù)據(jù)庫中,用戶基于Zabbix WEB可以看到數(shù)據(jù)在前端展現(xiàn)圖像。當(dāng)Zabbix監(jiān)控某個具體的項目,改項目會設(shè)置一個觸發(fā)器閾值,當(dāng)被監(jiān)控的指標(biāo)超過該觸發(fā)器設(shè)定的閾值,會進(jìn)行一些必要的動作,動作包括:發(fā)送信息(郵件、微信、短信)、發(fā)送命令(SHELL 命令、Reboot、Restart、Install等)。
Zabbix重要的五個組件:
1、Zabbix Server:負(fù)責(zé)接收agent發(fā)送的報告信息的核心組件,所有配置,統(tǒng)計數(shù)據(jù)及操作數(shù)據(jù)均由其組織進(jìn)行;
2、Database Storage:專用于存儲所有配置信息,以及由Zabbix收集的數(shù)據(jù);
3、Web interface:Zabbix的GUI接口,通常與Server運(yùn)行在同一臺主機(jī)上;
4、Proxy:可選組件,常用于分布監(jiān)控環(huán)境中,代理Server收集部分被監(jiān)控端的監(jiān)控數(shù)據(jù)并統(tǒng)一發(fā)往Server端;
5、Agent:部署在被監(jiān)控主機(jī)上,負(fù)責(zé)收集本地數(shù)據(jù)并發(fā)往Server端或Proxy端;
Zabbix基本組件拓?fù)洌?br />
下面我對如何部署zabbix進(jìn)行詳細(xì)配置
實(shí)驗(yàn)環(huán)境:
——————————————分割線——————————————
STKAITI字體文件可從以下信息得到下載:
點(diǎn)擊這個http://www.linuxidc.com/Linux/2013-12/93755.htm 鏈接去關(guān)注 Linux公社官方微信,關(guān)注后回復(fù)數(shù)字155200。即可得到網(wǎng)友的分享密碼。
如果取消關(guān)注Linux公社公眾號,即使再次關(guān)注,也將無法提供本服務(wù)!
鏈接: https://pan.baidu.com/s/1VRFCbBpBsceJ9YD0VPXPHQ 密碼:獲得見上面的方法,地址失效請在下面留言。
——————————————分割線——————————————
一、部署LAMP架構(gòu)
下載LAMP所需安裝包
[root@localhost ~]# yum install httpd mariadb mariadb-server php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash -y
配置Apache主配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
ServerName www.yun.com:80 #修改域名
DirectoryIndex index.html index.php #讓Apache支持PHP
為了讓zabbix連接互聯(lián)網(wǎng),設(shè)置中國時區(qū)
[root@localhost ~]# vim /etc/php.ini
date.timezone = PRC
開啟httpd服務(wù)和mysql
[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# systemctl start mariadb.service
[root@localhost ~]# netstat -ntap | egrep ’80|3306′ #查看兩個服務(wù)的端口
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 38513/mysqld
tcp6 0 0 :::80 :::* LISTEN 38242/httpd
重新配置mariadb數(shù)據(jù)庫的參數(shù)
[root@localhost ~]# mysql_secure_installation
Set root password? [Y/n] y #是否設(shè)置密碼
Remove anonymous users? [Y/n] n #是否刪除默認(rèn)用戶
Disallow root login remotely? [Y/n] n #是否禁止root遠(yuǎn)程登錄
Remove test database and access to it? [Y/n] n #是否刪除測試數(shù)據(jù)庫
Reload privilege tables now? [Y/n] y #是否對數(shù)據(jù)庫進(jìn)行初始化配置
創(chuàng)建zabbix數(shù)據(jù)庫
[root@localhost ~]# mysql -uroot -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; #創(chuàng)建一個zabbix數(shù)據(jù)庫
MariaDB [(none)]> grant all on zabbix.* to ‘zabbix’@’%’ identified by ‘123123’; #為zabbix數(shù)據(jù)庫創(chuàng)建管理用戶
MariaDB [(none)]> flush privileges;
創(chuàng)建PHP測試首頁
[root@localhost ~]# vim /var/www/html/index.php
<?php
phpinfo();
?>
編寫測試腳本,測試PHP能否連接數(shù)據(jù)庫
<?php
$link=mysql_connect(‘192.168.199.129′,’zabbix’,’123123′);
if($link) echo “<h1>success</h1>”;
else echo “fail”;
mysql_close();
?>
在使用zabbix用戶進(jìn)行登錄數(shù)據(jù)庫時有時會出現(xiàn)登錄失敗的現(xiàn)象,這是因?yàn)槔锩嬗锌沼脩粽加脤?dǎo)致本地用戶無法登錄,所以需要刪除空用戶
[root@localhost ~]# mysql -u zabbix -p #登錄失敗
Enter password:
ERROR 1045 (28000): Access denied for user ‘zabbix’@’localhost’ (using password: YES)
[root@localhost ~]# mysql -u root -p
MariaDB [(none)]> select user,host from mysql.user; #有空用戶占用導(dǎo)致本地用戶無法登陸
+——–+———————–+
| user | host |
+——–+———————–+
| zabbix | % |
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | localhost.localdomain |
| root | localhost.localdomain |
+——–+———————–+
7 rows in set (0.00 sec)
MariaDB [(none)]> drop user ”@’localhost’; #刪除空用戶
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> drop user ”@’localhost.localdomain’; #刪除空用戶
Query OK, 0 rows affected (0.00 sec)
[root@localhost ~]# mysql -u zabbix -p #再次登錄就可以了
MariaDB [(none)]>
到此為止,LAMP架構(gòu)就部署完了
二、部署zabbix server
[root@localhost ~]# yum install php-bcmath php-mbstring -y #下載兩個PHP依賴包
[root@localhost~]#rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm #下載zabbix yum源,安裝完成后會自動產(chǎn)生repo文件
[root@localhost ~]# yum install zabbix-server-mysql zabbix-web-mysql -y #安裝zabbix軟件包
修改zabbix配置文件
[root@localhost ~]# grep -n ‘^'[a-Z] /etc/zabbix/zabbix_server.conf #以下為需要修改的行
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
101:DBName=zabbix
117:DBUser=zabbix
125:DBPassword=123123 #密碼改為zabbix登陸密碼
357:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
475:Timeout=4
518:AlertScriptsPath=/usr/lib/zabbix/alertscripts
529:ExternalScripts=/usr/lib/zabbix/externalscripts
565:LogSlowQueries=3000
[root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf #修改時區(qū)
php_value date.timezone Asia/Shanghai
[root@localhost ~]# vim /usr/share/zabbix/include/defines.inc.php #修正圖表中文亂碼
:%s /graphfont/kaiti/g #將配置文件中的graphfont替換為kaiti
[root@localhost ~]# cp STKAITI.TTF /usr/share/zabbix/fonts/ #從微軟系統(tǒng)下復(fù)制相應(yīng)的字體文件到/usr/share/zabbix/fonts/
開啟zabbix服務(wù)端
[root@localhost ~]# systemctl start zabbix-server.service
[root@localhost ~]# systemctl enable zabbix-server.service
[root@localhost ~]# netstat -ntap | grep 10051 #查看端口
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 40703/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 40703/zabbix_server
[root@localhost ~]# systemctl restart httpd.service #重啟Apache服務(wù)
http://192.168.199.129/zabbix #在瀏覽器上登陸zabbix頁面
首先看見的是zabbix的版本:
這里所有的選項都為OK表示配置是沒問題的:
密碼為zabbix的登陸密碼:
名字填寫zabbix:
默認(rèn)的用戶名和密碼為Admin和zabbix:
登陸完成后便會到zabbix的監(jiān)控頁面:
點(diǎn)擊右上角頭像可以選擇語言,這里我選擇中文:
三、安裝被監(jiān)控端
[root@localhost ~]# systemctl stop firewalld.service #關(guān)閉防火墻
[root@localhost ~]# setenforce 0
[root@localhost~]#rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm #下載yum源
[root@localhost ~]# yum install zabbix-agent -y #被監(jiān)控端需要裝agent包,如果想要監(jiān)控本機(jī)器,也可以在監(jiān)控服務(wù)器上進(jìn)行安裝
更改配置文件
[root@localhost ~]# grep -n ‘^'[a-Z] /etc/zabbix/zabbix_agentd.conf #更改配置文件以下選項
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
98:Server=192.168.199.129 #將地址指向服務(wù)器端
139:ServerActive=192.168.199.129 #將地址指向服務(wù)器端
150:Hostname=test #名字可自行定義
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf
開啟服務(wù)
[root@localhost ~]# systemctl start zabbix-agent.service
[root@localhost ~]# systemctl enable zabbix-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@localhost ~]# netstat -ntap | grep zabbix #查看端口
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 40351/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 40351/zabbix_agentd
在服務(wù)器上配置完了就可以到zabbix監(jiān)控頁面進(jìn)行配置
首先在監(jiān)控頁面中添加被監(jiān)控服務(wù)器
配置主機(jī)項基本信息
配置模板選項,添加想要監(jiān)控的模塊
查看添加好的主機(jī)信息
回到主界面,點(diǎn)擊刷新,過一會就回出現(xiàn)監(jiān)控信息
四、配置郵件報警功能—–在監(jiān)控服務(wù)器上配置
[root@localhost ~]# yum install mailx -y #下載郵箱服務(wù)
[root@localhost ~]# vim /etc/mail.rc #在文件末尾添加如下配置
set from=郵箱地址
set smtp=smtp.qq.com
set smtp-auth-user=郵箱地址
set smtp-auth-password=********** #如果填寫的是qq郵箱,密碼為qq郵箱的SMTP密碼
set smtp-auth=login
[root@localhost ~]# systemctl restart postfix.service #重新啟動郵箱服務(wù)
[root@localhost ~]# echo “hello world” | mail -s “testmail” 郵箱地址 #發(fā)送一個測試郵件
可以看到我在QQ郵箱中收到了一封郵件
[root@localhost ~]# vim /usr/lib/zabbix/alertscripts/mail.sh #寫一個發(fā)郵件的腳本,腳本路徑一定要寫對
#!/bin/bash
#send mail
messages=`echo $3 | tr ‘rn’ ‘n’`
subject=`echo $2 | tr ‘rn’ ‘n’`
echo “${messages}” | mail -s “${subject}” $1 >>/tmp/mail.log 2>&1[root@localhost ~]# chmod +x /usr/lib/zabbix/alertscripts/mail.sh #給腳本執(zhí)行權(quán)限
[root@localhost ~]# touch /tmp/mail.log #創(chuàng)建郵箱日志文件
[root@localhost ~]# chown -R zabbix.zabbix /tmp/mail.log #將權(quán)限給zabbix用戶
[root@localhost ~]# chown -R zabbix.zabbix /usr/lib/zabbix/再次發(fā)送一封測試郵件使用腳本執(zhí)行
[root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
[root@localhost alertscripts]# ./mail.sh 郵箱地址 “yun” “hahahahaha” #發(fā)送格式為“地址”“標(biāo)題”“內(nèi)容”
六、配置zabbix郵件報警機(jī)制
1 選擇報警媒介類型
2 選擇管理用戶
3 在動作配置項中定義報警郵件的發(fā)送形式
4 配置恢復(fù)操作后郵件的發(fā)送形式
七、測試,如果我關(guān)閉受監(jiān)控的服務(wù)來模擬服務(wù)故障,zabbix一個會發(fā)送一封郵件提醒我,當(dāng)我再次打開這個服務(wù)時表示這個服務(wù)已經(jīng)被修復(fù),zabbix一個也會發(fā)一封恢復(fù)郵件。
[root@localhost ~]# systemctl stop sshd.service #關(guān)閉被監(jiān)控端的ssh服務(wù)
接著便會收到郵件信息了:
[root@localhost ~]# systemctl start sshd.service #我再次開啟被監(jiān)控端的SSH服務(wù)
到此為止Zabbix監(jiān)控系統(tǒng)就搭建完成了。