## 前言 > 1. 檢查防火牆是否關閉 > > vim /etc/selinux/config > > SELINUX=disabled > > 2. 記憶體4G為好 > > 3. 配置好阿裡yum源 ## 實驗步驟-服務端 > 1. 獲取zabbix的下載源 > > rpm -Uvh https: ...
前言
檢查防火牆是否關閉
vim /etc/selinux/config
SELINUX=disabled
記憶體4G為好
配置好阿裡yum源
實驗步驟-服務端
獲取zabbix的下載源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
更換zabbix.repo源(下載快點)
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
清空緩存,下載zabbix伺服器
yum clean all
yum makecache
yum install zabbix-server-mysql zabbix-agent -y
安裝 Software Collections ,便於後續安裝高版本php,預設yum安裝的php版本為5.4過低。可以在機器上,使用多個版本的軟體,並且不會影響整個系統的依賴環境
yum install centos-release-scl -y
修改zabbix-fronted 前端源
vim /etc/yum.repos.d/zabbix.repo
enabled=1
安裝zabbix前端環境
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
安裝mysql資料庫 並啟動 設置開機自啟
yum install mariadb-server -y
systemctl start mysqld
systemctl enable mysqld
預設沒有密碼修改密碼
先進入mysql
mysql -u root -p
這裡修改密碼設置為root
set password root@localhost=password('root');
如果出現ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 43. Created with MySQL 50651, now running 50733. Please use mysql_upgrade to fix this error.
就退出mysql 執行
mysql_upgrade -u root -p
再去修改密碼
如果出現
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
則卸載plugin validate_password
uninstall plugin validate_password;
創建zabbix資料庫
create database zabbix character set utf8 collate utf8_bin;
創建zabbix用戶
create user zabbix@localhost identified by 'root';
給zabbix用戶zabbix資料庫的許可權,並刷新許可權退出
grant all privileges on zabbix.* to zabbix@localhost;
flush privileges;
quit;
使用zabbix-mysql命令,導入資料庫信息
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
vim /etc/zabbix/zabbix_server.conf
找到DBPassword=root
後面填寫你的mysql密碼
grep '^DBPassword' /etc/zabbix/zabbix_server.conf 檢查一下密碼是否設置
修改zabbix的php文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 把時區改為亞洲上海 並去掉註釋
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
啟動相關服務
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm網頁訪問ip/zabbix 直接下一步
後續直接一路下一步不要管
預設賬號密碼
Admin
zabbix
客戶端
註意時間正確
服務端和客戶端都要進行
yum install ntpdate -y
ntpdate -u ntp.aliyun.com
時區的統一配置
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime然後輸入date 看看服務端和客戶端的日期時間
在客戶端獲取zabbix的下載源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
更換zabbix.repo源(下載快點)
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
安裝agent2
yum install zabbix-agent2 -y
啟動服務
systemctl enable --now zabbix-agent2
更改配置文件
vim /etc/zabbix/zabbix_agent2.conf
Server=x.x.x.x (填服務端ip地址)
ServerActive=x.x.x.x (填服務端ip地址)
Hostname=zabbix-agent01 (填寫你的客戶端主機名)
重啟服務
systemctl restart zabbix-agent2
在服務端安裝zabbix-get
yum install zabbix-get -y
命令檢測 去服務端輸入以下命令
zabbix_get -s '192.168.x.x' -p 10050 -k 'system.hostname'
解決亂碼問題
安裝字體(服務端)
yum -y install wqy-microhei-fonts
複製字體
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
添加zabbix-agent主機
自定義監控內容
自定義監控伺服器登陸的人數
需求:限制登陸人數不超過兩個,超過兩個就發出報警信息
明確需要執行的命令
who | wc -l
手動創建zabbix的配置文件,用於自定義key
cd /etc/zabbix/zabbix_agent2.d/
vim userparameter_login.conf
UserParameter=login.user,who|wc -l
重啟服務
systemctl restart zabbix-agent2
zabbix_get -s '192.168.70.20' -p 10050 -k 'login.user'
此時顯示2 兩台機器人登錄 一臺本機登錄一臺ssh連接登錄的
在頁面添加zabbix-server的自定義監控項模板
添加流程
創建模板
創建應用集(好比是一個文件夾,裡面放入一堆監控項)
創建監控項,自定義item,你具體想監控的內容
創建觸發器,當監控項獲取到值的時候,進行和觸發器比較,判斷,決定是否報警
創建圖形
將具體的主機和該模板鏈接,關聯
創建模板
可以看到模板已添加
- 創建應用集
- 創建監控項
- 創建觸發器
- 創建圖形
關聯
找到要關聯的主機
可以看到圖形中已經顯示了
這時候去測試報錯 多創建用戶ssh連接
用另外一臺虛擬機去ssh連接客戶端機器
儀錶盤就可以看到報錯了!
郵件報警
利用上述自定義監控內容來測試郵件報警
創建報警媒介類型
這裡需要授權碼 (下麵寫瞭如何獲取授權碼)
獲取授權碼
開啟smtp服務讓你驗證 成功後會發送授權碼給你
如果出現報警媒介類型已存在就換個報警媒介名稱
Email名稱報錯 換了個Zabbix_Email
可以看到創建成功了 可以進行測試
測試通過
重新測試增添user登錄 可以發現報警併發送郵件了
可以看到以收到報警郵件
最後確認信息即可
聚合圖形
現在在這裡也能監測到agent01 CPU usage 情況
全網監控方案
如果有許多的機器需要監控難道還需要手動一個個添加主機麽?
思路:
- 克隆監控模板
- 自動註冊和自動發現
- 使用zabbix的api介面,利用curl語言,或者開發自己的編程腳本如python等
監控服務的具體方法
埠檢測的命令
netstat
ss
lsof
在服務端,用zabbix語句 net.tcp.port的值
[root@localhost ~]# zabbix_get -s '192.168.70.20' -p 10050 -k 'net.tcp.port[,22]'
1
自動註冊和自動發現
自動發現
zabbix server主動的去發現所有的客戶端,然後將客戶端的信息,登記在服務端的機器上
缺點是 zabbix-server壓力會比較大
如果定義的一個網段 100-200網段,耗時較久,且壓力比較大
自動註冊
zabbix agent2主動上報自己的信息,發給zabbix-server
缺點是agent2可能找不到server (配置文件寫錯了,網路不通)
自動發現步驟
配置hosts解析
先把之前鏈接測試的客戶端禁用刪除
vim /etc/hosts
在下麵添加你的服務端機器和客戶端機器的地址和機器名稱
192.168.x.x localhost.localdomain
192.168.x.x zabbix-agent01直接在這裡修改它的規則
最後點主機就可以看到已連接到客戶端機器
可以看到已經自動發現了客戶端agent01機器
自動註冊步驟
1.準備機器
server
agent2
2.修改agent2配置文件
vim /etc/zabbix/zabbix_agent2.conf
3.重啟服務
systemctl restart zabbix-agent2
4.驗證
去服務端zabbix語句去驗證這個機器通信
[root@zabbix-server ~]# zabbix_get -s '192.168.xx.xx' -p 10050 -k 'agent.ping'
1繼續添加 添加主機群主
添加與模板關聯
可以看到以及添加進來了
zabbix代理伺服器配置
環境準備,準備三台機器
zabbix-server zabbix-agent01 zabbix-agent02(代理)
防火牆都關閉
確保之前所學的自動發現,註冊以及關閉
準備好客戶端機器,agent02機器
來配置zabbix-proxy代理伺服器,並且部署資料庫,用於存儲agent02發來的數據,最終發給zabbix-server
上面我們已經配置就不需要配置了
配置yum源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
更換zabbix.repo源(下載快點)
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
安裝proxy,以及資料庫
yum install zabbix-proxy-mysql zabbix-get -y
啟動資料庫,配置資料庫用戶,存儲zabbix-agent2信息數據
沒有資料庫先安裝
yum install mariadb-server mariadb -y
[root@zabbix-agent02 ~]# mysql -uroot -p
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
創建zabbix用戶並授予其zabbix_proxy表所有許可權
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)導入zabbix-proxy資料庫信息
查詢sql文件在哪
rpm -ql zabbix-proxy-mysql
[root@zabbix-agent02 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.36/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy
再次進入資料庫
[root@zabbix-agent02 ~]# mysql -uroot -p
使用zabbix_proxy資料庫
MariaDB [(none)]> use zabbix_proxy;
查看資料庫中的表 可以發現以及導入進來了
MariaDB [zabbix_proxy]> show tables;
修改zabbix_proxy配置文件,鏈接資料庫的信息 (zabbix-agent02作為代理機器 )
[root@zabbix-agent02 ~]# sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
[root@zabbix-agent02 ~]# sed -i 's#Server=127.0.0.1#Server=192.168.70.18#' /etc/zabbix/zabbix_proxy.conf
[root@zabbix-agent02 ~]# sed -i 's#Hostname=Zabbix proxy#Hostname=zabbix-agent02#' /etc/zabbix/zabbix_proxy.confgrep -Ev '#|$' /etc/zabbix/zabbix_proxy.conf
systemctl start zabbix-proxy
客戶端配置
先修改好配置文件
vim /etc/zabbix/zabbix_agent2.conf
在客戶端zabbix-agent01機器 重啟服務
systemctl restart zabbix-agent2
[root@zabbix-agent01 ~]# grep '[1]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.xx.xx
ServerActive=192.168.xx.xx
Hostname=zabbix-agent01
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
SNMP監控
簡單網路管理協議
服務端安裝snmp監控程式
yum install net-snmp net-snmp-utils -y
開啟snmp的配置
sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
systemctl start snmpd.service
使用snmp命令
-v 指定協議版本 -c 指定暗號
[root@zabbix-server ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: zabbix-server編輯服務端 zabbix-server
點擊更新後可以看到
a-Z ↩︎