character_set_server = utf8
DBHost=127.0.0.1 //在DBName=zabbix上面增長 DBPassword=aming-zabbix //在DBuser下面增長
1.首先訪問官網下載地址,選擇對應的版本,並提供對應的發行版,而後選擇download,跳轉到一個界面,找到這個rpm包(包含release),也就是說yum源在這個裏面,下圖所示,複製該連接 php
2.在兩臺機器都須要下載它python
A機器 [root@xuexi-001 ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
B機器 [root@xuexi-002 ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
3.下載完以後,安裝rpm包(實際上就是安裝了一個yum源倉庫)mysql
A機器安裝rpm包 [root@xuexi-001 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm B機器安裝rpm包 [root@xuexi-002 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
4.查看/etc/yum.repos.d/目錄下面會看到增長了一個zabbix.repolinux
[root@xuexi-001 ~]# ls /etc/yum.repos.d/ CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo zabbix.repo CentOS-CR.repo CentOS-Media.repo epel.repo CentOS-Debuginfo.repo CentOS-Sources.repo epel-testing.repo [root@xuexi-001 ~]# cat /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix Official Repository - $basearch baseurl=http://repo.zabbix.com/zabbix/3.2/rhel/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-non-supported] name=Zabbix Official Repository non-supported - $basearch baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/ enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX gpgcheck=1
5.再有了這個zabbix.repo源以後,就能夠yum安裝zabbix了,並安裝下面的包ios
A機器 [root@xuexi-001 ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql B機器 [root@xuexi-002 ~]# yum install -y zabbix-agent
6.zabbix 是基於php環境的,也就是說用的是php 的代碼編寫的web界面,也就說這個zabbix 至關於一個站點nginx
7.安裝mysql,若是mysql以前沒有安裝的話,須要根據lamp那一章的mysql安裝方法安裝mysql 固然yum安裝mysql、或mariadb也能夠 安裝mysqlweb
A機器(由於以前安裝過mysql) [root@xuexi-001 ~]# ps aux |grep mysql root 1080 0.0 0.0 115432 1728 ? S 10:44 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/xuexi-001.pid mysql 1289 0.1 24.6 1300848 459812 ? Sl 10:44 0:04 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/xuexi-001.err --pid-file=/data/mysql/xuexi-001.pid --socket=/tmp/mysql.sock root 1922 0.0 0.0 112724 972 pts/0 R+ 11:38 0:00 grep --color=auto mysql
8.修改mysql的配置文件,修改/etc/my.cnf文件,設定默認的字符集sql
A機器 [root@xuexi-001 ~]# vim /etc/my.cnf 在[mysqld]下添加字符集 character_set_server = utf8 保存退出
9.修改完mysql的配置文件後,重啓mysql服務數據庫
A機器 [root@xuexi-001 ~]# systemctl restart mysql
10.重啓mysqld服務後,進入mysql命令行(第一次進入mysql命令行),建立zabbix庫,並指定編碼爲utf8 create database zabbix character set utf8;apache
A機器 [root@xuexi-001 ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.36 MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement mysql> create database zabbix character set utf8; Query OK, 1 row affected (0.00 sec)
11.再建立用戶,這個用戶是須要讓web(php)代碼鏈接mysql的,監控中心zabbix mysql服務,啓動的前提就是要鏈接mysql;客戶端採集了數據,須要把這些數據傳遞給服務端,那麼服務端怎麼把這些數據寫入到MySQL去,這時就涉及到了mysql 的用戶,涉及到了mysql 的數據庫;用哪個用戶,去寫入那一個庫。
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'xuexi001-zabbix'; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye [root@hf-01 ~]#
12.退出mysql的命令行後,導入原始的數據,若缺乏這些數據,zabbix就沒有辦法工做,就沒有辦法在web界面下展示給咱們
A機器 [root@xuexi-001 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/ [root@xuexi-001 zabbix-server-mysql-3.2.11]#
13.在/usr/share/doc/zabbix-server-mysql-3.2.11/目錄下有一個create.sql.gz壓縮包,將它解壓,解壓完以後生成了一個.sql的文件
A機器 [root@xuexi-001 zabbix-server-mysql-3.2.11]# ls AUTHORS ChangeLog COPYING create.sql.gz NEWS README
14.而後拿到create.sql文件,將它導入到zabbix庫裏面去 A機器
[root@xuexi-001 zabbix-server-mysql-3.2.11]# mysql -uroot -p123456 zabbix < create.sql Warning: Using a password on the command line interface can be insecure.
15.啓動zabbix服務,啓動zabbix報錯
systemctl start zabbix-server [root@xuexi-001 ~]# systemctl start zabbix-server
16.啓動httpd服務,在啓動http服務以前,先查看nginx服務是否啓動,若啓動了nginx,就監聽了80端口,就須要去停掉nginx服務,再去啓動httpd服務
[root@xuexi-001 ~]# ps aux |grep nginx root 1025 0.0 0.0 46040 1296 ? Ss 10:43 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf nobody 1031 0.0 0.2 48576 4192 ? S 10:43 0:00 nginx: worker process nobody 1032 0.0 0.2 48576 3932 ? S 10:43 0:00 nginx: worker process root 2163 0.0 0.0 112724 972 pts/0 R+ 11:53 0:00 grep --color=auto nginx [root@xuexi-001 ~]# systemctl stop nginx [root@xuexi-001 ~]# ps aux |grep nginx root 2178 0.0 0.0 112720 972 pts/0 R+ 11:54 0:00 grep --color=auto nginx [root@xuexi-001 ~]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:56141 0.0.0.0:* LISTEN 884/rpc.statd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 537/rpcbind tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 885/rpc.mountd tcp 0 0 0.0.0.0:34547 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 868/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1238/master tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp6 0 0 :::111 :::* LISTEN 537/rpcbind tcp6 0 0 :::20048 :::* LISTEN 885/rpc.mountd tcp6 0 0 :::22 :::* LISTEN 868/sshd tcp6 0 0 ::1:25 :::* LISTEN 1238/master tcp6 0 0 :::39353 :::* LISTEN 884/rpc.statd tcp6 0 0 :::2049 :::* LISTEN - tcp6 0 0 :::33032 :::* LISTEN - tcp6 0 0 :::3306 :::* LISTEN 2115/mysqld [root@xuexi-001 ~]# systemctl start httpd [root@xuexi-001 ~]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:56141 0.0.0.0:* LISTEN 884/rpc.statd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 537/rpcbind tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 885/rpc.mountd tcp 0 0 0.0.0.0:34547 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 868/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1238/master tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp6 0 0 :::111 :::* LISTEN 537/rpcbind tcp6 0 0 :::80 :::* LISTEN 2194/httpd tcp6 0 0 :::20048 :::* LISTEN 885/rpc.mountd tcp6 0 0 :::22 :::* LISTEN 868/sshd tcp6 0 0 ::1:25 :::* LISTEN 1238/master tcp6 0 0 :::39353 :::* LISTEN 884/rpc.statd tcp6 0 0 :::2049 :::* LISTEN - tcp6 0 0 :::33032 :::* LISTEN - tcp6 0 0 :::3306 :::* LISTEN 2115/mysqld
17.若須要開機啓動httpd服務和zabbix服務,則須要將它加入到服務的列表中去
A機器 [root@xuexi-001 ~]# systemctl enable httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. [root@xuexi-001 ~]# systemctl enable zabbix-server Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
18.查看zabbix服務進程
[root@xuexi-001 ~]# systemctl disable nginx nginx.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig nginx off [root@xuexi-001 ~]# chkconfig nginx off
19.查看zabbix監聽的端口
[root@xuexi-001 ~]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:56141 0.0.0.0:* LISTEN 884/rpc.statd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 537/rpcbind tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 885/rpc.mountd tcp 0 0 0.0.0.0:34547 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 868/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1238/master tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp6 0 0 :::111 :::* LISTEN 537/rpcbind tcp6 0 0 :::80 :::* LISTEN 2194/httpd tcp6 0 0 :::20048 :::* LISTEN 885/rpc.mountd tcp6 0 0 :::22 :::* LISTEN 868/sshd tcp6 0 0 ::1:25 :::* LISTEN 1238/master tcp6 0 0 :::39353 :::* LISTEN 884/rpc.statd tcp6 0 0 :::2049 :::* LISTEN - tcp6 0 0 :::33032 :::* LISTEN - tcp6 0 0 :::3306 :::* LISTEN 2115/mysqld
20.查看zabbix並無監聽端口後,首先檢查zabbix的錯誤日誌,錯誤日誌路徑/var/log/zabbix/zabbix_server.log
[root@xuexi-001 ~]# tail /var/log/zabbix/zabbix_server.log 2160:20180910:115931.641 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 2160:20180910:115931.641 database is down: reconnecting in 10 seconds 2160:20180910:115941.643 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 2160:20180910:115941.643 database is down: reconnecting in 10 seconds 2160:20180910:115951.643 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 2160:20180910:115951.643 database is down: reconnecting in 10 seconds 2160:20180910:120001.644 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 2160:20180910:120001.644 database is down: reconnecting in 10 seconds 2160:20180910:120011.644 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 2160:20180910:120011.644 database is down: reconnecting in 10 seconds
21.更改zabbix的配置文件,配置文件爲/etc/zabbix/zabbix_server.conf
A機器 [root@xuexi-001 ~]# vim /etc/zabbix/zabbix_server.conf 搜索/DBHost 在DBName=zabbix上面增長 DBHost=127.0.0.1 在DBuser下面增長 DBPassword=xuexi001-zabbix 保存退出
22.更改完zabbix配置文件,就能夠啓動zabbix服務了,由於以前啓動了zabbix服務,這裏只需restart重啓下便可
A機器 [root@hf-01 ~]# systemctl restart zabbix-server [root@hf-01 ~]#
23.這時再來查看下zabbix進程,有29個(正常狀況下,都是這麼多進程)
A機器 [root@xuexi-001 ~]# systemctl restart zabbix-server [root@xuexi-001 ~]# ps aux |grep zabbix zabbix 2587 6.1 0.2 254808 4180 ? S 12:17 0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf zabbix 2589 0.0 0.1 254808 2512 ? S 12:17 0:00 /usr/sbin/zabbix_server: configuration syncer [waiting 60 sec for processes] zabbix 2590 0.0 0.1 254808 2724 ? S 12:17 0:00 /usr/sbin/zabbix_server: db watchdog [synced alerts config in 0.016610 sec, idle 60 sec] zabbix 2591 0.0 0.2 361744 5248 ? S 12:17 0:00 /usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000003 sec, idle 5 sec] zabbix 2592 0.2 0.2 361744 5248 ? S 12:17 0:00 /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000005 sec, idle 5 sec] zabbix 2593 0.1 0.2 361744 5248 ? S 12:17 0:00 /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000006 sec, idle 5 sec] zabbix 2594 0.1 0.2 361744 5248 ? S 12:17 0:00 /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000004 sec, idle 5 sec] zabbix 2595 0.2 0.2 361744 5248 ? S 12:17 0:00 /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000005 sec, idle 5 sec] zabbix 2596 0.2 0.2 361744 5248 ? S 12:17 0:00 /usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000003 sec, idle 5 sec] zabbix 2597 0.0 0.1 254808 3620 ? S 12:17 0:00 /usr/sbin/zabbix_server: trapper #1 [processed data in 0.000000 sec, waiting for connection] zabbix 2598 0.0 0.1 254808 3620 ? S 12:17 0:00 /usr/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection] zabbix 2599 0.0 0.1 254808 3620 ? S 12:17 0:00 /usr/sbin/zabbix_server: trapper #3 [processed data in 0.000000 sec, waiting for connection] zabbix 2600 0.0 0.1 254808 3620 ? S 12:17 0:00 /usr/sbin/zabbix_server: trapper #4 [processed data in 0.000000 sec, waiting for connection] zabbix 2603 0.0 0.1 254808 3620 ? S 12:17 0:00 /usr/sbin/zabbix_server: trapper #5 [processed data in 0.000000 sec, waiting for connection] zabbix 2611 0.0 0.1 257380 2680 ? S 12:17 0:00 /usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000005 sec, idle 5 sec] zabbix 2612 0.2 0.1 254808 2732 ? S 12:17 0:00 /usr/sbin/zabbix_server: alerter [sent alerts: 0 success, 0 fail in 0.000813 sec, idle 30 sec] zabbix 2613 0.0 0.1 254808 2508 ? S 12:17 0:00 /usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes] zabbix 2614 0.0 0.1 254808 2728 ? S 12:17 0:00 /usr/sbin/zabbix_server: timer #1 [processed 0 triggers, 0 events in 0.000000 sec, 0 maintenances in 0.000000 sec, idle 30 sec] zabbix 2615 0.0 0.1 254808 2896 ? S 12:17 0:00 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.000667 sec, idle 5 sec] zabbix 2616 0.1 0.2 359276 5192 ? S 12:17 0:00 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.000835 sec, idle 60 sec] zabbix 2617 0.0 0.1 254808 2884 ? S 12:17 0:00 /usr/sbin/zabbix_server: history syncer #1 [synced 0 items in 0.000002 sec, idle 1 sec] zabbix 2618 0.0 0.1 254808 2884 ? S 12:17 0:00 /usr/sbin/zabbix_server: history syncer #2 [synced 0 items in 0.000001 sec, idle 1 sec] zabbix 2619 0.0 0.1 254808 2884 ? S 12:17 0:00 /usr/sbin/zabbix_server: history syncer #3 [synced 0 items in 0.000002 sec, idle 1 sec] zabbix 2620 0.0 0.1 254808 2884 ? S 12:17 0:00 /usr/sbin/zabbix_server: history syncer #4 [synced 0 items in 0.000001 sec, idle 1 sec] zabbix 2621 0.0 0.2 254808 3820 ? S 12:17 0:00 /usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.000493 sec, idle 3 sec] zabbix 2622 0.0 0.2 254808 3820 ? S 12:17 0:00 /usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000005 sec, idle 5 sec] zabbix 2623 0.0 0.1 254808 2652 ? S 12:17 0:00 /usr/sbin/zabbix_server: self-monitoring [processed data in 0.000006 sec, idle 1 sec] zabbix 2624 0.0 0.1 254808 2872 ? S 12:17 0:00 /usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.000415 sec, idle 5 sec] root 2637 0.0 0.0 112720 972 pts/0 R+ 12:17 0:00 grep --color=auto zabbix
24.查看監聽的端口,zabbix監聽的端口爲10051端口
A機器 [root@xuexi-001 ~]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:56141 0.0.0.0:* LISTEN 884/rpc.statd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 537/rpcbind tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 885/rpc.mountd tcp 0 0 0.0.0.0:34547 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 868/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1238/master tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 2587/zabbix_server tcp6 0 0 :::111 :::* LISTEN 537/rpcbind tcp6 0 0 :::80 :::* LISTEN 2194/httpd tcp6 0 0 :::20048 :::* LISTEN 885/rpc.mountd tcp6 0 0 :::22 :::* LISTEN 868/sshd tcp6 0 0 ::1:25 :::* LISTEN 1238/master tcp6 0 0 :::39353 :::* LISTEN 884/rpc.statd tcp6 0 0 :::2049 :::* LISTEN - tcp6 0 0 :::10051 :::* LISTEN 2587/zabbix_server tcp6 0 0 :::33032 :::* LISTEN - tcp6 0 0 :::3306 :::* LISTEN 2115/mysqld
25.接下來就是配置web界面了(須要關閉防火牆和規則,不然瀏覽器沒法訪問)
在瀏覽器輸入IP地址(即監控中心的IP地址),如192.168.5.130/zabbix 去訪問
不少人會有疑問,僅僅啓動了httpd 服務,沒有去作任何的配置,由於yum安裝zabbix,它默認安裝httpd 及它的配置文件,一切都會幫你配置好了
26.再打開zabbix界面後,點擊 Next step ,會出現一個提示,出現OK的都不用管,會看到提示須要去設置php的timezone時區,以下圖
27.設置php的timezone時區,在php的配置文件中設置,默認php的配置文件在/etc/php.ini 裏面
A機器 [root@xuexi-001 ~]# vi /etc/php.ini 搜索 /timezone 將 ;date.timezone 改成以下 date.timezone = Asia/Shanghai 保存退出
28.在定義完php的配置文件,還須要重啓apache
[root@xuexi-001 ~]# systemctl restart httpd
29.這時再來刷新瀏覽器,會發現都變成OK了
30.這時再來 Next step ,來配置數據庫相關信息
31.而後再選擇Next step ,配置站點名字相關
32.配置完成後會有一個信息顯示,若是配置錯誤,能夠back返回上一步從新修改
33.安裝成功後,會有提示界面,以下圖
34.登陸管理頁,默認的帳號是Admin,密碼爲zabbix
35.在登陸進zabbix以後,首先須要去更改密碼(由於默認的密碼你們都知道的),如果在線上環境不更改密碼,很容易被別人拿到後臺權限
Server=127.0.0.1修改成Server=192.168.133.130 //定義服務端的ip(被動模式) ServerActive=127.0.0.1修改成ServerActive=192.168.133.130 //定義服務端的ip(主動模式) Hostname=Zabbix server修改成Hostname=aming-123 //這是自定義的主機名,一會還須要在web界面下設置一樣的主機名
1.首先客戶端下載yum源
B機器 [root@xuexi-002 ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
2.下載完以後,安裝rpm包(實際上就是安裝了一個yum源倉庫)
B機器 [root@xuexi-002 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
3.客戶端,編輯zabbix的配置文件,文件爲/etc/zabbix/zabbix_agentd.conf,服務端和客戶端通訊,就須要指定一個白名單IP
B機器 [root@xuexi-002 ~]# vi /etc/zabbix/zabbix_agentd.conf 搜索 /Server Server=192.168.5.130 # 定義服務端的ip(被動模式),配置文件中默認是本機的IP 搜索 /ServerActive ServerActive=192.168.5.130 #定義服務端的ip(主動模式) #這個涉及到一個主動和被動模式;若是這裏不填寫服務中心的IP,那麼就只能使用被動模式;這個IP是主動模式時候用的 搜索 /Hostname Hostname=Zabbix server修改成Hostname=xuexi-002 #這是自定義的主機名,一會還須要在web界面下設置一樣的主機名 保存退出
4.啓動zabbix服務
[root@xuexi-002 ~]# systemctl restart zabbix-agent
5.客戶端查看zabbix服務,監聽的端口,客戶端監聽的端口是10050
[root@xuexi-002 ~]# ps aux |grep zabbix zabbix 3730 0.0 0.1 80664 1260 ? S 13:03 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf zabbix 3731 0.0 0.1 80664 1296 ? S 13:03 0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec] zabbix 3732 0.0 0.1 80664 1840 ? S 13:03 0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection] zabbix 3733 0.0 0.1 80664 1840 ? S 13:03 0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection] zabbix 3734 0.0 0.1 80664 1840 ? S 13:03 0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection] zabbix 3735 0.0 0.2 80796 2196 ? S 13:03 0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec] root 3737 0.0 0.0 112676 984 pts/0 R+ 13:03 0:00 grep --color=auto zabbix [root@xuexi-002 ~]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 534/rpcbind tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 904/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1133/master tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3730/zabbix_agentd tcp6 0 0 :::111 :::* LISTEN 534/rpcbind tcp6 0 0 :::22 :::* LISTEN 904/sshd tcp6 0 0 ::1:25 :::* LISTEN 1133/master tcp6 0 0 :::10050 :::* LISTEN 3730/zabbix_agentd tcp6 0 0 :::3306 :::* LISTEN 1091/mysqld
6.將zabbix加入到啓動列表裏面,讓它開機啓動
[root@xuexi-002 ~]# systemctl enable zabbix-agent Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
7.這樣客戶端的zabbix就配置完成
進入mysql命令行,選擇zabbix庫
mysql -uroot -p zabbix
update users set passwd=md5(‘newpasswd’) where alias=‘Admin’;
這樣就更改了Admin用戶的密碼 ####忘記zabbix密碼
有時由於時間長了,zabbix管理員帳號密碼給忘記了
解決辦法:
重置zabbix密碼,就是直接更改數據庫裏的數據便可
1.首先進入到mysql命令行裏面
A機器 [root@xuexi-001 ~]# mysql -uroot -p123456 Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 319 Server version: 5.6.36 MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
2.使用zabbix庫
mysql> use zabbix Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql>
3.查看zabbix相關的表,之後服務器監控的主機越多,那麼這些表會愈來愈大,因此須要去指定合適的監控策略
show tables;
4.zabbix的密碼,默認存放的表是users裏面 5.查看users表
mysql> desc users; +----------------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+-------+ | userid | bigint(20) unsigned | NO | PRI | NULL | | | alias | varchar(100) | NO | UNI | | | | name | varchar(100) | NO | | | | | surname | varchar(100) | NO | | | | | passwd | char(32) | NO | | | | | url | varchar(255) | NO | | | | | autologin | int(11) | NO | | 0 | | | autologout | int(11) | NO | | 900 | | | lang | varchar(5) | NO | | en_GB | | | refresh | int(11) | NO | | 30 | | | type | int(11) | NO | | 1 | | | theme | varchar(128) | NO | | default | | | attempt_failed | int(11) | NO | | 0 | | | attempt_ip | varchar(39) | NO | | | | | attempt_clock | int(11) | NO | | 0 | | | rows_per_page | int(11) | NO | | 50 | | +----------------+---------------------+------+-----+---------+-------+ 16 rows in set (0.00 sec)
6.修改密碼
mysql> update users set passwd=md5('654321') where alias='Admin'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
7.查看錶的狀況
mysql> select * from users\G; *************************** 1. row *************************** userid: 1 alias: Admin name: Zabbix surname: Administrator passwd: c33367701511b4f6020ec61ded352059 url: autologin: 1 autologout: 0 lang: zh_CN refresh: 30 type: 3 theme: default attempt_failed: 0 attempt_ip: attempt_clock: 0 rows_per_page: 50 *************************** 2. row *************************** userid: 2 alias: guest name: surname: passwd: d41d8cd98f00b204e9800998ecf8427e url: autologin: 0 autologout: 900 lang: en_GB refresh: 30 type: 1 theme: default attempt_failed: 0 attempt_ip: attempt_clock: 0 rows_per_page: 50 2 rows in set (0.00 sec) ERROR: No query specified
8.修改之後就能夠去嘗試用新密碼登陸zabbix了,這就是充值zabbix管理員密碼
主動模式和被動模式
主動或者被動是相對客戶端來說的
被動模式,服務端會主動鏈接客戶端獲取監控項目數據,客戶端被動地接受鏈接,並把監控信息傳遞給服務端,服務端請求之後,客戶端接受到請求之後,才把相應的數據彙報給服務中心
主動模式,客戶端會主動把監控數據彙報給服務端,服務端只負責接收便可。
定義完策略以後,到達定義的時間之後,就會主動彙報數據給服務中心,好比系統的負載,網絡的網卡流量等
當客戶端數量很是多時,建議使用主動模式,這樣能夠下降服務端的壓力。
服務端有公網ip,客戶端只有內網ip,但卻能連外網,這種場景適合主動模式
1.在web頁面配置添加監控主機,選擇 配置 ,在選擇 主機羣組 ,去添加主機羣
2.配置下的一些集合
3.添加一個主機(由於在客戶端已經安裝啓動了zabbix agent)
4.再添加主機以前,首先 添加一個 主機羣組
5.而後再點 主機 ——> 點擊 建立主機(主機名稱和可見名稱都寫xuexi-002)
6.定義主動和被動模式,在 監控項 裏定義
7.在定義完主機後看到 應用集、監控項、觸發器、自動發現規則、web場景
1.在 配置 中的 模板,選擇建立模板
2.模板的名字自定義,這裏叫作aliang,模板歸屬在模板的組裏,或者連接到其餘的模板
3.剛添加的aliang模板,它下面 沒有 應用集、監控項、觸發器、自動發現規則、web場景,全部都爲空的
[root@xuexi-001 ~]# vi /usr/share/zabbix/include/defines.inc.php [1]+ 已中止 vim /usr/share/zabbix/include/defines.inc.php [root@xuexi-001 ~]# fg vim /usr/share/zabbix/include/defines.inc.php [root@xuexi-001 ~]# ls /usr/share/zabbix/fonts/ graphfont.ttf [root@xuexi-001 ~]# ls -l /usr/share/zabbix/fonts/ 總用量 0 lrwxrwxrwx 1 root root 33 9月 10 11:35 graphfont.ttf -> /etc/alternatives/zabbix-web-font [root@xuexi-001 ~]# ls -l /etc/alternatives/zabbix-web-font lrwxrwxrwx 1 root root 38 9月 10 11:35 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf [root@xuexi-001 ~]# ls 123 mysql-5.6.36-linux-glibc2.5-x86_64 1.sh mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz 1.txt right.txt 2.txt [root@hf-01 abc STXINGKA.TTF abcd test anaconda-ks.cfg test1.txt a.txt test.txt erro.txt top.log m zabbix-release-3.2-1.el7.noarch.rpm my.ipt [root@xuexi-001 ~]# mv STXINGKA.TTF /usr/share/zabbix/fonts/ [root@xuexi-001 ~]# cd /usr/share/zabbix/fonts/ [root@xuexi-001 fonts]# ls graphfont.ttf STXINGKA.TTF [root@xuexi-001 fonts]# mv graphfont.ttf graphfont.ttf.bak ;ln -s STXINGKA.TTF graphfont.ttf [root@xuexi-001 fonts]# ls -l 總用量 3924 lrwxrwxrwx 1 root root 12 9月 10 19:59 graphfont.ttf -> STXINGKA.TTF lrwxrwxrwx 1 root root 33 9月 10 11:35 graphfont.ttf.bak -> /etc/alternatives/zabbix-web-font -rw-r--r-- 1 root root 4016288 9月 10 19:17 STXINGKA.TTF
使用163或者QQ郵箱發告警郵件
首先登陸你的163郵箱,設置開啓POP三、IMAP、SMTP服務
開啓並記錄受權碼
而後到監控中心設置郵件告警
「管理」,「報警媒介類型」,「建立媒體類型」
{ALERT.SENDTO} ,{ALERT.SUBJECT},{ALERT.MESSAGE}
建立報警腳本mail.py
vim /usr/lib/zabbix/alertscripts/mail.py//內容參考
chmod 755 /usr/lib/zabbix/alertscripts/mail.py
建立一個接受告警郵件的用戶,「管理」,「用戶」,「建立用戶」,「報警媒介」,類型選擇「baojing」,注意用戶的權限,若是沒有須要到用戶組去設置權限
設置動做,「配置」,「動做」,「建立動做」,名稱寫「sendmail」(自定義),「操做」頁面,內容以下
HOST:{HOST.NAME} {HOST.IP} TIME:{EVENT.DATE} {EVENT.TIME} LEVEL:{TRIGGER.SEVERITY} NAME:{TRIGGER.NAME} messages:{ITEM.NAME}:{ITEM.VALUE} ID:{EVENT.ID}
HOST:{HOST.NAME} {HOST.IP} TIME:{EVENT.DATE} {EVENT.TIME} LEVEL:{TRIGGER.SEVERITY} NAME:{TRIGGER.NAME} messages:{ITEM.NAME}:{ITEM.VALUE} ID:{EVENT.ID}
1.首先須要一個郵箱,使用郵箱發郵件(163郵箱)
2.訪問163郵箱,在第三方平臺上調用163郵箱發郵件,須要設置開啓POP三、IMAP、SMTP服務
3.在寫腳本以前 進入zabbix的web界面——> 管理——> 報警媒介類型——>建立媒體類型
在報警媒介類型裏面的自帶的 Email 使用不方便,因此本身寫python發郵件的腳本
名稱:指的是報警媒介類型的名稱,自定義,這裏叫作 baojing
類型:腳本
腳本名稱:自定義,這裏叫作 mail.py
在py腳本參數下,三個參數都分佈在py的腳本里
{ALERT.SENDTO} 表示收件人
{ALERT.SUBJECT} 表示郵件主題
{ALERT.MESSAGE} 表示郵件內容
4.這時會看到成功添加 baojing 報警媒介類型
5.要實現報警,首先py腳本能發出郵件
6.在服務端(A機器)建立報警腳本mail.py,查看報警腳本所在位置
A機器 [root@hf-01 ~]# vim /etc/zabbix/zabbix_server.conf 搜索 /alert AlertScriptsPath=/usr/lib/zabbix/alertscripts #報警腳本所在路徑
7.建立報警腳本mail.py,在/usr/lib/zabbix/alertscripts/目錄下是空的, 來建立,腳本內容參考
A機器 [root@hf-01 ~]# vim /usr/lib/zabbix/alertscripts/mail.py #!/usr/bin/env python #-*- coding: UTF-8 -*- import os,sys reload(sys) sys.setdefaultencoding('utf8') import getopt import smtplib from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from subprocess import * def sendqqmail(username,password,mailfrom,mailto,subject,content): gserver = 'smtp.163.com' ##定義發郵件類型 gport = 25 try: msg = MIMEText(unicode(content).encode('utf-8')) msg['from'] = mailfrom msg['to'] = mailto msg['Reply-To'] = mailfrom msg['Subject'] = subject smtp = smtplib.SMTP(gserver, gport) smtp.set_debuglevel(0) smtp.ehlo() smtp.login(username,password) smtp.sendmail(mailfrom, mailto, msg.as_string()) smtp.close() except Exception,err: print "Send mail failed. Error: %s" % err def main(): to=sys.argv[1] subject=sys.argv[2] content=sys.argv[3] ##定義QQ郵箱的帳號和密碼,你須要修改爲你本身的帳號和密碼(請不要把真實的用戶名和密碼放到網上公開,不然你會死的很慘) sendqqmail('163郵箱','密碼','163郵箱',to,subject,content) if __name__ == "__main__": main() #####腳本使用說明###### #1. 首先定義好腳本中的郵箱帳號和密碼 #2. 腳本執行命令爲:python mail.py 目標郵箱 "郵件主題" "郵件內容" 保存退出
8.更改mail.py腳本的權限(很重要!!!),不然就會沒法告警
[root@hf-01 ~]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py [root@hf-01 ~]#
9.測試mail.py是否能發郵件,定義三個參數,如果給QQ的郵箱發郵件有可能會收不到
[root@hf-01 ~]# cd /usr/lib/zabbix/alertscripts/ [root@hf-01 alertscripts]# python mail.py han1118feng@163.com "ssss" "dddd" [root@hf-01 alertscripts]#
10.這時打開163郵箱,會看到郵件
11.如果在郵件裏面寫中文,到郵箱裏面會顯示亂碼,這是由於在zabbix使用的是utf-8的字符集,而在郵箱裏使用的是GBK字符集,因此會亂碼
[root@hf-01 alertscripts]# python mail.py han1118feng@163.com "郵件" "dddd" [root@hf-01 alertscripts]#
12.建立一個接受告警郵件的用戶(用戶是用來接收郵件的),在建立用戶的前提是建立一個用戶組,用戶組可使用已經存在的, 因此這裏直接建立用戶,管理-->用戶-->建立用戶
13.再給剛剛的用戶設置郵箱,管理-->用戶-->報警媒介-->添加
14.還要 注意用戶的權限,若是沒有權限,郵件是無法發的,要暫時到用戶組裏 (管理-->用戶羣組)
15.設置動做,咱們配置了觸發器,那麼觸發後應該去作什麼,配置-->動做-->建立動做
動做
名稱:中英文均可以,這裏叫 發郵件
條件:維護狀態 非在 維護,就表示 維護狀態機器不進行發郵件
新的觸發條件,當觸發器示警度(也就是信息,警告,通常嚴重...)大於等於未分類(未分類 表示 全部狀態,都會發信息)
配置-->動做-->操做
默認信息:直接刪除原有的(比較亂),粘貼下面的內容
維護期間暫停操做:選擇打勾(若不打對勾也能夠,由於在動做的條件裏定義了)
默認信息定義當發生報警時,zabbix會向你的郵箱發送什麼內容 HOST:{HOST.NAME} {HOST.IP} (定義主機名) TIME:{EVENT.DATE} {EVENT.TIME} (定義事件發生時間) LEVEL:{TRIGGER.SEVERITY} (定義示警度) NAME:{TRIGGER.NAME} (定義哪個觸發器發出的報警) messages:{ITEM.NAME}:{ITEM.VALUE} (發出告警會出現什麼狀態碼) ID:{EVENT.ID} (發生事件的id)
HOST:{HOST.NAME} {HOST.IP} TIME:{EVENT.DATE} {EVENT.TIME} LEVEL:{TRIGGER.SEVERITY} NAME:{TRIGGER.NAME} messages:{ITEM.NAME}:{ITEM.VALUE} ID:{EVENT.ID}
1.建立觸發器,來實現告警,配置-->主機-->hf-02主機-->建立觸發器
選擇 添加
最終看到以下
2.而後回到監控中心,主頁——>最近20個問題
若是提示爲啓用中,證實發現問題,正在啓用告警,顯示問完成,就證實已經發送郵件告警;如圖,咱們的實驗是成功的
查看郵箱,會看到郵件發送
3.這就表示測試郵件告警成功
4.這時想要解決這個問題,只要將觸發器 系統負載條件數值調整 >1 便可,再來查看監控中心,就會發現問題消失了,而且會給郵箱發送 OK 的郵件
1.到 163郵箱或 QQ郵箱 開啓SMTP服務,並記錄受權碼,沒有開啓,腳本里面就沒法去寫密碼
2.設置郵件告警
3.編輯郵件告警腳本,腳本地址
4.建立好以後,記得給腳本755權限,不然zabbix用戶是沒法調用這個腳本的
5.配置用戶
6.配置動做
7.測試一下告警是否能成功發送郵件
8.更改主動和被動
9.觸發器不能用中文命名,否則郵件顯示亂碼