因为监控的需要,想要部署一个log server,想起了之前搭建过的loganalyzer。前段时间一直用docker,何不用docker来搭建?
寻找loganalyzer docker
网上一搜,果然找到了有人已经build好了,戳这里。事情不会这么简单吧?docker运行起来发现,不会接收log。进一步定位发现,UDP的514端口根本没有打开,mysql/rsyslog都没有安装。看来这只是一个Webapp的空壳。
自己动手
既然这是一个Debian9的系统,那么是不是在上面安装配置好mysql/rsyslog,就可以用了呢?
- 本地服务器准备好挂载的目录
mkdir -p /data/users/admin/data/
- 运行docker,挂载上一步创建目录,做两个端口映射
$ docker run -d --restart always -p 8181:80/tcp -p 514:514/udp -v /data/users/admin/data:/data --name loganalyzer vsc55/loganalyzer:latest
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f62e81c2ab1b vsc55/loganalyzer:latest "/entrypoint.sh start" 10 seconds ago Up 9 seconds (healthy) 0.0.0.0:514->514/udp, 0.0.0.0:8181->80/tcp loganalyzer
- 进入到docker中,安装常用软件
$ docker exec -it loganalyzer bash
root@f62e81c2ab1b:/var/www/html#
root@f62e81c2ab1b:/var/www/html# cat /etc/issue
Debian GNU/Linux 9 \n \l
root@f62e81c2ab1b:/var/www/html# apt update -y
root@f62e81c2ab1b:/var/www/html# apt install net-tools tcpdump iproute2 vim -y
- docker中安装mysql和rsyslog
root@f62e81c2ab1b:/var/www/html# apt -y install mysql-server mysql-client
root@f62e81c2ab1b:/var/www/html# service mysql start
[....] Starting MariaDB database server: mysqld. ok
root@f62e81c2ab1b:/var/www/html#
root@f62e81c2ab1b:/var/www/html# mysql_secure_installation
#方便起见,就不设置密码了,步骤略
...
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
root@f62e81c2ab1b:/var/www/html#
root@f62e81c2ab1b:/var/www/html# apt -y install rsyslog-mysql
#安装过程中需要同意创建相关database,要求输入mysql的密码,直接回车即可
- 编辑rsyslog的config文件,放开UDP端口514(去掉前面的注释符)
vim /etc/rsyslog.conf
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
- 编辑权限
# vim /etc/group
adm:x:4:www-data
- 重启rsyslog服务
root@f62e81c2ab1b:/var/www/html# service rsyslog restart
[....] Stopping enhanced syslogd: rsyslogd already stopped. ok
[....] Starting enhanced syslogd: rsyslogd. ok
root@f62e81c2ab1b:/var/www/html#
root@f62e81c2ab1b:/var/www/html# ss -apn | grep 514
udp UNCONN 0 0 *:514 *:* users:(("rsyslogd",pid=217,fd=3))
udp UNCONN 0 0 :::514 :::* users:(("rsyslogd",pid=217,fd=5))
root@f62e81c2ab1b:/var/www/html#
- 相关文件夹和文件设置
root@f62e81c2ab1b:/var/www/html# chmod -R 777 /data
root@f62e81c2ab1b:/var/www/html# chmod -R 777 /var/log
root@f62e81c2ab1b:/var/www/html# touch /var/log/syslog
- 打开web,端口8181,按照提示,一步一步进行
就类似这样一路next,最后看到运行界面,应该可以看到本机的syslog了。
后面遗留两个问题
(1)时钟/时区同步
(2)改成中文页面