事前準備
・Ubuntu16/CentOS7
・パッケージのアップデート
・vimの導入
zabbixのバージョン
3.4
リポジトリの追加
http://repo.zabbix.com/zabbix
から、望みのdebファイルのURLを見つける
cd /path/to/zabbix3.4
wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb
sudo apt -y update
sudo rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
sudo yum -y update
必要なパッケージのインストール
sudo apt/yum -y install zabbix-server-mysql zabbix-agent zabbix-get zabbix-sender
sudo apt -y install zabbix-frontend-php language-pack-ja
sudo yum -y install zabbix-web-mysql zabbix-web-japanese
DBの設定
インストール
sudo apt -y install mariadb-server
sudo yum -y install mariadb mariadb-server
CentOSのみ、/etc/my.cnf
の[mysqld]
ブロック(の中の2018年現在symbolic-links=0
の次の項)に
character-set-server=utf8
を追記。
Ubuntuは/etc/mysql/mariadb.conf.d/50-server.cnf
の[mysqld]
ブロック内にcharacter-set-server = utf8mb4
と最初から書いてあるためノータッチ。
mariadb
のstartとenable
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
sudo systemctl start mariadb
sudo systemctl enable mariadb
DBに接続
sudo mysql -u root -p
パスワード作成
set password = password('hogehoge');
quit;
再接続
sudo mysql -u root -p
utf8でDBを作成
create database zabbix character set utf8 collate utf8_bin;
zabbixユーザを作成
「zabbix.*」にマッチする権限を「zabbix@localhost」に与える
grant all on zabbix.* to zabbix@localhost identified by "<password>";
quit;
公式が用意してくれているzabbixの初期状態のDBを流し込む
cd /usr/share/doc/zabbix-server-mysql/ #現在
cd /usr/share/doc/zabbix-server-mysql-3.4.7/ #現在
sudo gzip -d create.sql.gz
cat create.sql | sudo mysql -u zabbix -p zabbix #-u=zabbix, -p, 第一引数:zabbix
zabbixサーバーの設定
sudo vim /etc/zabbix/zabbix_server.conf
(2018年現在)
DBUser=zabbix
### Option: DBPassword
# Database password. Ignored for SQLite.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
- #DBPassword=
+ DBPassword=hoge
httpdの設定を変更
sudo vim /etc/apache2/conf-available/zabbix.conf
sudo vim /etc/httpd/conf.d/zabbix.conf
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
- # php_value date.timezone Europe/Riga
+ php_value date.timezone Asia/Tokyo
</IfModule>
Ubuntuはなぜかphp7も設定しないとダメだった
<IfModule mod_php7.c>
...
+ php_value date.timezone Asia/Tokyo
zabbixサーバーの起動と自動起動設定
sudo systemctl start zabbix-server #SELinuxが有効だとここでエラーになるので後述の方法で対処
sudo systemctl enable zabbix-server
apache httpdの再起動と自動起動設定
sudo systemctl restart apache2
sudo systemctl enable apache2
sudo systemctl restart httpd
sudo systemctl enable httpd
確認用にzabbixエージェントも起動しておく
sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent
一応バージョンを確認
zabbix_get -s 127.0.0.1 -k agent.version
firewallの設定を良い感じにする
firewalldが原因で次の手順を行ってもうまくいかない可能性があるので、
https://qiita.com/miyagaw61/items/1dd937f1c6d9341e5635
あたりの記事を参考にしながら良い感じにしてください
ポイントとしては、ZabbixのWebUIを見るためにhttp(80番ポート)、zabbix-serverが10051番ポート、zabbix-agentが10050番ポートを使用します。
Zabbix の初期設定
ユーザーパスワードと言語の変更
リロード
F5
SELinux
しかし、このままではSELinuxが有効になっている場合、zabbix-serverのstartに失敗することがある。
以下のようにSELinuxを完全に無効化してもいいが...
vim /etc/selinux/config
- SELINUX=enforcing
+ SELINUX=disable
SELinuxと共存するには以下のようにSELinuxを設定する必要がある。
SELinuxの設定を変える
httpdによる書き込み権限をSELinuxに付与
setsebool -P httpd_can_network_connect on
zabbixがネットワークを用いてDBを更新する権限をSELinuxに付与
setsebool -P zabbix_can_network on
SELinuxの設定を追加するために設定作成を補助するツールをインストール
yum install policycoreutils-python
policycoreutils-pythonはSELinux の操作および管理用のsemanage、audit2allow、audit2why、chcatといった各種ユーティリティーを提供する。
/var/log/audit/audit.log
から情報収集
auditとは:Audit ってなんだ - ゆらろぐ ( archive )
grep zabbix_server /var/log/audit/audit.log | audit2allow
#============= zabbix_t ==============
allow zabbix_t self:process setrlimit;
#!!!! The file '/run/zabbix/zabbix_server_preprocessing.sock' is mislabeled on your system.
#!!!! Fix with $ restorecon -R -v /run/zabbix/zabbix_server_preprocessing.sock
#!!!! This avc can be allowed using the boolean 'daemons_enable_cluster_mode'
allow zabbix_t self:unix_stream_socket connectto;
allow zabbix_t zabbix_var_run_t:sock_file create;
ポリシーファイルを生成、読み込み
grep zabbix_server /var/log/audit/audit.log | audit2allow -M zabbix-limit
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i zabbix-limit.pp
semodule -i zabbix-limit.pp
再起動
再起動を行う