1. 程式人生 > >51.zabbix監控工具

51.zabbix監控工具

linux

Zabbix3.2監控工具

Zabbix是一個基於WEB界面的提供的分布式系統監控以及網絡監視功能的企業級的開源工具。

Zabbix能監視各種網絡參數,保證服務器系統的安全運營,並提供靈活的通知機制讓管理員迅速定位/解決存在的各種問題。

ZabbixZabbix_Server服務端和Zabbix_Agent客戶端還有Zabbix_proxy代理三個部分組成。

Zabbix_Server:可以通過SNMPZabbix_AgentPingSNMP等方法提供對遠程服務器/網絡狀態的監視。

Zabbix_Agent:是用來采集客戶端服務器數據來交給Zabbix_Server處理。

Zabbix_Proxy:緩存同步服務器監控數據。

Zabbix的主要功能:CPU負荷,內存使用,磁盤使用,網絡狀況,端口監視,日誌監視。

Zabbix的監控架構:

技術分享

Zabbix部署步驟:

環境需求:必須LNMP/LAMP環境的支持,需要PHP5.4以上版本支持才可以。

# systemctl stop firewalld

#關閉firewalld防火墻

# systemctl disable firewalld.service #禁止firewalld服務自啟

# sed -i -e ‘s|SELINUX=enforcing|SELINUX=disabled|‘ /etc/selinux/config #關閉SELINUX

# sed -i -e ‘s|SELINUXTYPE=targeted|#SELINUXTYPE=targeted|‘ /etc/selinux/config

# setenforce 0

源碼編譯方式:

v 安裝相關依賴組件

# yum -y install php php-gd php-mysql php-bcmath php-mbstring php-xml curl curl-devel gcc gcc-c++ net-snmp net-snmp-devel perl-DBI httpd mariadb*

#YUM部署LAMP環境

v 解壓安裝包

# tar xzvf zabbix-3.2.1.tar.gz

# cd zabbix-3.2.1

v 編譯安裝Zabbix

安裝ServerAgent,並支持將數據放入MYSQL數據庫中:

# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl

僅安裝Server,並支持將數據放入MYSQL數據庫中:

# ./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-libcurl

僅安裝Proxy代理,並支持將數據放入MYSQL數據庫中:

# ./configure --prefix=/usr/local/zabbix --enable-proxy --with-net-snmp --with-mysql --with-ssh2

僅安裝Agent客戶端:

# ./configure --enable-agent

# make && make install

註:--with-libcurl:監控WEB頁面響應時間,下載速度。

v 授權Zabbix數據庫用戶

# systemctl start mariadb #啟動MYSQL

# mysqladmin -u root password 123 #設置數據庫ROOT用戶密碼

# mysql -u root -p123 #登錄數據庫

mysql> create database zabbix character set UTF8; #創建zabbix數據庫並指定編碼為UTF8

mysql> grant all on zabbix.* to [email protected] identified by ‘123‘ with grant option;

mysql> flush privileges; #授權zabbix用戶與刷新授權

mysql> exit

v Zabbix自帶的SQL文件導入數據庫

# mysql -u zabbix -p123 zabbix < database/mysql/schema.sql #按順序導入

# mysql -u zabbix -p123 zabbix < database/mysql/images.sql

# mysql -u zabbix -p123 zabbix < database/mysql/data.sql

v Zabbix自帶的PHP頁面放入Nginx網頁根目錄

# cp -r frontends/php /var/www/html/zabbix

# chmod 777 /var/www/html/zabbix/conf

v Zabbix添加到服務

# cp -r misc/init.d/fedora/core/* /etc/init.d/

# sed -i -e ‘s|BASEDIR=/usr/local|BASEDIR=/usr/local/zabbix|‘ /etc/init.d/zabbix_server

# sed -i -e ‘s|BASEDIR=/usr/local|BASEDIR=/usr/local/zabbix|‘ /etc/init.d/zabbix_agentd

v 修改Zabbix_server配置文件

# sed -i -e ‘s|# DBPassword=|DBPassword=123|‘ /usr/local/zabbix/etc/zabbix_server.conf

# sed -i -e ‘s|# DBSocket=/tmp/mysql.sock|DBSocket=/var/lib/mysql/mysql.sock|‘ /usr/local/zabbix/etc/zabbix_server.conf

Zabbix_server配置文件解析

LogFile=/tmp/zabbix_server.log

日誌所在位置

LogFileSize=1

日誌大小

PidFile=/tmp/zabbix_server.pid

PID進程文件所在位置

DBHost

數據庫主機地址

DBName

數據庫名

DBUser

數據庫連接用戶名

DBPassword

數據庫連接用戶密碼

DBSocket

數據庫緩存文件位置

DBPort

數據庫端口

StartPollers

Zabbix_server進程數

StartIPMIPollers

IPMI線程數(IPMI平臺管理接口)

StartPollersUnreachable

該線程用來單獨監控無法連接的主機

StartTrapper

檢測主機的線程數

StartPingers

PING主機方式啟動的線程數

StartDiscoverers

發現主機的線程數

StartDBSyncers

將數據同步到數據庫的線程數

Timeout

Zabbix_server的檢測超時時間

v 修改PHP配置

# sed -i -e ‘s|post_max_size = 8M|post_max_size = 16M|‘ /etc/php.ini

# sed -i -e ‘s|max_execution_time = 30|max_execution_time = 300|‘ /etc/php.ini

# sed -i -e ‘s|max_input_time = 60|max_input_time = 300|‘ /etc/php.ini

# sed -i -e ‘s|;date.timezone =|date.timezone = PRC|‘ /etc/php.ini

post_max_size

上傳最大文件大小

date.timezone

時區設置(PRC代表中國)

