每一個模塊工做職責:html
Zabbix Server:負責接收agent發送的報告信息的核心組件,全部配置,統計數據及操做數據均由其組織進行;前端
Database Storage:用戶存儲全部配置信息,以及存儲由Zabbix Server收集到的數據;mysql
Web Interface: Zabbix的GUI接口,一般與Server運行在同一臺主機上;linux
Zabbix Proxy:經常使用於分佈監控環境中,代理Server收集部分被監控的監控數據並統一發往Server端;(一般大於500臺主機須要使用)web
Zabbix Agent:部署在被監控主機上,負責收集本地數據發往Server端或Proxy端;sql
Zabbix監控原理:
Agentd安裝在被監控的主機上,Agent負責按期收集客戶端本地各項數據,併發送至Zabbix Server端,Zabbix Server收到數據,將數據存儲到數據庫中,用戶基於Zabbix WEB能夠看到數據在前端展示圖像。當Zabbix監控某個具體的項目,改項目會設置一個觸發器閾值,當被監控的指標超過該觸發器設定的閾值,會進行一些必要的動做,動做包括:發送信息(郵件、微信、短信)、發送命令(SHELL 命令、Reboot、Restart、Install等)docker
原文地址數據庫
常見架構:apache
Server/Agent模式:
zabbix-agent模式
Proxy代理模式:
你有可能須要
docker安裝zabbix-server
官方安裝指導
linux中編譯安裝Apache、PHP、MySQL
Linux下完全卸載一個軟件
Mysql 忘記root密碼決方法
配置文件詳解
linux安裝gcc:yum install gcc
給zabbix用戶添加zabbix_proxy庫權限
GRANT ALL PRIVILEGES ON zabbix_proxy.* TO zabbix IDENTIFIED BY 'zabbix';
本次使用
OS:CentOS 7.4 x86_64
Zabbix版本:3.4
MySQL版本:5.6
預計安裝
我有嘗試安裝最新版,只須要把獲取的包版本更換就行。均可執行
[root@VM_0_13_centos web]# systemctl disable firewalld && systemctl stop firewalld
[root@VM_0_13_centos web]# setenforce 0 #零時關閉selinux 無需重啓 可將這個命令和下面這個一塊兒執行 下次也不用管了
[root@VM_0_13_centos web]# vi /etc/selinux/config
把SELINUXTYPE=targeted 改爲 SELINUX=disabled #永久關閉selinux狀態 須要重啓
[root@VM_0_13_centos web]# chkconfig iptables off #永久關閉iptables狀態centos7的我沒找到這個
[root@VM_0_13_centos web]# systemctl disable firewalld.service #禁止firewall開機啓動centos7的我執行了這個命令
其實不關閉也能夠只是會遇到不少問題,好比要單獨去開放用到的一些端口,那樣用起來很麻煩。
防火牆關閉參考文章:
iptables開啓和關閉
SELinux開啓和關閉
CentOS 6和CentOS 7防火牆的關閉
192.168.1.1
一、下載zabbix的rpm倉庫包
[root@VM_0_13_centos]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm #能夠去去連接找更新的包
二、安裝相關套件zabbix-server-mysql和web-mysql
[root@VM_0_13_centos]# yum install zabbix-server-mysql zabbix-web-mysql
三、安裝而且啓動mysql5.6及初始化數據庫信息
[root@VM_0_13_centos]# rpm -ivh http://repo.mysql.com/yum/mysql-5.6-community/el/6/x86_64/mysql-community-release-el6-5.noarch.rpm
[root@VM_0_13_centos]# yum install -y mysql-community-server
[root@VM_0_13_centos]# systemctl start mysqld
[root@VM_0_13_centos]# /sbin/chkconfig mysqld on #開機啓動
[root@VM_0_13_centos]# mysql_secure_installation #初始化數據庫信息,直接回車會讓設置root密碼,根據提示一步一步完成,最後一步y就行了。
你可能須要Mysql 忘記root密碼決方法
四、建立zabbix數據庫,建立zabbix帳號
[root@VM_0_13_centos]# mysql -h127.0.0.1 -uroot -p
....#直接回車原始不須要密碼,如已有忘記了看頂部的重置密碼教程
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> flush privileges; #從新加載權限表
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
五、導入默認的zabbix數據庫信息
[root@VM_0_13_centos]# zcat /usr/share/doc/zabbix-server-mysql-3.4.10/create.sql.gz | mysql zabbix -uzabbix -pzabbix #zabbix-server-mysql-4.0.0/create.sql.gz須要進這個路徑查看一下是否是不必定同樣 cd /usr/share/doc/
上面的命令必定要等到他自動執行完
六、修改zabbix_server.conf的配置文件
[root@VM_0_13_centos]# grep ^DB /etc/zabbix/zabbix_server.conf
DBHost=localhost #若是不是本機就填寫目標ip,前提你也須要在目標主機執行第4步、建立zabbix數據庫
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
上面若是沒出現這麼多條進路徑中改配置vim /etc/zabbix/zabbix_server.conf
有兩個默認被註釋了
七、修改配置文件/etc/httpd/conf.d/zabbix.conf,時區改爲 Asia/Shanghai
[root@VM_0_13_centos]# vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
八、啓動apache/zabbix-server服務並設置爲開機啓動
[root@VM_0_13_centos]# systemctl start httpd
[root@VM_0_13_centos]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@VM_0_13_centos]# netstat -an |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 52 172.17.0.13:22 183.192.94.180:10928 ESTABLISHED
[root@VM_0_13_centos]# systemctl start zabbix-server
[root@VM_0_13_centos]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
訪問:localhost/zabbix/
按步提示執行便可,HostName配置成 Zabbix server
端口10051
完成登陸,默認用戶:Admin ,密碼:zabbix
若是之後須要更改配置就在這裏/etc/zabbix/web/zabbix.conf.php
ps:第二次安裝 Database host填寫 localhost 未遇到如下兩個錯誤。
可能遇到的錯誤一
鏈接mysql遇到沒法鏈接,使用navicat 進行鏈接報錯 1130
鏈接被拒絕,最後瞭解到出現這種狀況是由於mysql服務器出於安全考慮,默認只容許本地登陸數據庫服務器,解決辦法參考
可能遇到的錯誤二
拒絕zabbix 用戶訪問zabbix 庫,可鏈接mysql執行GRANT ALL PRIVILEGES ON zabbix.* TO zabbix IDENTIFIED BY 'zabbix';
,添加訪問權限。原文地址
設置中文方法
ps:不知道是哪裏操做不對,仍是官方省略了一些簡單步驟,我按照官方的步驟執行到建立初始數據庫就不能繼續了
常見問題:
當使用的DB 並不安裝在本機內
修改/etc/zabbix/zabbix_server.conf
:
DBHost=**192.168.11.xxx**
DBUser=zabbix
DBPassword=**zabbix_password**
#DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306
:
web數據庫配置
修改/usr/share/zabbix/conf/zabbix.conf.php
:
$DB["TYPE"] = 'MYSQL';
$DB["SERVER"] = '**192.168.11.xxx**';
$DB["PORT"] = '3306';
$DB["DATABASE"] = 'zabbix';
$DB["USER"] = 'zabbix';
$DB["PASSWORD"] = '**zabbix_password**';
:
鏈接mysql報錯
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解決辦法:執行/etc/init.d/mysqld start
,啓動mysql
[root@VM_0_13_centos web]# systemctl disable firewalld && systemctl stop firewalld
[root@VM_0_13_centos web]# setenforce 0 #零時關閉selinux 無需重啓 可將這個命令和下面這個一塊兒執行 下次也不用管了
[root@VM_0_13_centos web]# vi /etc/selinux/config
把SELINUXTYPE=targeted 改爲 SELINUX=disabled #永久關閉selinux狀態 須要重啓
[root@VM_0_13_centos web]# chkconfig iptables off #永久關閉iptables狀態centos7的我沒找到這個
[root@VM_0_13_centos web]# systemctl disable firewalld.service #禁止firewall開機啓動centos7的我執行了這個命令
其實不關閉也能夠只是會遇到不少問題,好比要單獨去開放用到的一些端口,那樣用起來很麻煩。
防火牆關閉參考文章:
iptables開啓和關閉
SELinux開啓和關閉
CentOS 6和CentOS 7防火牆的關閉
192.168.1.2
一、安裝mariadb
首先須要安裝mariadb-server
[root@VM_0_13_centos web]# yum install -y mariadb-server
啓動服務
[root@VM_0_13_centos web]# systemctl start mariadb.service
添加到開機啓動
[root@VM_0_13_centos web]# systemctl enable mariadb.service
二、獲取/zabbix-proxy安裝包
[root@VM_0_13_centos web]# wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-proxy-mysql-3.4.1-1.el7.x86_64.rpm
原文做者說 由於存在一些依賴關係,不能直接rpm -ivh,全部必須用yum rpm包的形式進行安裝,那咱們就照作
三、使用yum安裝zabbix-proxy
[root@VM_0_13_centos web]# yum install zabbix-proxy-mysql-3.4.1-1.el7.x86_64.rpm
部分主機遇到如下報錯
Error: Package: zabbix-proxy-mysql-4.0.0-1.alpha1.el7.x86_64 (/zabbix-proxy-mysql-4.0.0-1.alpha1.el7.x86_64)
Requires: fping
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
提示缺乏 fping,解決辦法:
[root@VM_0_13_centos web]# rpm -ivh https://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
[root@VM_0_13_centos web]# yum install -y fping
四、建立數據庫
[root@VM_0_13_centos web]# mysql
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin; #建立zabbix_proxy庫
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix'; #建立zabbix_proxy用戶並把zabbix_proxy庫的全部權限給他密碼是zabbix
MariaDB [(none)]> flush privileges; #從新加載權限表
MariaDB [(none)]> quit #退出
某些服務器遇到了報錯:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解決辦法:再次啓動服務systemctl start mariadb.service
五、導入zabbix-proxy默認數據
[root@VM_0_13_centos web]# zcat /usr/share/doc/zabbix-proxy-mysql-3.4.1/schema.sql.gz | mysql zabbix_proxy -uzabbix -pzabbix
六、配置zabbix_proxy
[root@VM_0_13_centos web]# vim /etc/zabbix/zabbix_proxy.conf
改如下配置:
Server=192.168.1.1 #同步指向的server端的IP,非本地IP。能夠是server端的主機域名,但要確保proxy端解析server的域名,而且網絡可達
Hostname=Zabbix proxy #proxy本地的名稱,此名稱須要與未來在server端的WEB頁面上的代理程序名稱一致,名稱自定義
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
DBName=zabbix_proxy #與上面mysql配置對應
DBUser=zabbix #與上面mysql配置對應
DBPassword=zabbix #與上面mysql配置對應
DBPort=3306 #與上面mysql配置對應
ConfigFrequency=120 #主動去server端去拉去配置更新的頻率120秒一次
DataSenderFrequency=60 #發送採集的監控數據到服務器端,默認是1秒,咱們一分鐘發送一次
#roxyLocalBuffer=0 #代理配置文件中的ProxyLocalBuffer和ProxyOfflineBuffer參數控制數據在本地保存多長時間。
StartTrappers=10
StartSNMPTrapper=1
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log #默認沒有這個路徑可建立或註釋
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
七、啓動zabbix-proxy
[root@VM_0_13_centos web]# service zabbix-proxy start
[root@VM_0_13_centos web]# chkconfig zabbix-proxy on
若是你出現如下報錯,那是你沒執行關閉防火牆的步驟,沒關selinux
Job for zabbix-proxy.service failed because a configured resource limit was exceeded. See "systemctl status zabbix-proxy.service" and "journalctl -xe" for details.
驗證日誌中出現報錯:cannot set resource limit: [13] Permission denied
八、驗證日誌
[root@VM_0_13_centos web]# tailf /var/log/zabbix/zabbix_proxy.log
遺留問題以:上日誌 報錯failed to update local proxy configuration copy: unexpected field "hosts.available"
致使server不能監控到本機代理
[root@VM_0_13_centos web]# systemctl disable firewalld && systemctl stop firewalld
[root@VM_0_13_centos web]# setenforce 0 #零時關閉selinux 無需重啓 可將這個命令和下面這個一塊兒執行 下次也不用管了
[root@VM_0_13_centos web]# vi /etc/selinux/config
把SELINUXTYPE=targeted 改爲 SELINUX=disabled #永久關閉selinux狀態 須要重啓
[root@VM_0_13_centos web]# chkconfig iptables off #永久關閉iptables狀態centos7的我沒找到這個
[root@VM_0_13_centos web]# systemctl disable firewalld.service #禁止firewall開機啓動centos7的我執行了這個命令
其實不關閉也能夠只是會遇到不少問題,好比要單獨去開放用到的一些端口,那樣用起來很麻煩。
防火牆關閉參考文章:
iptables開啓和關閉
SELinux開啓和關閉
CentOS 6和CentOS 7防火牆的關閉
192.168.1.3
一、獲取zabbix_agent安裝包
[root@VM_0_13_centos web]# wget http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-agent-4.0.0-1.alpha1.el7.x86_64.rpm
二、開始安裝
[root@VM_0_13_centos web]# rpm -ivh zabbix-agent-4.0.0-1.alpha1.el7.x86_64.rpm
三、配置agentd.conf
[root@VM_0_13_centos web]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.2 #zabbix-server地址
ServerActive=192.168.1.2 #zabbix-proxy地址
Hostname=Zabbix proxy #對應Zabbix proxy
RefreshActiveChecks=60
MaxLinesPerSecond=800
EnableRemoteCommands=1
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
UserParameter=get_txt,bash /etc/zabbix/scripts/get_txt.sh
四、添加到services
[root@VM_0_13_centos web]# vi /etc/services
在文件最後面添加以下的內容:
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
五、啓動zabbix-agent並添加開機自啓
[root@VM_0_13_centos web]# service zabbix-agent start
[root@VM_0_13_centos web]# chkconfig zabbix-agent on
原理:
zabbix_agent收集數據
zabbix-proxy獲取zabbix_agent的數據上發給zabbix_server
zabbix_server 獲取數據後展現