前言:先談談zabbix的優劣,以及為啥要選擇zabbix來搭建我們的監控平臺;
- Zabbix優勢:
1 支持分布式監控
2 自帶繪圖功能,獲取到數值型的數據,可自動生成圖
3 Web配置方式,操作易用性較好。添加監控項或機器時速度很快。
4 有報警時無論在任何界面會彈出小窗口報警,同時有報警的聲音提示,同時可對監控項的快速查看。
5 自帶內置函數較為豐富,同時也支持腳本及nagios等腳本的調用。
6 出現問題時,可自動遠程執行命令(需對agent設置執行權限)
-
Zabbix 缺點:
1 批量修改不方便,可用數據庫輔助
2 深入后,中文資料相當少,大部分問題需看官方的文檔及論壇。
3 缺少數據匯總功能,如無法查看一組服務器平均值,可考慮對其進行二次開發。
4 zabbix較cacti來說,畫圖功能較差些、流量獲取較為復雜
為什么選擇Zabbix
1報警及時,在本貓小范圍測試的128臺機器,報警與設定時間吻合,沒有報警延遲的情況。
2 Web管理方式,上手較為容易,經過簡單培訓,1天內即可上手。
3 安裝、配置簡單。
4 功能較為全面,同時支持2000臺服務器(國內測試),官方測試5000臺服務器。Nagios國內測試僅為400-500臺。
5 后端數據庫支持多樣,Mysql,oracle等。
6 可基于監控的數據,做二次開發。
7 支持遠程行執命令。(安全及風險需考慮)
-出處-:咖啡貓<Zabbix優勢>通過上面的訴述,我想即使沒有接觸過zabbix的同學應該都比較清楚zabbix的優劣了,接下來我們進入本章正題--安裝;
一、安裝
1.卸載相關軟件包,保持干凈環境
yum remove -y mysql* httpd* php* nginx* zabbix*
2.安裝依賴包
yum -y install wget gcc automake autoconf libtool make cmake bzip2 zlib-devel tree \
pam-devel vim-enhanced man ntpdate unzip telnet python perl perl-devel gcc-c++ zcat \
redhat-lsb tcpdump sysstat lsof git nfs-utils expect traceroute htop lrzsz pymysql\
MySQL-python libffi-devel libxml2 libxml2-devel libxslt-devel readline-devel \
libffi epel-release openssl-devel python-devel
rpm -ivh http://repo.webtatic.com/yum/el6/x86_64/libmysqlclient16-5.1.69-1.w6.x86_64.rpm
3.安裝 數據庫
數據庫可以選擇mariadb和mysql,下面是兩種數據庫的安裝方式
- mysql 安裝參考
rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
vi /etc/yum.repos.d/mysql-community.repo
yum repolist enabled | grep mysql
yum install -y mysql-community-server
- mariadb安裝參考
vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
yum -y install MariaDB-client MariaDB-server MariaDB-devel
- 此過程會比較耗時,可以先打個 飛機再看
安裝mysql報錯:auto-extending data file ./ibdata1 is of a different size 640 pages
解決:
cd /var/lib/mysql
> rm -rf ib*
root@sh-salt-01 mysql
> /etc/init.d/mysqld start
Starting mysqld: [ OK ]
4.配置 數據庫
- 配置管密碼
/etc/init.d/mysql start
mysql -e "grant all on *.* to 'root'@'localhost' identified by '123';"
- 配置 zabbix 庫
mysql -uroot -p123 -e "create database zabbix character set utf8;"
mysql -uroot -p123 -e "grant all on zabbix.* to zabbix@localhost identified by 'zabbix';"
報錯:ERROR 1054 (42S22) at line 1: Unknown column 'plugin' in 'mysql.user'
原因:原來這個機器上之前裝了5.1的mysql,它的user表只要39列,而5.6的有4.2列,用下面的命令進行修復表,參考
解決:mysql_upgrade --force -p123
Warning: Using a password on the command line interface can be insecure.
原因:這個是提示使用 -p123,這種直接跟密碼的命令不安全,實驗環境不予理會
5.安裝 php
- 安裝yum源
rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm
- 安裝 php5.5
yum install -y http php55w php55w-soap php55w-bcmath php55w-cli php55w-fpm \
php55w-common php55w-devel php55w-gd php55w-imap php55w-mysql php55w-odbc \
php55w-ldap php55w-mbstring php55w-mcrypt php55w-xml php55w-intl php55w-pdo\
php55w-pear php55w-pecl-igbinary php55w-xmlrpc php55w-opcache php55w-pecl-memcache
6.配置 php
- vim /etc/php.ini
post_max_size=16M
max_execution_time=300
max_input_time=300
date.timezone=Asia/Shanghai
always_populate_raw_post_data=-1
- 快速設置
sed -i "s/post_max_size.*/post_max_size=16M/" /etc/php.ini
sed -i "s/max_execution_time.*/max_execution_time=300/" /etc/php.ini
sed -i "s/max_input_time.*/max_input_time=300/" /etc/php.ini
sed -i "s#;date.timezone.*#date.timezone=Asia/Shanghai#" /etc/php.ini
- /etc/php-fpm.d/www.conf
[global]
log_level = debug
[www]
;listen = /tmp/php-cgi.sock
listen = 127.0.0.1:9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 6
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = /data/log/php-fpm/php_slow.log
7.安裝 zabbix
- 設置用戶和組
groupadd zabbix
useradd -g zabbix zabbix
- 安裝yum源和 zabbix 包
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-get zabbix-agent \
zabbix-java-gateway zabbix-proxy-mysql zabbix-sender
8.配置 zabbix
- 把zabbix數據導入zabbix
zcat /usr/share/doc/zabbix-server-mysql-3.0.4/create.sql.gz |mysql -uzabbix -pzabbix zabbix
- 修改Zabbix Server配置
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
- 快速設置
# sed -i "s/# DBHost/DBHost/g" zabbix_server.conf
# sed -i "s/# DBPassword=/DBPassword=zabbix/g" zabbix_server.conf
- 設置權限,并把zabbix的php文件放到web目錄
chown www.www -R /etc/zabbix/
cp -r /usr/share/zabbix/ /data/www/
9.安裝nginx
- yum安裝
yum install -y nginx
修改配置文件,設置root目錄為
/data/www
,設置php解析修改各組件權限為
nginx
用戶
10.啟動并訪問
/etc/init.d/nginx start
/etc/init.d/php-fpm start
/etc/init.d/zabbix-server start
看到如下界面即安裝成功
- 最后設置下精簡開機:
for i in `chkconfig --list|grep "3:on"|awk '{print $1}'|grep -vE "crond|sshd|network|rsyslog|sysstat|zabbix-server|zabbix-agent"`;do chkconfig $i off;done