max_execution_time

運行超時時間(秒)

request_terminate_timeout

需求結束超時時間(秒)

max_input_time

接受數據時間限制(秒)



v 創建運行用戶

# useradd zabbix

v 啟動服務

# service start zabbix_server

# systemctl start zabbix_agentd

# systemctl start httpd

# netstat -lnupt |grep 80

# ps aux |grep zabbix

v 通過網頁驗證訪問

Http//localhost/zabbix

被監控主機配置

v 環境需求:關閉防火墻,SELinux

# systemctl stop firewalld

# setenforce 0

# iptables -F

# yum -y install gcc gcc-c++

v 解壓zabbix

# tar xzvf zabbix-3.2.1.tar.gz

# cd zabbix-3.2.1

v 編譯安裝

# ./configure --prefix=/usr/local/zabbix --enable-agent

# make && make install

v 創建運行用戶

# useradd zabbix

# echo 123 | passwd zabbix --stdin

v 添加到服務

# cp -r misc/init.d/fedora/core/* /etc/init.d/

# sed -i -e ‘s|BASEDIR=/usr/local|BASEDIR=/usr/local/zabbix|‘ /etc/init.d/zabbix_agentd

v 修改Zabbix_agentd配置文件

# sed -i -e ‘s|Server=127.0.0.1|Server=1.1.1.19|‘ /usr/local/zabbix/etc/zabbix_agentd.conf

# sed -i -e ‘s|ServerActive=127.0.0.1|ServerActive=1.1.1.19|‘ /usr/local/zabbix/etc/zabbix_agentd.conf

# sed -i -e ‘s|# Hostname=|Hostname=1.1.1.20|‘ /usr/local/zabbix/etc/zabbix_agentd.conf

Zabbix_agentd配置文件解析

UnsafeUserParameters

啟動自定義KEY

EnableRemoteCommands

開啟遠程命令

ListenPort

監聽端口

StartAgents

Agent線程數

Server

被動模式指定服務端地址

ServerActive

主動模式指定服務器地址

Hostname

主機名

v 啟動服務

# service zabbix_agentd restart

# netstat -lnupt |grep 10050

YUM安裝方式:

環境需求:需要連接網絡,關閉防火墻,SELinux

# systemctl stop firewalld #關閉防火墻

# setenforce 0

v 安裝ZabbixYUM

# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm

# yum makecache #重新生成緩存

v 安裝相關依賴組件

# yum -y install php php-gd php-mysql php-bcmath php-mbstring php-xml curl curl-devel net-snmp net-snmp-devel perl-DBI httpd mariadb* #YUM部署LAMP環境

v 安裝Zabbix_server

# yum -y install zabbix-server-mysql zabbix-web-mysql

v 授權MYSQL數據庫

# systemctl start mariadb #啟動數據庫

# mysqladmin -u root password 123

# mysql -u root -p123

> create database zabbix character set UTF8;

> grant all on zabbix.* to [email protected] identified by ‘123‘ with grant option;

> flush privileges;

> exit

v 導入Zabbix數據庫文件

# mysql -u zabbix -p123 zabbix < schema.sql

# mysql -u zabbix -p123 zabbix < images.sql

# mysql -u zabbix -p123 zabbix < data.sql

v 修改配置文件

# sed -i -e ‘s|# DBPassword=|DBPassword=123|‘ /etc/zabbix/zabbix_server.conf

# sed -i -e ‘s|# DBSocket=/tmp/mysql.sock|DBSocket=/var/lib/mysql/mysql.sock|‘ /usr/local/zabbix/etc/zabbix_server.conf

# sed -i -e ‘s|;date.timezone =|date.timezone = PRC|‘ /etc/php.ini

v 啟動服務

# zabbix_server

# systemctl start httpd

v 通過網頁驗證訪問

Http//localhost/zabbix

被監控端安裝配置

v 環境需求:關閉防火墻,SELinux

# systemctl stop firewalld

# setenforce 0

v 安裝Zabbix_agentd服務

# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm

# yum makecache

# yum -y install zabbix-agent

v 修改Zabbix_agentd配置文件

# sed -i -e ‘s|Server=127.0.0.1|Server=1.1.1.19|‘ /usr/local/zabbix/etc/zabbix_agentd.conf

# sed -i -e ‘s|ServerActive=127.0.0.1|ServerActive=1.1.1.19|‘ /usr/local/zabbix/etc/zabbix_agentd.conf

# sed -i -e ‘s|# Hostname=|Hostname=1.1.1.20|‘ /usr/local/zabbix/etc/zabbix_agentd.conf

v 啟動Zabbix_agentd服務

# zabbix_agentd

# netstat -lnupt |grep zabbix


WEB配置圖片導航:

技術分享

技術分享

技術分享

技術分享

技術分享

技術分享

技術分享

安裝故障排查

故障一:MYSQL數據庫版本過高問題; 解決方法:重新安裝適用MYSQL數據庫

技術分享

註:Current database version當前版本 Required mandatory version強制版本號

故障二:用戶授權問題; 解決方法:重新授權Zabbix數據庫用戶

技術分享

故障三:數據庫問題 解決方法:重新導入Zabbix對應數據庫

技術分享

故障四:服務器進程過多問題 解決方法:設置配置文件相關參數控制進程

技術分享

註:Too many processes on Zabbix serverZabbix服務器進程數太多

故障五:Zabbix_server啟動時線程數低導致輪詢負載 解決方法:StartPollers設置為510

技術分享

故障六:Zabbix_server在運行但是提示沒在運行 解決方法:關閉SELinux

技術分享

故障七:數據庫密碼錯誤 解決方法:修改配置文件zabbix.conf.php

技術分享

技術分享



51.zabbix監控工具