Zabbix概述
Zabbix是一個(gè)基于Web界面的分布式系統(tǒng)監(jiān)控與網(wǎng)絡(luò)設(shè)備監(jiān)控系統(tǒng),它能夠監(jiān)控各種網(wǎng)絡(luò)參數(shù),并提供靈活的通知機(jī)制,以使管理員能快速定位故障并解決由zabbix server 端與zabbix agent組成,可通過SNMP、zabbix、agent 、ping、端口監(jiān)視等方法實(shí)現(xiàn)對(duì)遠(yuǎn)程主機(jī)與網(wǎng)絡(luò)設(shè)備的監(jiān)控。
zabbix特點(diǎn)
- 支持自動(dòng)發(fā)現(xiàn)網(wǎng)絡(luò)設(shè)備和服務(wù)器
- 支持分布式監(jiān)控
- 可設(shè)置報(bào)警閾值
- 可以通過多種方式進(jìn)行數(shù)據(jù)收集
- 可定制報(bào)警方式
- 實(shí)時(shí)的繪圖功能
- 通過Web監(jiān)控系統(tǒng)與設(shè)置
zabbix官網(wǎng): https://www.zabbix.com
系統(tǒng)環(huán)境
主機(jī) | IP | 服務(wù) |
---|---|---|
監(jiān)控端 | 192.168.26.161 | lamp、zabbix-server |
被監(jiān)控端 | 192.168.26.163 | zabbix-agent |
實(shí)驗(yàn)步驟
關(guān)閉所有主機(jī)的防火墻和安全性策略
systemctl stop firewalld.service
setenforce 0
一、Server端安裝配置LAMP環(huán)境,以滿足zabbix的代碼部署要求
1.安裝lamp相關(guān)軟件包
yum install -y
httpd
mariadb-server mariadb
php
php-mysql
php-gd
libjpeg*
php-ldap
php-odbc
php-pear
php-xml
php-xmlrpc
php-mhash
2.編輯修改httpd、php配置文件
vi /etc/httpd/conf/httpd.conf
ServerName www.benet.com
DirectoryIndex index.html index.php
vi /etc/php.ini
date.timezone = PRC //設(shè)置中國時(shí)區(qū)
3.啟動(dòng)http服務(wù)與mariadb服務(wù)
systemctl start httpd.service
systemctl start mariadb.service
netstat -ntap | egrep ‘(80|3306)’ //查看端口
4.MySQL初始化安裝
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we’ll need the current
password for the root user. If you’ve just installed MariaDB, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): // 回車鍵
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password: //設(shè)置新密碼
Re-enter new password: //確認(rèn)密碼
Password updated successfully!
Reloading privilege tables..
… Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] n //是否移除anonymous用戶
… skipping.
Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n //是否允許root用戶遠(yuǎn)程登錄
… skipping.
By default, MariaDB comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] n //是否移除test數(shù)據(jù)庫
… skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y //重新加載數(shù)據(jù)表
… Success!
Cleaning up…
All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
5.登錄mysql,創(chuàng)建zabbix數(shù)據(jù)庫及創(chuàng)建zabbix用戶并設(shè)置密碼
mysql -u root -p
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT all privileges ON *.* TO ‘zabbix’@’%’ IDENTIFIED BY ‘admin123’;
flush privileges;
6.創(chuàng)建mysql數(shù)據(jù)庫的測(cè)試網(wǎng)頁文件
vi /var/www/html/index.php
<?php
phpinfo();
$link=mysql_connect(‘192.168.26.161′,’zabbix’,’admin123′);
if($link) echo “<h1>Success!!</h1>”;
else echo “Fail!!”;
mysql_close();
?>
7.客戶端訪問index.php網(wǎng)頁
顯示success則訪問mysql正常,fail則訪問失敗,檢查index.php中連接地址、用戶名、密碼是否正確,若還是有問題請(qǐng)檢查mysql.user表用戶名稱是否有空用戶名稱占用而導(dǎo)致的錯(cuò)誤,以下為解決方法
> select user,host from mysql.user; //用戶名稱為空占用導(dǎo)致本地?zé)o法登錄遠(yuǎn)程可登錄
+——–+———–+
| user | host |
+——–+———–+
| zabbix | % |
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | zabbix |
| root | zabbix |
+——–+———–+
> drop user ”@localhost;
> drop user ”@zabbix;
> flush privileges;
二、部署zabbix Server
1.下載zabbix官方y(tǒng)um源文件
rpm -i https://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-release-2.2-1.el7.noarch.rpm
2.安裝zabbix服務(wù)端及被控端軟件包
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
3.導(dǎo)入zabbix數(shù)據(jù)庫
zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p zabbix
4.編輯zabbix_service.conf配置,結(jié)果如下
egrep -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=admin123 //修改本行為創(chuàng)建zabbix數(shù)據(jù)庫的密碼
347:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
465:Timeout=4
507:AlertScriptsPath=/usr/lib/zabbix/alertscripts
517:ExternalScripts=/usr/lib/zabbix/externalscripts
553:LogSlowQueries=3000
5.編輯zabbix配置文件,指定時(shí)區(qū)
vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
6.修正zabbix-web圖表中文亂碼
vim /usr/share/zabbix/include/defines.inc.php
#替換全文中所有g(shù)raphfot為kaiti
:%s/graphfont/kaiti/g
7.復(fù)制字體文件至zabbix/fonts/目錄下
cp kaiti.ttf /usr/share/zabbix/fonts/
8.啟動(dòng)zabbix-server服務(wù)
systemctl enable zabbix-server
systemctl start zabbix-server
9.檢查是否已監(jiān)聽10051端口
netstat -anpt | grep zabbix
10.重啟httpd服務(wù)
systemctl restart httpd.service
三、部署Zabbix-agent
1.下載zabbix官方y(tǒng)um源文件
rpm -i https://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-release-2.2-1.el7.noarch.rpm
2.安裝zabbix被控端軟件包
yum install -y zabbix-agent
3.編輯zabbix_agentd.conf配置,結(jié)果如下
egrep -n ‘^'[a-Z] /etc/zabbix/zabbix_agentd.conf
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
23:LogFile=/var/log/zabbix/zabbix_agentd.log
34:LogFileSize=0
85:Server=192.168.96.70
126:ServerActive=192.168.96.70
137:Hostname=zabbix
246:Include=/etc/zabbix/zabbix_agentd.d/
4.啟動(dòng)zabbix-agent服務(wù)
systemctl enable zabbix-agent.service
systemctl start zabbix-agent.service
5.檢查是否已監(jiān)聽10050端口
netstat -anpt | grep zabbix
四、在web界面安裝zabbix
打開瀏覽器輸入:
http://192.168.26.161/zabbix/
安裝后登錄 用戶名Admin 密碼:zabbix
點(diǎn)擊用戶:設(shè)置中文環(huán)境方便管理
添加被控主機(jī)
配置>主機(jī)>創(chuàng)建主機(jī)
主機(jī)頁面根據(jù)需求配置
選中主機(jī)>點(diǎn)擊批量更新(可以添加監(jiān)控項(xiàng))> 模板 (添加2個(gè)模板測(cè)試下)
五、配置郵件報(bào)警功能
1.首先在zabbix-server上配置
yum install mailx -y
vi /etc/mail.rc
—-文件末尾新增—
set from=qq郵箱
set smtp=smtp.qq.com
set smtp-auth-user=qq郵箱
set smtp-auth-password=郵箱授權(quán)碼
set smtp-auth=login
echo “hello world” | mail -s “testmail” qq郵箱 //測(cè)試發(fā)信正常
cd /usr/lib/zabbix/alertscripts
vi mailx.sh //e編寫發(fā)郵件腳本
#!/bin/bash
#send mail
messages=`echo $3 | tr ‘rn’ ‘n’`
subject=`echo $2 | tr ‘rn’ ‘n’`
echo “${messages}” | mail -s “${subject}” $1 >>/tmp/mailx.log 2>&1
——
touch /tmp/mailx.log
chown -R zabbix.zabbix /tmp/mailx.log
chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
chown -R zabbix.zabbix /usr/lib/zabbix/
./mailx.sh qq郵箱 “主題” “內(nèi)容” //測(cè)試發(fā)郵件腳本是否可以正常工作
2.然后在服務(wù)器WEB上配置
打開管理==》報(bào)警媒體類型==》創(chuàng)建媒體類型
名稱:Mail-Test
類型:腳本
腳本名稱:mailx.sh
腳本參數(shù)://新增以下三個(gè)參數(shù)
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
管理==》用戶==》點(diǎn)擊Admin=》報(bào)警媒介
類型:Mail-Test //調(diào)用上面的腳本br/>收件人:qq郵箱
其它默認(rèn)-保存
配置-》動(dòng)作-》創(chuàng)建動(dòng)作-》刪除默認(rèn)標(biāo)簽,修改觸發(fā)條件
名稱:Mailx
條件 A 主機(jī)群組=Linux servers
操作-》如下配置
默認(rèn)操作步驟持續(xù)時(shí)間 60
默認(rèn)接收人 : {TRIGGER.STATUS}:{TRIGGER.NAME}
默認(rèn)信息:
告警主機(jī):{HOST.NAME}
告警 IP:{HOST.IP}
告警時(shí)間:{EVENT.DATE}-{EVENT.TIME}
告警等級(jí):{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
事件 ID:{EVENT.ID}操作細(xì)節(jié):-》
操作類型:發(fā)送消息
發(fā)送到用戶:Admin (Zabbix Administrator)
僅送到:Mail-Test //一定要配置否則郵件發(fā)送不成功
恢復(fù)操作:{TRIGGER.STATUS}:{TRIGGER.NAME}
恢復(fù)信息:
恢復(fù)主機(jī):{HOST.NAME}
恢復(fù) IP:{HOST.IP}
恢復(fù)時(shí)間:{EVENT.DATE}-{EVENT.TIME}
恢復(fù)等級(jí):{TRIGGER.SEVERITY}
恢復(fù)信息:{TRIGGER.NAME}:{ITEM.VALUE}
恢復(fù) ID:{EVENT.ID}操作細(xì)節(jié):-》
操作類型:發(fā)送消息
發(fā)送到用戶:Admin (Zabbix Administrator)
僅送到:Mail-Test //一定要配置否則郵件發(fā)送不成功
六、測(cè)試郵箱報(bào)警功能
添加一個(gè)監(jiān)控項(xiàng)(ssh service)
systemctl stop sshd //在被監(jiān)控主機(jī)上關(guān)閉ssh服務(wù)
重新啟動(dòng)ssh服務(wù)