您好,登錄后才能下訂單哦!
這篇文章主要介紹“Centos如何編譯安裝zabbix”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Centos如何編譯安裝zabbix”文章能幫助大家解決問題。
zabbix簡介
zabbix簡介zabbix是完全開源的工具,整合了cacti和nagios等特性,snmp(udp 161 udp 162)眾多網絡工具都支持此協議,比如常見路由交換,常見os可以做管理端,也可以做被管理端,snmp大致的三個版本分為v1 v2 v3,無論是v1和v2他們的安全性還是比較差的,因為傳輸的是明文的,v3的認證密碼用 md5/sha摘要算法加密。
很多工具都支持網絡管理的功能,而對非網絡設備(操作系統)可以完全拋開snmp這種不安全的架構來實現監控的,所以很多工具都是控制端和agent架構,他們有專屬的agent。
zabbix的主要功能:
具備常見的商業監控軟件具備的功能比如:(主機性能的監控,網絡設備性能的監控,數據庫,ftp等通用協議的監控)還具備有告警方式,詳細的報表圖表的繪制。
支持自動發現網絡設備和服務器,可以通過配置自動發現服務器規則來實現,支持分布式,能集中展示,管理分布式的監控點,擴展性強server提供通過接口(api功能)可以自己開發完善各類的監控,根據相關接口編寫程序實現編寫插件容易,可以自定義監控項,報警級別的設置。數據收集,支持snmp(包括trapping and polling) ipmi jmx ssh telnel;
自定義的檢測;自定義收集數據的頻率;
服務器/代理和客戶端模式;靈活的觸發器;可以定義非常靈活的問題閥值,稱為觸發器,高可定制的報警,發送通過,可定制報警的升級,收件人媒體類型,cpu負荷,內存使用,磁盤使用,網絡狀況,端口監視,日志監視等等;
硬件監控:
zabbix ipmi interface 系統監控:
zabbixagent interface java監控:
zabbix jmx interface 網絡設備監控:
zabbix snmp interface 應用服務監控:
zabbix agent userparameter mysql數據庫監控:percona-monitoring-plulgins url監控:zabbix web 監控zabbix重要組件
說明:1)zabbix server:負責接收agent發送的報告信息的核心組件,所有配置、統計數據及操作數據都由它組織進行;
2)database storage:專用于存儲所有配置信息,以及由zabbix收集的數據;
3)web interface:zabbix的gui接口;
4)proxy:可選組件,常用于監控節點很多的分布式環境中,代理server收集部分數據轉發到server,可以減輕server的壓力;
5)agent:部署在被監控的主機上,負責收集主機本地數據如cpu、內存、數據庫等數據發往server端或proxy端;另外,zabbix server、proxy、agent都有自己的配置文件以及log文件;一個監控系統運行的大概的流程是這樣的:agentd需要安裝到被監控的主機上,它負責定期收集各項數據,并發送到zabbix server端,zabbix server將數據存儲到數據庫中,zabbix web根據數據在前端進行展現和繪圖。
這里agentd收集數據分為主動和被動兩種模式:
主動:agent請求server獲取主動的監控項列表,并主動將監控項內需要檢測的數據提交給server/proxy
被動:server向agent請求獲取監控項的數據,agent返回數據。zabbix是一個基于web界面的提供分布式系統監視以及網絡監視功能的企業級開源解決方案。借助zabbix,可以很輕松地減輕運維人員們繁重的服務器管理任務,實現業務系統的持續運行。
下面會逐步介紹zabbix分布式監控系統的部署及使用配置好ip、dns 、網關,確保使用遠程連接工具能夠連接服務器zabbix監控服務器:192.168.146.100 #zabbix的服務端(若要監控本機,則需要配置本機的zabbix agent)zabbix agent被監控主機:192.168.146.110 #zabbix的客戶端(被監控端,需要配置zabbix agent)
一、編譯安裝zabbix3.21
安裝編譯工具及庫文件
復制代碼 代碼如下:
yum-y install make apr* autoconf automake curl-devel gcc gcc-c++ openssl openssl-devel gd kernel keyutilspatch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-develkeyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-develzlib-devel libxpm* freetype libjpeg* libpng* libtool* libxml2 libxml2-devel patch libcurl-devel bzip2-devel freetype-devel2)
2)安裝mysql5.7并安裝gcc編譯器如下
[root@yankerp-zabbix ~]# yum install gcc gcc-c++ -y
因為在centos7中默認安裝了mysql的分支mariadb 所以需要卸載mariadb
[root@yankerp-zabbix src]# rpm -qa | grep mariadb mariadb-libs-5.5.44-2.el7.centos.x86_64 [root@yankerp-zabbix src]# rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps
安裝mysql
下載mysql二進制包
復制代碼 代碼如下:
[root@yankerp-zabbix src]# wget http://mirrors.sohu.com/mysql/mysql-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
解壓mysql二進制包,并拷貝到/usr/local/mysql目錄下
[root@yankerp-zabbix src]# tar zxf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz [root@yankerp-zabbix src]# mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql
進入/usr/local/mysql/目錄創建data目錄以及log目錄,并給予data755權限。
[root@yankerp-zabbix src]# cd /usr/local/mysql/ [root@yankerp-zabbix mysql]# mkdir data [root@yankerp-zabbix mysql]# mkdir log [root@yankerp-zabbix mysql]# chmod +755 data/
設置變量
復制代碼 代碼如下:
echo "export path=$path:/usr/local/mysql/bin" >> /etc/profile && source /etc/profile
創建mysql組,以及mysql用戶
復制代碼 代碼如下:
[root@yankerp-zabbix mysql]# groupadd mysql && useradd -r -g mysql -s /bin/false mysql
打開/etc/my.cnf添加mysql的主配置文件如下:
vim /etc/my.cnf
[client] socket=/usr/local/mysql/mysql.sock [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data pid-file=/usr/local/mysql/data/mysqld.pid socket=/usr/local/mysql/mysql.sock log_error=/usr/local/mysql/log/mysql.err
初始化mysql數據庫
復制代碼 代碼如下:
[root@yankerp-zabbix mysql]# chmod 750 data/ && chown -r mysql . && chgrp -r mysql . && bin/mysqld --initialize --user=mysql
復制mysql啟動腳本,并啟動mysql數據庫
復制代碼 代碼如下:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld start
啟動完成后mysql的密碼存放到了/usr/local/mysql/log/目錄下
[root@yankerp-zabbix mysql]# cat /usr/local/mysql/log/mysql.err | grep password 2018-01-06t06:31:34.837627z 1 [note] a temporary password is generated for root@localhost: s>2%8=/q>skp
進入mysql數據庫并修改mysql數據庫密碼
到這里mysql的安裝正式完成
二、安裝nginx
1)安裝pcre-devel zlib-devel 相關支持包
[root@yankerp-zabbix ~]# yum install zlib-devel pcre-devel -y
2)創建www組以及www用戶
[root@yankerp-zabbix ~]# groupadd www [root@yankerp-zabbix ~]# useradd -g www www -s /sbin/nologin
3)下載nginx源碼包
[root@yankerp-zabbix ~]# wget http://nginx.org/download/nginx-1.10.2.tar.gz
4)解壓nginx源碼包并進入nginx解壓目錄
[root@yankerp-zabbix ~]# tar zxf nginx-1.10.2.tar.gz [root@yankerp-zabbix ~]# cd nginx-1.10.2
復制代碼 代碼如下:
[root@yankerp-zabbix nginx-1.10.2]# ./configure --prefix=/usr/local/nginx1.10 --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www
make && make install
5)創建軟連接,優化執行路徑,并啟動nginx服務
訪問測試:
三、安裝php
[root@yankerp-zabbix ~]# wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz [root@yankerp-zabbix ~]# tar zxf libmcrypt-2.5.7.tar.gz [root@yankerp-zabbix ~]# cd libmcrypt-2.5.7/ [root@yankerp-zabbix libmcrypt-2.5.7]# ./configure && make && make install ln -s /usr/local/mysql/lib/libmysqlclient.so.20.3.0 /usr/local/mysql/lib/libmysqlclient_r.so
下載php源碼包
[root@yankerp-zabbix ~]# tar zxf php-5.6.27.tar.gz [root@yankerp-zabbix ~]# cd php-5.6.27/ [root@yankerp-zabbix php-5.6.27]# ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl && make && make install [root@yankerp-zabbix php-5.6.27]# cp php.ini-production /etc/php.ini
編輯配置文件/etc/php.ini ,修改后的內容如下:
找到:
;date.timezone =
修改為:
date.timezone = prc #設置時區
找到:
expose_php = on
修改為:
expose_php = off #禁止顯示php版本的信息
找到:
short_open_tag = off
修改為:
short_open_tag = on //支持php短標簽
找到:
post_max_size = 8m
修改為:
post_max_size = 16m //上傳文件大小
找到:
max_execution_time = 30
修改為:
max_execution_time = 300 //php腳本最大執行時間
找到:
max_input_time = 60
修改為:
max_input_time = 300 //以秒為單位對通過post、get以及put方式接收數據時間進行限制
always_populate_raw_post_data = -1
mbstring.func_overload = 0
創建php服務啟動腳本
[root@yankerp-zabbix php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@yankerp-zabbix php-5.6.27]# chmod +x /etc/init.d/php-fpm [root@yankerp-zabbix php-5.6.27]# chkconfig --add php-fpm [root@yankerp-zabbix php-5.6.27]# chkconfig php-fpm on [root@yankerp-zabbix php-5.6.27]#cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf [root@yankerp-zabbix php-5.6.27]#vim /usr/local/php5.6/etc/php-fpm.conf
修改內容如下:
pid = run/php-fpm.pid user = www group = www listen =127.0.0.1:9000 pm.max_children = 300 pm.start_servers = 10 pm.min_spare_servers = 10 pm.max_spare_servers =50
啟動php-fpm服務
配置nginx并解析php
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.php index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the php scripts to apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the php scripts to fastcgi server listening on 127.0.0.1:9000 # location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param script_filename /scripts$fastcgi_script_name; include fastcgi.conf; } # deny access to .htaccess files, if apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of ip-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # https server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:ssl:1m; # ssl_session_timeout 5m; # ssl_ciphers high:!anull:!md5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
在html目錄下創建test.php寫入測試頁訪問測試:
寫入mysql測試頁
vim /usr/local/nginx/html/test2.php
<?php $link=mysql_connect('localhost','root','123456'); if($link) echo "ok"; mysql_close(); ?>
出現以上圖片證明lnmp環境已經可以正常工作!
四、正式安裝zabbix,以上只是搭建環境下面正式安裝zabbix
此環境需要提前安裝好lnmp環境(mysql,nginx,php的安裝目錄均是/usr/local/下)
創建zabbix運行用戶
[root@yankerp-zabbix ~]# groupadd zabbix [root@yankerp-zabbix ~]# useradd -g zabbix zabbix
安裝所需的包
復制代碼 代碼如下:
[root@yankerp-zabbix ~]#yum install -y net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel openipmi-devel libssh2-devel
安裝fping
[root@yankerp-zabbix ~]# tar zxf fping-3.10.tar.gz [root@yankerp-zabbix ~]# cd fping-3.10/ [root@yankerp-zabbix fping-3.10]# ./configure && make && make install [root@yankerp-zabbix fping-3.10]# chown root:zabbix /usr/local/sbin/fping [root@yankerp-zabbix fping-3.10]# chmod 4710 /usr/local/sbin/fpin
安裝zabbix-server
[root@yankerp-zabbix ~]# tar zxf zabbix-3.2.1.tar.gz [root@yankerp-zabbix ~]# cd zabbix-3.2.1/
復制代碼 代碼如下:
[root@yankerp-zabbix zabbix-3.2.1]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi
在編譯的時候最好帶上--enable-java這個參數,方便后續監控tomcat等程序。
make && make install
添加系統軟連接
[root@yankerp-zabbix zabbix-3.2.1]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/ [root@yankerp-zabbix zabbix-3.2.1]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
創建zabbix數據庫和mysql用戶:
mysql> create database zabbix character set utf8; query ok, 1 row affected (0.18 sec) mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; query ok, 0 rows affected, 1 warning (0.37 sec) mysql>
導入zabbix初始數據;(切換到zabbix目錄)
/root/zabbix-3.2.1/database/mysql [root@yankerp-zabbix mysql]# mysql -uzabbix -pzabbix -hlocalhost zabbix < schema.sql mysql: [warning] using a password on the command line interface can be insecure. [root@yankerp-zabbix mysql]# mysql -uzabbix -pzabbix -hlocalhost zabbix < images.sql mysql: [warning] using a password on the command line interface can be insecure. [root@yankerp-zabbix mysql]# mysql -uzabbix -pzabbix -hlocalhost zabbix < data.sql mysql: [warning] using a password on the command line interface can be insecure.
編輯/usr/local/zabbix/etc/zabbix_server.conf(修改如下)
logfile=/usr/local/zabbix/logs/zabbix_server.log pidfile=/usr/local/zabbix/logs/zabbix_server.pid dbhost=localhost dbname=zabbix dbuser=zabbix dbpassword=zabbix dbport=3306 fpinglocation=/usr/local/sbin/fping
[root@yankerp-zabbix mysql]# mkdir -p /usr/local/zabbix/logs [root@yankerp-zabbix mysql]# chown -r zabbix:zabbix /usr/local/zabbix/
啟動zabbix server
解決方法:
在ld.so.conf中加入/usr/local/mysql/lib
[root@yankerp-zabbix ~]# cat /etc/ld.so.conf include ld.so.conf.d/*.conf /usr/local/mysql/lib /usr/local/lib
插入完后執行
我們發現還是沒有啟動那么接下來查看zabbix_server的日志如下:
上面的提示mysql.sock問題,接下來打開zabbix主配置文件修改如下:
添加啟動腳本
[root@yankerp-zabbix zabbix-3.2.1]# cp misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server [root@yankerp-zabbix zabbix-3.2.1]# cp misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd [root@yankerp-zabbix zabbix-3.2.1]# chmod +x /etc/rc.d/init.d/zabbix_server [root@yankerp-zabbix zabbix-3.2.1]# chmod +x /etc/rc.d/init.d/zabbix_agentd [root@yankerp-zabbix zabbix-3.2.1]# chkconfig --add zabbix_server [root@yankerp-zabbix zabbix-3.2.1]# chkconfig --add zabbix_agentd [root@yankerp-zabbix zabbix-3.2.1]# chkconfig zabbix_server on [root@yankerp-zabbix zabbix-3.2.1]# chkconfig zabbix_agentd on
修改zabbix開機啟動腳本中的zabbix安裝目錄
vi /etc/rc.d/init.d/zabbix_server #編輯服務端配置文件 basedir=/usr/local/zabbix/ #zabbix安裝目錄 pidfile=/usr/local/zabbix/logs/$binary_name.pid #pid文件路徑 :wq! #保存退出 vi /etc/rc.d/init.d/zabbix_agentd #編輯客戶端配置文件 basedir=/usr/local/zabbix/ #zabbix安裝目錄 pidfile=/usr/local/zabbix/logs/$binary_name.pid #pid文件路徑 :wq! #保存退出
正式啟動zabbix_server
啟動成功后配置zabbix的web界面
[root@zabbix-yankerp ~]# cd /root/zabbix-3.2.1/ [root@zabbix-yankerp zabbix-3.2.1]# cp -r frontends/php/ /usr/local/nginx/html/zabbix [root@zabbix-yankerp zabbix-3.2.1]# chown -r www:www /usr/local/nginx/html/zabbix/
出現以下界面證明
出現以上圖片那么證明zabbix正式搭建成功!
關于“Centos如何編譯安裝zabbix”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。