zabbix介紹 zabbix是一個基於WEB界面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。 zabbix能監視各種網路參數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。 zabbix由2部分構成,zabbix server與可選組件z ...
zabbix介紹
zabbix是一個基於WEB界面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。
zabbix能監視各種網路參數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
zabbix由2部分構成,zabbix server與可選組件zabbix agent。
zabbix server可以通過SNMP,zabbix agent,ping,埠監視等方法提供對遠程伺服器/網路狀態的監視,數據收集等功能,它可以運行在Linux,Ubuntu,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。
zabbix agent需要安裝在被監視的目標伺服器上,它主要完成對硬體信息或與操作系統有關的記憶體,CPU等信息的收集。
zabbix server可以單獨監視遠程伺服器的服務狀態;同時也可以與zabbix agent配合,可以輪詢zabbix agent主動接收監視數據(agent方式),同時還可被動接收zabbix agent發送的數據(trapping方式)。
另外zabbix server還支持SNMP (v1,v2),可以與SNMP軟體(例如:net-snmp)等配合使用。
zabbix特點
zabbix的主要特點:
- 安裝與配置簡單,學習成本低
- 支持多語言(包括中文)
- 免費開源
- 自動發現伺服器與網路設備
- 分散式監視以及WEB集中管理功能
- 可以無agent監視
- 用戶安全認證和柔軟的授權方式
- 通過WEB界面設置或查看監視結果
- email等通知功能
Zabbix主要功能:
- CPU負荷
- 記憶體使用
- 磁碟使用
- 網路狀況
- 埠監視
- 日誌監視
zabbix配置文件
zabbix配置文件有兩種:
- 伺服器端配置文件(/usr/local/etc/zabbix_server.conf)
- 客戶端配置文件(/usr/local/etc/zabbix_agentd.conf)
- zabbix代理配置文件(/usr/local/etc/zabbix_proxy.conf)
伺服器端配置文件zabbix_server.conf常用配置參數:
參數 | 作用 |
---|---|
LogFile | 設置服務端日誌文件存放路徑 |
ListenIP | 設置服務端監聽IP |
ListenPort | 設置服務端監聽的埠號 |
PidFile | 設置服務端進程號文件存放路徑 |
DBHost | 指定zabbix的資料庫伺服器IP |
DBName | 指定zabbix使用的資料庫庫名 |
DBUser | 指定zabbix資料庫登錄用戶 |
DBPassword | 指定zabbix資料庫登錄密碼 |
DBPort | 指定zabbix資料庫埠號 |
User | 設置zabbix以什麼用戶的身份運行 |
AlertScriptsPath | 設置告警腳本存放路徑 |
ExternalScripts | 外部腳本存放路徑 |
客戶端配置文件zabbix_agentd.conf常用配置參數:
參數 | 作用 |
---|---|
Server | 指定zabbix伺服器的IP或功能變數名稱 |
ServerActive | 指定zabbix伺服器的IP或功能變數名稱 |
Hostname | 指定本機的主機名,此項必須與web界面配置項一致 |
UnsafeUserParameters | 是否啟用自定義監控項,可選值為{1/0} |
UserParameter | 指定自定義監控腳本參數 |
LogFile | 設置客戶端日誌文件存放路徑 |
部署zabbix
參考於Zabbix 產品手冊
環境說明:
- 伺服器
- lamp架構
- zabbix server
- zabbix agent
- 客戶端
- zabbix agent
因為zabbix是用php語言開發的,所以必須先部署lamp架構,使其能夠支持運行php網頁
zabbix服務端安裝
[root@lynk ~]# yum -y install net-snmp-devel libevent-devel
[root@lynk ~]# cd /usr/src/
[root@lynk src]# wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz
[root@lynk src]# tar xf zabbix-4.0.3.tar.gz
[root@lynk src]# groupadd -r zabbix
[root@lynk src]# useradd -r -g zabbix -M -s /sbin/nologin zabbix
[root@lynk src]# mysql -uroot -p
Enter password:
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.08 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix123!';
Query OK, 0 rows affected, 2 warnings (0.17 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.20 sec)
mysql> quit
Bye
[root@lynk src]# cd /usr/src/zabbix-4.0.3/database/mysql/
[root@lynk mysql]# mysql -uzabbix -pzabbix123! zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@lynk mysql]# mysql -uzabbix -pzabbix123! zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@lynk mysql]# mysql -uzabbix -pzabbix123! zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@lynk mysql]# cd /usr/src/zabbix-4.0.3
[root@lynk zabbix-4.0.3]# ./configure --enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2
[root@lynk zabbix-4.0.3]# make install
zabbix服務端配置
[root@lynk zabbix-4.0.3]# vim /usr/local/etc/zabbix_server.conf
#設置服務端密碼
DBPassword=zabbix123!
[root@lynk zabbix-4.0.3]# zabbix_server
[root@lynk zabbix-4.0.3]# zabbix_agentd
zabbix服務端web界面安裝與配置
[root@lynk zabbix-4.0.3]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@lynk zabbix-4.0.3]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@lynk zabbix-4.0.3]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@lynk zabbix-4.0.3]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@lynk zabbix-4.0.3]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
[root@lynk zabbix-4.0.3]# mkdir /usr/local/apache/htdocs/zabbix
[root@lynk zabbix-4.0.3]# cp -a frontends/php/* /usr/local/apache/htdocs/zabbix/
[root@lynk zabbix-4.0.3]# chown -R apache.apache /usr/local/apache/htdocs
#配置apache虛擬主機
[root@lynk zabbix-4.0.3]# cat >> /etc/httpd24/httpd.conf << EOF
<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs/zabbix"
ServerName zabbix.lynk.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/zabbix/$1
<Directory "/usr/local/apache/htdocs/zabbix">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
EOF
#設置zabbix/conf目錄的許可權,讓zabbix有許可權生成配置文件zabbix.conf.php
[root@lynk zabbix-4.0.3]# chmod 777 /usr/local/apache/htdocs/zabbix/conf
[root@lynk zabbix-4.0.3]# ll -d /usr/local/apache/htdocs/zabbix/conf
drwxrwxrwx. 2 apache apache 81 12月 20 19:24 /usr/local/apache/htdocs/zabbix/conf
[root@lynk zabbix-4.0.3]# apachectl -t
Syntax OK
[root@lynk zabbix-4.0.3]# apachectl stop
[root@lynk zabbix-4.0.3]# apachectl start
安裝zabbix web界面
- 修改hosts文件,本文設置的功能變數名稱為zabbix.lynk.com,請修改為自己的
- 登錄到zabbix.lynk.com,按照提示進行設置,註意BD的密碼
- 完成安裝後,將會要求登陸,預設的登陸用戶名為Admin,密碼為zabbix
- 恢復/zabbix/conf目錄許可權為775
[root@lynk zabbix-4.0.3]# chmod 755 /usr/local/apache/htdocs/zabbix/conf
安裝zabbix-agent
#安裝編譯器
[root@Hyrule ~]# yum -y install gcc gcc-c++
#安裝開發環境
[root@Hyrule ~]# yum -y install net-snmp-devel libevent-devel
[root@Hyrule src]# yum -y install pcre-devel openssl-devel
#安裝zabbix-agent
[root@Hyrule ~]# cd /usr/src/
[root@Hyrule src]# wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz
[root@Hyrule src]# tar xf zabbix-4.0.3.tar.gz
[root@Hyrule src]# groupadd -r zabbix
[root@Hyrule src]# useradd -r -g zabbix -M -s /sbin/nologin zabbix
[root@Hyrule src]# cd zabbix-4.0.3
[root@Hyrule zabbix-4.0.3]# ./configure --enable-agent
[root@Hyrule zabbix-4.0.3]# make install
[root@Hyrule zabbix-4.0.3]# cd /usr/local/etc/
[root@Hyrule etc]# vim zabbix_agentd.conf
#修改以下內容:
Server=zabbix Server端的IP
ServerActive=zabbix Server端的IP
Hostname=agent端的名字
#啟動agent端
[root@Hyrule etc]# zabbix_agentd
[root@Hyrule etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
#看到10050埠(預設)開啟代表啟動成功
解決中文亂碼問題
#將字體文件(tff)放到/usr/local/apache/htdocs/zabbix/fonts/
#修改字體文件許可權,比如我是微軟雅黑MSYH.tff
[root@lynk ~]# chmod 644 /usr/local/apache/htdocs/zabbix/fonts/MSYH.ttf
[root@lynk ~]# chown apache.apache /usr/local/apache/htdocs/zabbix/fonts/MSYH.ttf
#修改配置文件,將所有的DejaVuSans修改為你的字體名稱,如MSYH
[root@lynk ~]# sed -i 's/DejaVuSans/MSYH/g' /usr/local/apache/htdocs/zabbix/include/defines.inc.php
#重啟zabbix
[root@localhost zabbix]# pkill zabbix
[root@localhost zabbix]# zabbix_server
[root@localhost zabbix]# zabbix_agentd