一直使用cacti來監控公司的服務器,使用中發現cacti侷限性仍是比較大的,對於監控網絡設備出圖比較好。但對於服務,更細緻的自定義監控卻不是很友善。在cacti上集成了nagios用於監控服務,使用起來比較麻煩,特別是出圖。對於zabbix只作過簡單的瞭解,據說部署簡單,自動發現功能強大。安裝測試試用一下。php
安裝環境
CentOS7.4,Nginx1.12.2,MariaDB10.2,PHP7.2,Zabbix3.4.7
1、LNMP環境搭建
一、安裝Linux(CentOS7.4)
最小化安裝,配置IP地址,主機名,安裝vim、bash-completion等html
二、安裝Nginx(1.12.2)前端
# wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm # rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm #安裝nginx官方源
或者手動建立yum源:http://nginx.org/en/linux_packages.htmlmysql
# vim /etc/yum.repos.d/nginx.repo #手動建立nginx yum安裝源 [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 #其中baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/,把」OS」替換成」rhel」或」centos」,把」OSRELEASE」替換成」6」或」7」,用於6.x或7.x版本。 # yum install nginx #安裝nginx,默認爲nginx-1.12.2 # systemctl start nginx # systemctl enable nginx # firewall-cmd --permanent --add-service=http --zone=public # firewall-cmd --reload
打開http://10.100.3.66,將看到如下內容,說明nginx安裝成功。
三、安裝MySQL(mariadb-10.2)linux
# vim /etc/yum.repos.d/mariadb.repo #經過yum方式安裝
輸入如下內容ios
# MariaDB 10.2 CentOS repository list - created 2018-03-06 07:26 UTC # http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
安裝MySQL:可經過https://downloads.mariadb.org/mariadb/repositories/地址獲取mariadb源nginx
# yum install MariaDB-server MariaDB-client
使用yum源安裝,下載速度比較慢,可經過如下地址下載RPM包安裝
http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.13/yum/rhel74-amd64/rpms/
方法:web
#先yum安裝較小的依賴包: # yum install lsof rsync perl-DBI boost-program-options jemalloc MariaDB-shared #再rpm下載安裝較大的包: # rpm -ivh galera-25.3.23-1.rhel7.el7.centos.x86_64.rpm # rpm -ivh MariaDB-10.2.13-centos74-x86_64-client.rpm # rpm -ivh MariaDB-10.2.13-centos74-x86_64-server.rpm #啓動和配置MySQL: # systemctl start mariadb # mysql_secure_installation #根據提示配置密碼和安裝選項 # systemctl restart mariadb #配置完成後重啓MySQL
四、安裝PHP(7.2)
源碼安裝方法:http://php.net/get/php-7.2.3.tar.gz/from/a/mirror
yum安裝方法:https://webtatic.com/packages/php72/sql
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 或yum install epel-release # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #yum源 # yum install php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql # systemctl start php-fpm # systemctl enable php-fpm # php –v
netstat -tln|grep 9000
五、配置Nginx數據庫
# vim /etc/php-fpm.d/www.conf #修改php-fpm配置文件,把apache改成nginx
# vim /etc/nginx/conf.d/default.conf #配置location,在index中添加index.php。以支持index.php的首頁:
配置php請求被傳送到後端的php-fpm模塊,默認狀況下php配置塊是被註釋的,此時去掉註釋並修改成如下內容:
默認配置,把.php$改成..php(\/.)*$(可省略),把root中的html改成/usr/share/nginx/html,把fastcgi_param中的/scripts改成$document_root。root是配置php程序放置的根目錄。
保存後,重啓nginx服務
systemctl restart nginx
六、配置php
# vim /etc/php.ini #修改PHP配置文件 expose_php = Off #禁止顯示php版本的信息 short_open_tag = On #取消前面的;,修改成On。表示支持php短標籤 #如下爲zabbix配置要求 max_execution_time = 300 max_input_time = 300 memory_limit = 128M post_max_size = 16M upload_max_filesize = 2M always_populate_raw_post_data = -1 date.timezone = Asia/Shanghai
七、測試
經過http://10.100.3.66/phpinfo.php查看php模塊是否正常,測試後刪除
# vim /usr/share/nginx/html/phpinfo.php #在首頁目錄新增,測試php
經過http://10.100.3.66/test.php查看mysql數據庫鏈接是否正常,測試後刪除
# vim test.php #新增test.php(名字隨意),測試mysql鏈接
注:mysql_connect擴展自 PHP 5.5.0 起已廢棄,改用mysqli或pdo_mysql,參閱:http://php.net/manual/zh/mysqlinfo.api.choosing.php
在開啓SELinux狀況下,php鏈接mysql測試會失敗。
# getsebool -a |grep httpd_can_network #檢查httpd進程的許可模式 能夠看到httpd_can_network_connect --> off # setsebool -P httpd_can_network_connect=1 #開啓鏈接後便可測試正常
2、安裝Zabbix
一、安裝zabbix軟件包 經過yum源安裝:https://www.zabbix.com/download 官方中文手冊:https://www.zabbix.com/documentation/3.4/zh/start 配置yum安裝源:
# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm 安裝Zabbix服務器,前端,代理agent: # yum install zabbix-server-mysql zabbix-web-mysql zabbix-get zabbix-agent
二、配置數據庫
# mysql -uroot -p #輸入密碼,登陸mysql > create database zabbix character set utf8 collate utf8_bin; #建立數據庫 #建立mysql用戶zabbix並受權: > grant all privileges on zabbix.* to zabbix@localhost identified by '123456'; > flush privileges; #導入數據庫初始結構和數據: # zcat /usr/share/doc/zabbix-server-mysql-3.4.7/create.sql.gz |mysql -uzabbix -p zabbix #根據提示輸入數據庫用戶zabbix的密碼 #配置數據庫帳號密碼: # vim /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=password
三、配置SELinux
在開啓SELinux狀況下,zabbix-server啓動會失敗
# getsebool -a|grep httpd_can_connect 能夠看到httpd_can_connect_zabbix --> off # setsebool -P httpd_can_connect_zabbix on # setsebool -P httpd_can_network_connect_db on
但只修改以上規則還不夠,須要測試的太多。直接關閉得了。
關閉SELilunx:
# vim /etc/selinux/config SELINUX=disabled #重啓系統
四、檢查中文是否開啓(默認開啓)
# vim /usr/share/zabbix/include/locales.inc.php 'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],
五、啓動
# cp -r /usr/share/zabbix/ /usr/share/nginx/html/ # chown -R zabbix:zabbix /etc/zabbix/ # chown -R zabbix:zabbix /usr/share/nginx/ # chown -R zabbix:zabbix /usr/lib/zabbix/ # chmod -R 755 /etc/zabbix/web/ # chmod -R 777 /var/lib/php/session/ # systemctl start zabbix-server # systemctl enable zabbix-server # systemctl start zabbix-agent # systemctl enable zabbix-agent # netstat -anpl|grep 10051 #查看端口是否起來,zabbix_agent端口爲10050
安裝中遇到的問題:
沒法打開http://10.100.3.66/zabbix/setup.php,報如下錯誤:
1>、FastCGI sent in stderr: 「PHP message: PHP Warning:
require_once(/etc/zabbix/web/maintenance.inc.php): failed to open stream:
Permission denied in
/usr/share/nginx/html /zabbix/include/classes/core/ZBase.php on line 269
權限問題,路徑:/etc/zabbix/web
解決辦法:chmod -R 755 /etc/zabbix/web/
2>、FastCGI sent in stderr: "PHP message: PHP Fatal error:
Uncaught Exception: Cannot start session. In
/usr/share/nginx/html/zabbix/include/classes/core/CSession.php:50
權限問題,路徑:less /etc/php-fpm.d/www.conf
php_value[session.save_path] = /var/lib/php/session
解決辦法:chmod -R 777 /var/lib/php/session/
六、配置Zabbix安裝
打開http://10.100.3.66/zabbix,將自動跳轉到安裝界面:
下一步,檢查配置是否正確,所有OK便可。
下一步,輸入數據庫密碼
下一步,輸入Name,隨意起
確認配置是否正確
下一步,提示沒法建立配置文件
從提供的下載連接中下載配置文件,而後上傳到/etc/zabbix/web/便可,或修改web權限爲web服務器啓動用戶可寫的權限。
# cp zabbix.conf.php /etc/zabbix/web/ # chown zabbix.zabbix /etc/zabbix/web/zabbix.conf.php
再點擊完成
輸入默認用戶名Admin,密碼zabbix,便可登陸。
點擊用戶,可修改系統語言、主題、自動登陸等選項
Update後界面即變爲中文的
最後修改nginx主頁,跳轉到zabbix
vim /usr/share/nginx/html/index.html
3、配置zabbix
監控zabbix服務器:
配置-->主機,選擇zabbix server,啓用主機。以下圖,啓動後ZBX顯示爲綠色。
查看監控主機的信息:
監測中-->最新數據,若有如下告警,是由於PHP7.2版本中比較嚴格,count函數僅支持參數爲數組, 非數組狀況下將報警告。
解決辦法:
# vim /usr/share/nginx/html/zabbix/latest.php #定位到104行 修改$singleHostSelected = (count($filter['hostids']) == 1);爲: $singleHostSelected = (count(array($filter['hostids'])) == 1);
刷新,就看不到告警信息了。
在過濾器中選擇zabbix server主機,能夠看到相關監控項:
展開監控項,能夠看到具體的監控內容。例如CPU:
點擊右邊的圖形,能夠以圖表形式展現:
最下方漢字顯示爲亂碼,是由於語言已經改成中文了,但字體識別不到,能夠使用Windows系統裏的字體。
解決辦法:
在Windows系統中,打開控制面板-->字體,以下圖:
找到想使用的字體,如黑體(simhei.ttf,右鍵屬性可查看),上傳到Linux。
再複製到fonts目錄:cp simhei.ttf /usr/share/nginx/html/zabbix/fonts/
再修改defines.inc.php文件:
# vim /usr/share/nginx/html/zabbix/include/defines.inc.php define('ZBX_GRAPH_FONT_NAME', 'graphfont'); define('ZBX_FONT_NAME', 'graphfont');
修改成:
define('ZBX_GRAPH_FONT_NAME', 'simhei'); define('ZBX_FONT_NAME', 'simhei');
刷新頁面便可看到中文漢字了,以下圖: